jira-cloud-python is an API wrapper for Jira Software Cloud written in Python
pip install jira-cloud-python
from jiracloud.client import Client
client = Client('CLIENT_ID', 'CLIENT_SECRET') # Host must have trailing slash
For more information: https://developer.atlassian.com/cloud/jira/platform/oauth-2-authorization-code-grants-3lo-for-apps/
A refresh token can be returned with the access token in your initial authorization flow. To do this, add the offline_access scope to the scope parameter of the authorization URL.
scope_list = ['read:jira-user', 'read:jira-work', 'write:jira-work', 'offline_access']
url = client.authorization_url('REDIRECT_URI', scope_list, 'STATE')
response = client.exchange_code('REDIRECT_URI', 'CODE')
client.set_access_token('ACCESS_TOKEN')
response = client.get_resource_list()
client.set_cloud_id('CLOUD_ID')
response = client.refresh_token('REFRESH_TOKEN')
response = client.issues.get_issue('ISSUE_ID')
data = {
"update": {},
"fields": {
"summary": "something's wrong",
"issuetype": {
"id": "10000"
},
"components": [
{
"id": "10000"
}
],
"customfield_20000": "06/Jul/19 3:25 PM",
"customfield_40000": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "this is a text field",
"type": "text"
}
]
}
]
},
"customfield_70000": [
"jira-administrators",
"jira-software-users"
],
"project": {
"id": "10000"
},
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "description",
"type": "text"
}
]
}
]
},
"reporter": {
"id": "99:e2a16dd9-2ffb-4a4b-a9bd-bd1145a020ee"
},
"fixVersions": [
{
"id": "10001"
}
],
"customfield_10000": "09/Jun/19",
"priority": {
"id": "20000"
},
"labels": [
"bugfix",
"blitz_test"
],
"timetracking": {
"remainingEstimate": "5",
"originalEstimate": "10"
},
"customfield_30000": [
"10000",
"10002"
],
"customfield_80000": {
"value": "red"
},
"security": {
"id": "10000"
},
"environment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "environment",
"type": "text"
}
]
}
]
},
"versions": [
{
"id": "10000"
}
],
"duedate": "2019-05-11T00:00:00.000Z",
"customfield_60000": "jira-software-users",
"customfield_50000": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "this is a text area. big text.",
"type": "text"
}
]
}
]
},
"assignee": {
"id": "e5:e1a16c14-1fe0-1c93-a2b1-ac4493ace0f1"
}
}
}
response = client.issues.create_issue(data)
response = client.issues.delete_issue('ISSUE_ID')
response = client.issues.get_create_issue_metadata()
data = {
"expand": [
"names",
"schema",
"operations"
],
"jql": "project = HSP",
"maxResults": 15,
"fieldsByKeys": false,
"fields": [
"summary",
"status",
"assignee"
],
"startAt": 0
}
response = client.issues.search_for_issues_using_jql(data)
response = client.permissions.get_my_permissions()
response = client.projects.get_projects_paginated()
response = client.users.find_users_assignable_to_issues()
Currently, webhooks are not available for OAuth 2.0 apps, for more information: https://ecosystem.atlassian.net/browse/ACJIRA-1632
We are always grateful for any kind of contribution including but not limited to bug reports, code enhancements, bug fixes, and even functionality suggestions.
You can report any bug you find or suggest new functionality with a new issue.
- Fork it ( https://github.com/GearPlug/jira-cloud-python )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Adds my new feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request