Client Central Python API.
Project description
clientcentral-api-python
Install
pip install clientcentral --user
Upgrading
pip install --user --upgrade clientcentral
A specific version can also be installed by adding the tag:
pip install --user --upgrade clientcentral==12.5.7
Requirements
This library was built and tested on Python 3.11
a minimal Python version of Python 3.7.x
is required.
Python 2
is not supported.
Features
- Object Oriented API
- Querying
- Lazy loading (Events)
Config
The token that will be used can either be sent as an environement variable:
CC_TOKEN=<TOKEN> python3 main.py
or parsed to the constructor:
cc = ClientCentral(production=True, token="123")
Example usage
import clientcentral.ticketformatting as tf
from clientcentral.clientcentral import ClientCentral
# Production 'false' will run on qa.cc
cc = ClientCentral(production=True)
# This will create a ticket in the Managed Services workspace.
# In this example custom_fields {"id": 17, "values": 0} refer to "Security related" -> "No"
# Theses values can be found by following the following instructions: https://clientcentral.io/support/cc/kb/articles/1661-tickets-api-creating-tickets
ticket = cc.create_ticket(subject="New awesome subject" ,
description="this is an awesome ticket",
account_vp=1,
customer_user_vp=1,
project_id=8,
workspace_id=16,
custom_fields_attributes=[{
"id": 17,
"values": 0
}, {
"id": 75,
"values": 363
}])
ticket.comment("<p>" + tf.bold("I am BOLD") + "</p>")
# Get the ticket's creator
print("Ticket creator: " + ticket.owner.name)
# Get the ticket's status
print("Ticket status:" + ticket.status.name)
# Print the ticket's description
print("Ticket description: " + ticket.description)
# Add a user to watchers
ticket.add_user_watcher(14012) # 14012 refers to the user id in this case its "Thomas Scholtz"
# Change the description of the ticket
ticket.description = "New and improved ticket description"
# Finally after making all changes commit them.
ticket.commit()
for comment in ticket.comments:
if comment.created_by_user:
print("Comment from: " + comment.created_by_user.name + " says: " + comment.comment)
# Ticket events, change_events and comments are lazy loaded.
for change_event in ticket.change_events:
if change_event.created_by_user:
print("Change by: " + str(change_event.created_by_user.name))
for change in change_event.changes:
print("Changed: " + str(change.name) + " from: " + str(change.from_value) + " to: " + str(change.to_value))
Example query
from clientcentral.clientcentral import ClientCentral
import clientcentral.query as operators
# Production 'false' will run on qa.clientcentral.io
cc = ClientCentral(production=True)
# This will return a list of all tickets that are:
# open,
# in workspace with id 87,
# created by the user with the email 'thomas@labs.epiuse.com',
# has not been updated since 2019-02-20,
# subject contains 'New awesome subject'
tickets = cc.query_tickets().filter_by(
operators.and_( operators.statement("status.open"),
operators.comparison("workspace_id", "=", "87"),
operators.comparison("created_by_user.email", "=", "'thomas@labs.epiuse.com'"),
operators.comparison("updated_at", "<", "'2019-02-20'"),
operators.comparison("subject", "CONTAINS", "'New awesome subject'"))
).all()
for ticket in tickets:
# Get the ticket's creator
print("Ticket creator: " + ticket.owner.name)
# Get the ticket's status
print("Ticket status:" + ticket.status.name)
# Print the ticket's description
print("Ticket description: " + ticket.description)
# Ticket events, change_events and comments are lazy loaded.
for comment in ticket.comments:
if comment.created_by_user:
print("Comment from: " + comment.created_by_user.name +
" says: " + comment.comment)
for change_event in ticket.change_events:
if change_event.created_by_user:
print("Change by: " + str(change_event.created_by_user.name))
for change in change_event.changes:
print("Changed: " + str(change.name) + " from: " +
str(change.from_value) + " to: " + str(change.to_value))
Contributing
For this repository we are enforcing the use of Commitizen
. Respective merge requests require to follow the format created from Commitizen
. More info can be found at: http://commitizen.github.io/cz-cli/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
clientcentral-12.5.7.tar.gz
(64.0 kB
view details)
Built Distribution
File details
Details for the file clientcentral-12.5.7.tar.gz
.
File metadata
- Download URL: clientcentral-12.5.7.tar.gz
- Upload date:
- Size: 64.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fbc6065462691dde6be8b1ca5f13e56e9fe17e365dc70b073cc756f9535c386 |
|
MD5 | 61cd3d455ebdc93fc7f3b6668c2d8ef3 |
|
BLAKE2b-256 | fe2963bd7c82f708eaf971d3c98c946e1fdff81f2a0181e63d701e30898ef433 |
File details
Details for the file clientcentral-12.5.7-py3-none-any.whl
.
File metadata
- Download URL: clientcentral-12.5.7-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6549648246dd3eec624ccaa7e55805f890339fb9d4a5d0bfa5b67efc5524a042 |
|
MD5 | 9bca8c81db1d0c30454eff525a73b5b6 |
|
BLAKE2b-256 | 60129d5846bcf70b79dac4c2fa0c0075c3bd0708a77311cb723f6b1d8d8e52b6 |