SDKs overview
The Atlassian Jira API provides programmatic access to Jira Cloud data and functionalities, allowing developers to build integrations, automate workflows, and extend Jira's capabilities. While direct interaction with the Jira Cloud Platform REST API via HTTP requests is possible, SDKs (Software Development Kits) offer a more structured and efficient approach. These kits provide language-specific bindings, handle authentication, manage request/response serialization, and simplify error handling, reducing the boilerplate code required for common operations.
Atlassian, alongside its developer community, maintains and contributes to a range of SDKs across various programming languages. These libraries abstract the underlying REST API, allowing developers to interact with Jira resources using familiar object-oriented paradigms or idiomatic language constructs. This approach supports faster development cycles and improved code readability when building applications that interact with Jira.
Official SDKs by language
Atlassian provides and supports several official SDKs for interacting with the Jira Cloud Platform API. These SDKs are designed to align with the latest API versions and best practices, offering a reliable way to integrate with Jira. The following table outlines the key official SDKs, their package names, installation commands, and general maturity status.
| Language | Package Name | Installation Command | Maturity / Status | Documentation Link |
|---|---|---|---|---|
| Java | com.atlassian.jira.restclient |
Add to pom.xml (Maven) or build.gradle (Gradle) |
Stable, actively maintained | Jira Cloud Platform development guide |
| Python | jira |
pip install jira |
Stable, actively maintained | Jira Cloud Platform development guide |
| JavaScript (Node.js) | atlassian-jira-client |
npm install atlassian-jira-client |
Stable, actively maintained | Jira Cloud Platform development guide |
| Ruby | jira-ruby |
gem install jira-ruby |
Stable, community-driven with Atlassian support | Jira Cloud Platform development guide |
| Go | go-jira |
go get github.com/andygrunwald/go-jira |
Stable, community-driven with Atlassian support | Jira Cloud Platform development guide |
| C# (.NET) | Atlassian.Jira |
Install-Package Atlassian.Jira (NuGet) |
Stable, community-driven with Atlassian support | Jira Cloud Platform development guide |
Installation
Installation procedures for Atlassian Jira API SDKs typically follow the standard package management conventions of each programming language. Below are examples for the most commonly used languages:
Python
The official Python library for Jira is installed via pip:
pip install jira
After installation, you can import and use the Jira client in your Python projects. More detailed instructions are available in the Jira Cloud Platform getting started guide.
JavaScript (Node.js)
For Node.js environments, the atlassian-jira-client library can be installed using npm:
npm install atlassian-jira-client
This command adds the library to your project's dependencies, allowing you to require it in your JavaScript files.
Java (Maven/Gradle)
For Java projects, the Jira REST client library is typically managed using build tools like Maven or Gradle. You add the dependency to your project's configuration file:
Maven (pom.xml):
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>5.2.2</version> <!-- Use the latest version -->
</dependency>
Gradle (build.gradle):
dependencies {
implementation 'com.atlassian.jira:jira-rest-java-client-core:5.2.2' // Use the latest version
}
Ensure you reference the latest version numbers from the official Atlassian documentation or Maven Central for stability and security updates.
Ruby
The jira-ruby gem is installed using the RubyGems package manager:
gem install jira-ruby
This makes the library available for use in Ruby applications.
Go
For Go projects, the go-jira library is obtained using the go get command:
go get github.com/andygrunwald/go-jira
This command fetches the package and its dependencies, making it available for import in your Go source files.
C# (.NET)
The Atlassian.Jira NuGet package is installed via the NuGet Package Manager Console in Visual Studio or the .NET CLI:
NuGet Package Manager Console:
Install-Package Atlassian.Jira
.NET CLI:
dotnet add package Atlassian.Jira
This integrates the library into your .NET project, allowing access to Jira functionalities.
Quickstart example
This quickstart example demonstrates how to use the Python SDK to connect to a Jira Cloud instance, retrieve an issue, and update its description. Before running this code, ensure you have installed the jira Python library and have your Jira Cloud URL, a valid email, and an API token ready.
To generate an API token, visit your Atlassian API tokens page.
from jira import Jira
# Configuration variables
JIRA_URL = "https://your-domain.atlassian.net"
YOUR_EMAIL = "[email protected]"
API_TOKEN = "YOUR_API_TOKEN"
ISSUE_KEY = "YOURPROJECT-123" # Example: 'PROJ-123'
try:
# Initialize the Jira client
jira = Jira(server=JIRA_URL, basic_auth=(YOUR_EMAIL, API_TOKEN))
print(f"Successfully connected to Jira at {JIRA_URL}")
# Retrieve an issue
issue = jira.issue(ISSUE_KEY)
print(f"Retrieved issue {issue.key}: {issue.fields.summary}")
print(f"Current description: {issue.fields.description}")
# Update the issue description
new_description = f"Updated description via Python SDK on {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
issue.update(description=new_description)
print(f"Issue {issue.key} description updated to: {new_description}")
# Verify the update (optional)
updated_issue = jira.issue(ISSUE_KEY, fields='description')
print(f"Verified updated description: {updated_issue.fields.description}")
except Exception as e:
print(f"An error occurred: {e}")
print("Please check your JIRA_URL, YOUR_EMAIL, API_TOKEN, and ISSUE_KEY.")
This script first establishes a connection using basic authentication with an API token. It then fetches a specified issue by its key, prints its summary and current description, updates the description field, and then optionally re-fetches the issue to confirm the change. Remember to replace placeholder values with your actual Jira instance details.
Community libraries
Beyond the officially supported SDKs, the Atlassian developer community has created and maintained a variety of libraries and tools that extend integration possibilities with Jira. These community-driven projects often cater to specific use cases, provide additional functionalities, or offer support for languages not covered by official SDKs.
- PHP: While Atlassian does not provide an official PHP SDK, several community-maintained libraries exist, such as
chadicus/jira-rest-api, which allow PHP applications to interact with the Jira REST API. These libraries typically wrap HTTP clients and provide methods for common Jira operations. Developers should consult the respective project repositories for installation and usage instructions. - Other Languages: For languages like Swift, Kotlin, or Rust, developers might find community contributions on platforms like GitHub or package managers specific to those ecosystems. These libraries vary in maturity and active maintenance, so it is advisable to check their documentation, issue trackers, and contribution history before integrating them into production systems.
- Framework-Specific Integrations: Some community libraries offer integrations tailored for popular web frameworks, such as Django for Python or Laravel for PHP, simplifying the process of embedding Jira functionalities within applications built on these frameworks.
When considering a community library, it is important to evaluate factors such as:
- Active Maintenance: Is the library regularly updated to support new Jira API versions and address bugs?
- Documentation: Is there clear and comprehensive documentation for installation, usage, and examples?
- Community Support: Is there an active community (e.g., GitHub issues, forums) that can provide assistance?
- License: Is the library distributed under a permissive license compatible with your project?
Developers can explore resources like Atlassian Marketplace Connect apps and GitHub to discover community-developed tools and libraries that might suit their specific integration needs. The breadth of community contributions reflects the extensive ecosystem surrounding Atlassian Jira.