SDKs overview
JIRA offers Software Development Kits (SDKs) and client libraries that allow developers to integrate and extend JIRA's functionality programmatically. These tools simplify interaction with the Jira Platform REST API, abstracting the complexities of HTTP requests and JSON parsing into language-specific objects and methods. By using an SDK, developers can automate tasks, build custom reporting tools, synchronize data with other systems, and create new features that extend JIRA's core capabilities.
Official SDKs are typically maintained by Atlassian and provide direct support for JIRA Cloud and JIRA Data Center/Server environments. These often include comprehensive documentation and are kept updated with API changes. Community libraries, on the other hand, are developed and maintained by the broader developer community. While they might offer greater flexibility or support for niche use cases, their maintenance and compatibility with the latest JIRA API versions can vary. Both categories of libraries aim to reduce development time and effort when working with JIRA.
Official SDKs by language
Atlassian provides and supports several official SDKs for interacting with JIRA. These SDKs are designed to ensure compatibility and leverage the full range of JIRA's API features. The primary official SDKs are available for Java, JavaScript, Python, and Ruby.
| Language | Package/Library | Maturity | Description |
|---|---|---|---|
| Java | Atlassian JIRA REST Java Client (JRJC) | Stable | A Java client library for interacting with the JIRA REST API, suitable for server-side applications and integrations. Provides object-oriented access to JIRA entities like issues, projects, and users. |
| JavaScript | Atlassian Connect Express (ACE) | Stable | A Node.js framework for building JIRA Cloud add-ons. It handles authentication, lifecycle management, and provides a local development environment. While not a direct REST client, it facilitates JIRA API interaction in JavaScript environments. |
| Python | jira-python | Stable | An official Python library for the JIRA REST API, simplifying operations like creating, updating, and querying issues, managing users, and administering projects. It supports both JIRA Cloud and JIRA Server. |
| Ruby | jira-ruby | Stable | A Ruby gem for interacting with the JIRA REST API. It provides an object-oriented interface for various JIRA resources, making it suitable for scripting and Ruby-based applications. |
Installation
Installing JIRA SDKs and client libraries typically involves using language-specific package managers. The process is straightforward for each supported environment. Here are common installation commands for the main official SDKs:
Java (Atlassian JIRA REST Java Client)
For Maven-based projects, add the following dependency to your pom.xml file:
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>5.2.0</version> <!-- Check for the latest version -->
</dependency>
For Gradle, add to your build.gradle:
implementation 'com.atlassian.jira:jira-rest-java-client-core:5.2.0' // Check for the latest version
Ensure you check the official Jira REST Java Client documentation for the most current version and setup instructions.
JavaScript (Atlassian Connect Express - ACE)
ACE is typically installed as a Node.js module using npm or yarn. First, ensure you have Node.js and npm installed. Then, you can install ACE:
npm install atlassian-connect-express
When starting a new JIRA Cloud add-on project, it's common to use the Atlassian SDK which can generate a starter project configured with ACE. More details are available in the Atlassian Connect documentation.
Python (jira-python)
Install the jira library using pip, the Python package installer:
pip install jira
You can find further installation options and dependencies in the jira-python official documentation.
Ruby (jira-ruby)
Install the jira-ruby gem using RubyGems:
gem install jira-ruby
For more advanced usage and configuration, refer to the jira-ruby GitHub repository.
Quickstart example
This quickstart example demonstrates how to use the jira-python library to connect to a JIRA instance, fetch an issue, and update its description. This assumes you have a JIRA Cloud instance and an API token for authentication.
from jira import JIRA
# Your JIRA Cloud instance URL
jira_server = 'https://your-domain.atlassian.net'
# Your JIRA email and API token
# Generate an API token: https://id.atlassian.com/manage-profile/security/api-tokens
jira_email = '[email protected]'
jira_api_token = 'YOUR_API_TOKEN'
# Establish connection to JIRA
jira = JIRA(basic_auth=(jira_email, jira_api_token), server=jira_server)
# Define the issue key you want to interact with
issue_key = 'YOURPROJECT-123'
try:
# Fetch an issue
issue = jira.issue(issue_key)
print(f"Fetched Issue: {issue.key} - {issue.fields.summary}")
print(f"Current Description: {issue.fields.description}")
# Update the issue description
new_description = f"Updated description from Python SDK on {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}."
issue.update(description=new_description)
print(f"Description updated for {issue.key}.")
# Verify the update (optional, fetch again)
updated_issue = jira.issue(issue_key)
print(f"New Description: {updated_issue.fields.description}")
except Exception as e:
print(f"An error occurred: {e}")
Before running this code:
- Replace
https://your-domain.atlassian.netwith your actual JIRA Cloud instance URL. - Replace
[email protected]with the email address associated with your JIRA account. - Replace
YOUR_API_TOKENwith an API token generated from your Atlassian account. - Replace
YOURPROJECT-123with an actual issue key from your JIRA instance.
This example demonstrates basic authentication and issue manipulation; the jira-python library supports a wide range of JIRA API operations, including project management, user interaction, and workflow transitions.
Community libraries
Beyond the official offerings, the JIRA developer community contributes a variety of libraries and tools that extend JIRA's capabilities or offer alternative language bindings. These community-driven projects can be particularly useful for specific use cases or preferred programming languages not officially supported.
- Go: While Atlassian doesn't maintain an official Go SDK, several community projects exist to interact with the JIRA API, such as
andygrunwald/go-jira, which provides a comprehensive client library for Go applications. - PHP: For PHP developers, libraries like
atlassian/jira-rest-client-phpoffer a client for interacting with the JIRA REST API, useful for integrating JIRA with PHP-based web applications or scripts. - .NET/C#: The .NET ecosystem has community-maintained clients such as
atlassian-net/atlassian-sdkwhich includes components for JIRA, allowing C# developers to build integrations. - Command-line tools: Various command-line interface (CLI) tools, often developed by the community, enable quick interactions with JIRA from the terminal, useful for scripting and automation without writing full applications. An example is
jira-cli, which provides a convenient way to manage issues, projects, and users directly from the command line.
When choosing a community library, it is important to consider its active maintenance, documentation quality, and compatibility with the specific version of JIRA (Cloud or Server) you are targeting. Resources like GitHub or package manager repositories often provide insights into a library's health and community support. For example, a comparative analysis of project management tools, including JIRA, by Notion's blog often highlights integration capabilities, underscoring the importance of these diverse client libraries in expanding JIRA's ecosystem reach.