Skip to main content

API wrapper for Jira Cloud written in Python

Project description

jira-cloud-python

jira-cloud-python is an API wrapper for Jira Software Cloud written in Python

Installing

pip install jira-cloud-python

Usage

Client instantiation

from jiracloud.client import Client

client = Client('CLIENT_ID', 'CLIENT_SECRET') # Host must have trailing slash

OAuth 2.0 (3LO)

For more information: https://developer.atlassian.com/cloud/jira/platform/oauth-2-authorization-code-grants-3lo-for-apps/

Direct the user to the authorization URL to get an authorization code

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')

Exchange authorization code for access token

response = client.exchange_code('REDIRECT_URI', 'CODE')

Set access token in the library

client.set_access_token('ACCESS_TOKEN')

Get the cloudid for your site

response = client.get_resource_list()

Set cloudid in the library

client.set_cloud_id('CLOUD_ID')

Refresh token

response = client.refresh_token('REFRESH_TOKEN')

Issues

Get issue

response = client.issues.get_issue('ISSUE_ID')

Create issue

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)

Delete issue

response = client.issues.delete_issue('ISSUE_ID')

Get create issue metadata

response = client.issues.get_create_issue_metadata()

Search for issues using JQL

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)

Permissions

Get my permissions

response = client.permissions.get_my_permissions()

Projects

response = client.projects.get_projects_paginated()

Users

response = client.users.find_users_assignable_to_issues()

Webhooks

Currently, webhooks are not available for OAuth 2.0 apps, for more information: https://ecosystem.atlassian.net/browse/ACJIRA-1632

Contributing

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.

If you want to add yourself some functionality to the wrapper:

  1. Fork it ( https://github.com/GearPlug/jira-cloud-python )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Adds my new feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jira_cloud_python-1.0.2.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

jira_cloud_python-1.0.2-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file jira_cloud_python-1.0.2.tar.gz.

File metadata

  • Download URL: jira_cloud_python-1.0.2.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.10

File hashes

Hashes for jira_cloud_python-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c8975820551285f780414bd47cfb7d29a46af8f5d8dc1041d5c73142165c831f
MD5 6d42fcbe2319c6b5e900b500bc5e6866
BLAKE2b-256 298f89d60efe93156544170787c8334746edcebd5c4ac08a44d4a4adbf94df22

See more details on using hashes here.

File details

Details for the file jira_cloud_python-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for jira_cloud_python-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fbec9acdcea600236e55675bf35ca6e924195115f4cfd35fca59ecc5e38a2ccf
MD5 21c8d5551739164422cfe9e4b23ec93a
BLAKE2b-256 8a11fd887c2f047bb27141f44bc547979218981c60703d936cccd11d3bb43b9e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page