Skip to main content

Python Atlassian REST API Wrapper

Project description

Build statusPyPI versionPyPI - Downloads LicenseCodacy BadgeDocumentation StatusDiscord Chat

What is it?

The atlassian-python-api library provides a simple and convenient way to interact with Atlassian products (such as Jira Service management, Jira Software, Confluence, Bitbucket and apps Insight, X-Ray) using Python. It is based on the official REST APIs of these products, as well as additional private methods and protocols (such as xml+rpc and raw HTTP requests). This library can be used to automate tasks, integrate with other tools and systems, and build custom applications that interact with Atlassian products. It supports a wide range of Atlassian products, including Jira, Confluence, Bitbucket, StatusPage and others, and is compatible with both Atlassian Server and Cloud instances.

Overall, the atlassian-python-api is a useful tool for Python developers who want to work with Atlassian products. It is well-documented and actively maintained, and provides a convenient way to access the full range of functionality offered by the Atlassian REST APIs.

Documentation

Documentation

How to Install?

From PyPI

$ pip install atlassian-python-api

From Source

  • Git clone repository

  • Use pip install -r requirements.txt to install the required packages

  • or pipenv install && pipenv install --dev

Examples

More examples in examples/ directory.

Here’s a short example of how to create a Confluence page:

from atlassian import Confluence

confluence = Confluence(
    url='http://localhost:8090',
    username='admin',
    password='admin')

status = confluence.create_page(
    space='DEMO',
    title='This is the title',
    body='This is the body. You can use <strong>HTML tags</strong>!')

print(status)

Please, note Confluence Cloud need to be used via token parameter. And here’s another example of how to get issues from Jira using JQL Query:

from atlassian import Jira

jira = Jira(
    url='http://localhost:8080',
    username='admin',
    password='admin')
JQL = 'project = DEMO AND status IN ("To Do", "In Progress") ORDER BY issuekey'
data = jira.jql(JQL)
print(data)

The traditional jql method is deprecated for Jira Cloud users, as Atlassian has transitioned to a nextPageToken-based pagination approach instead of startAt. Use enhanced_jql for improved performance and future compatibility.

from atlassian import Jira

jira = Jira(
    url='https://your-jira-instance.atlassian.net',
    username='[email protected]',
    password='your-api-token',
    cloud=True  # Ensure this is set to True for Jira Cloud
)
JQL = 'project = DEMO AND status IN ("To Do", "In Progress") ORDER BY issuekey'
# Fetch issues using the new enhanced_jql method
data = jira.enhanced_jql(JQL)
print(data)

Also, you can use the Bitbucket module e.g. for getting project list

from atlassian import Bitbucket

bitbucket = Bitbucket(
        url='http://localhost:7990',
        username='admin',
        password='admin')

data = bitbucket.project_list()
print(data)

Now you can use the Jira Service Desk module. See docs. Example to get your requests:

from atlassian import ServiceDesk

sd = ServiceDesk(
        url='http://localhost:7990',
        username='admin',
        password='admin')

data = sd.get_my_customer_requests()
print(data)

Using Insight (CMDB Tool for Jira):

from atlassian import Insight

insight = Insight(
        url='http://localhost:7990',
        username='admin',
        password='admin')

data = insight.get_object(88)
print(data)

Using Xray (Test Management tool for Jira):

from atlassian import Xray

xr = Xray(
       url='http://localhost:7990',
        username='admin',
        password='admin')

data = xr.get_tests('TEST-001')
print(data)

Using Bamboo:

from atlassian import Bamboo

bamboo = Bamboo(
        url='http://localhost:6990/bamboo/',
        token="<TOKEN>")

data = bamboo.get_elastic_configurations()
print(data)

If you want to see the response in pretty print format JSON. Feel free for use construction like:

from pprint import pprint
# you code here
# and then print using pprint(result) instead of print(result)
pprint(response)

How to contribute?

First of all, I am happy for any PR requests. Let’s fork and provide your changes :) See the Contribution Guidelines for this project for details on how to make changes to this library.

Credits

In addition to all the contributors we would like to thank these vendors:

  • Atlassian for developing such a powerful ecosystem.

  • JetBrains for providing us with free licenses of PyCharm

  • Microsoft for providing us with free licenses of VSCode

  • for hosting our repository and continuous integration

Project details


Release history Release notifications | RSS feed

This version

4.0.4

Download files

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

Source Distribution

atlassian_python_api-4.0.4.tar.gz (267.0 kB view details)

Uploaded Source

Built Distribution

atlassian_python_api-4.0.4-py3-none-any.whl (193.5 kB view details)

Uploaded Python 3

File details

Details for the file atlassian_python_api-4.0.4.tar.gz.

File metadata

  • Download URL: atlassian_python_api-4.0.4.tar.gz
  • Upload date:
  • Size: 267.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.0

File hashes

Hashes for atlassian_python_api-4.0.4.tar.gz
AlgorithmHash digest
SHA256351e378cf489f31c3fbf9e71670fa7ee2a7b68c20d616665d4e8bca17a3d2983
MD5eb6af8dd34671b5a648ac960ab187ba0
BLAKE2b-256b3415a38f64380c9b101bc2da14b7e54f500a30b3cdb2c512e568715fca2c723

See more details on using hashes here.

File details

Details for the file atlassian_python_api-4.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for atlassian_python_api-4.0.4-py3-none-any.whl
AlgorithmHash digest
SHA256d5e61a4a6a69e9f9b0737f449fad6beb5e4dc39665ac4269f1f8fa8fa4246c3c
MD51ba2661e3384117ae3023424056cd7d7
BLAKE2b-25612c9c535e0c13d10bc08b73bd607f9b83b5c159be3c112093a96e007e3329906

See more details on using hashes here.