JIRA Software

Welcome to JIRA Software Server development! This overview will cover everything you need to know to integrate with JIRA Software Server. This includes the P2 framework for building add-ons, as well as JIRA Software features and services that you can use when integrating with JIRA Software.

Hello world

If you already know the theory and want to jump straight into development, read our Getting started guide to build your first JIRA Server add-on.

What is JIRA Software?

JIRA Software Cloud helps software teams plan, track, and release great software. It’s a hosted service from Atlassian for agile software development, with features sprint planning, scrum and kanban boards, agile reports, dashboards, and more. You can also integrate JIRA Software Cloud with source code management and continuous integration tools to streamline your development processes.

Thinking about building an add-on or integration for JIRA Software? JIRA Software is already used by thousands of companies, like NASA, Spotify, and Twitter; and there are over a thousand JIRA-related add-ons in the Atlassian marketplace. The opportunities for extending JIRA Software are endless!

If you haven’t used JIRA Software before, check out the product overview for more information.

Building add-ons for JIRA Software Server

If you want to build an add-on for JIRA Software Server, you should use the Atlassian development platform, which includes the Plugins2 framework. Add-ons are used to extend the functionality of JIRA Software, which could be an an integration with another existing service, new features for JIRA Software, or even a new product that runs within JIRA Software.

The basic development flow for building a JIRA Software add-on using the Atlassian SDK is:

  1. Create your add-on project as you would any other JIRA add-on, for instance, by using the atlas-create-jira-plugin SDK command. This command creates the add-on project files and skeleton code.

  2. Add any JIRA modules or common modules, e.g. web panel, by using atlas-create-jira-plugin-module. Be aware that if you want to implement the LinkProvider module, you will need to add the module code by hand, as described here.

  3. When ready to build and test your add-on, run the atlas-package command from the project root directory. This command creates a packaged JAR file that you can install into JIRA. 
  4. Configure AMPS to run JIRA with JIRA Software installed. If you haven't done this before, see Configure AMPS to run JIRA Core with additional applications installed.
  5. Start up JIRA. For early development and testing, you can use the development instance that the SDK gives you when you run the following command (set the version to 7.0.0 or later)atlas-run-standalone --product jira --version 7.0.0.
  6. Log in to JIRA as an administrator, using the default username and password combination of admin/admin.
  7. Install the add-on you built in step #2 with the atlas-package command. There are two ways that you can do this:
    1. Go to the Administration Console and open the "Manage Add-ons" page. On the page, click Upload add-on and choose the JAR file that the atlas-package command generated for you. You'll find the JAR file in the target directory of your project home after running atlas-package.
    2. Using the SDK command line tools: using you terminal, step into your project home directory and simply run atlas-install-plugin (after having packaged your add-on JAR using the atlas-package SDK command). This command will simply upload your add-on to UPM (and can considerably shorten your development flow).

  8. You should now be able to see your add-on in the JIRA Software UI. Every time you change your add-on code or resource, reload your add-on by running the atlas-package command again, and then remove and reinstall the add-on JAR file from the Manage Add-ons page.

If you haven’t built an add-on before, check out the Getting started guide. This guide will help you learn how to set up a development environment and build a JIRA Server add-on.

Developing with Plugins2

If you are building an add-on with Plugins2, you'll also need to understand a number of key development processes:

  • Implementing security: Implementing security is a crucial part of integrating with JIRA. To learn more about authentication and authorization for JIRA Server, see the Security overview.
  • Listing your add-on on the Atlassian Marketplace and implementing licensing: Listing your add-on on the Atlassian Marketplaces and licensing it are necessary, if you want to make your add-on available to the public. See the Marketplace documentation for more instructions.
  • Designing your add-on: Since Plugins2 add-ons can insert content directly into the Atlassian host application, it is critical that add-ons are visually compatible with the Atlassian application’s design. Our designers and developers have created a number of resources to help you with this:

Building blocks for integrating with JIRA Software Server

The three building blocks of integrating with JIRA Software are the APIs, webhooks, and modules.

JIRA Software Server APIs

The JIRA Software Server APIs lets your integration communicate with JIRA Software Server. For example, using the REST API, you can write a script that moves issues from one sprint to another. For most other integrations, you should use the REST API. The Java API should only be used if you are building a Plugins2 add-on.

Note, JIRA Software is built on the JIRA platform, so you can also use the JIRA Server Platform REST API (latest) and JIRA Server Platform Java API (latest) to interact with JIRA Software Server.

Webhooks and automation rules

Add-ons and applications can react to conditions/events in JIRA Software via automation rules. You can implement an “automation action” that performs actions in a remote system as part of an automation rule. An automation rule can also be configured to fire a webhooks that notifies your add-on or application. For more information, see Webhooks.

JIRA Software modules

A module is simply a UI element, like a tab or a menu. JIRA Software UI modules allow add-ons to interact with the JIRA Software UI. For example, your add-on can use a JIRA Software UI module to add a new dropdown menu to a board. For more information, see About JIRA modules.

JIRA Software Server and the JIRA platform

JIRA Software is an application built on the JIRA platform. The JIRA platform provides a set of base functionality that is shared across all JIRA applications, like issues, workflows, search, email, and more. A JIRA application is an extension of the JIRA platform that provides specific functionality. For example, JIRA Software adds boards, reports, development tool integration, and other agile software development features.

This means that when you develop for JIRA Software, you are actually integrating with the JIRA Software application as well as the JIRA platform. The JIRA Software application and JIRA platform each have their own REST APIs, webhook events, and web fragments.

Read the JIRA Server platform documentation for more information.

Looking for inspiration? 

If you are looking for ideas on building the next JIRA Software Cloud integration, here are a few examples of what you can build on top of JIRA Software Cloud:

  • Retrospective Tools for JIRA – This add-on provides a number of tools for reviewing your project history, and with the JIRA Software API they’re able to let you filter by board, or even overlay your swimlanes.
  • Epic Sum Up – This add-on adds a panel to the view issue page that allows you to review your epic progress or every issue within the epic.
  • Tempo Planner for JIRA – This add-on fetches information from boards, epics, and backlogs using the JIRA Software API, and lets you plan your work by team member.

More information

Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport