- Notifications
You must be signed in to change notification settings - Fork705
Atlassian Python REST API wrapper. 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 and by community for Atlassian
License
atlassian-api/atlassian-python-api
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Theatlassian-python-api library provides asimple 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, theatlassian-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 offunctionality offered by the Atlassian REST APIs and made with love for Atlassian.
From PyPI
$pip install atlassian-python-apiFrom Source
- Git clone repository
- Use
pip install -r requirements.txtto install the required packages - or
pipenv install && pipenv install --dev
Moreexamples inexamples/ directory.
Here's a short example of how to create a Confluence page:
fromatlassianimportConfluenceimportrequests# If you want to use a session, you can create it like this:session=requests.Session()# and pass it to the Confluence constructorconfluence=Confluence(url='http://localhost:8090',username='admin',password='admin',session=session,)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:
fromatlassianimportJiraimportrequestssession=requests.Session()jira=Jira(url='http://localhost:8080',username='admin',password='admin',session=session)# Optional: use a session for persistent connectionsJQL='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.
fromatlassianimportJiraimportrequestssession=requests.Session()jira=Jira(url='https://your-jira-instance.atlassian.net',username='your-email@example.com',password='your-api-token',cloud=True,# Ensure this is set to True for Jira Cloudsession=session# Optional: use a session for persistent connections)JQL='project = DEMO AND status IN ("To Do", "In Progress") ORDER BY issuekey'# Fetch issues using the new enhanced_jql methoddata=jira.enhanced_jql(JQL)print(data)
Also, you can use the Bitbucket module e.g. for getting project list
fromatlassianimportBitbucketimportrequestssession=requests.Session()bitbucket=Bitbucket(url='http://localhost:7990',username='admin',password='admin',session=session)data=bitbucket.project_list()print(data)
Now you can use the Jira Service Desk module. See docs.Example to get your requests:
fromatlassianimportServiceDeskimportrequestssd=ServiceDesk(url='http://localhost:7990',username='admin',password='admin',session=requests.Session())data=sd.get_my_customer_requests()print(data)
Using Insight (CMDB Tool for Jira):
fromatlassianimportInsightimportrequestssession=requests.Session()insight=Insight(url='http://localhost:7990',username='admin',password='admin',session=session)data=insight.get_object(88)print(data)
Using Xray (Test Management tool for Jira):
fromatlassianimportXrayimportrequestssession=requests.Session()xr=Xray(url='http://localhost:7990',username='admin',password='admin',session=session)data=xr.get_tests('TEST-001')print(data)
Using Bamboo:
fromatlassianimportBambooimportrequestssession=requests.Session()bamboo=Bamboo(url='http://localhost:6990/bamboo/',token="<TOKEN>",session=session)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:
frompprintimportpprint# you code here# and then print using pprint(result) instead of print(result)pprint(response)
First of all, I am happy for any PR requests.Let's fork and provide your changes :)See theContribution Guidelines for this project for details on how to make changes to this library.
In addition to all the contributors we would like to thank these vendors:
About
Atlassian Python REST API wrapper. 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 and by community for Atlassian
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.