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 plugins, as well as Jira Software features and services that you can use when integrating with 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 a plugin 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 plugins 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.
If you want to build a plugin 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 plugin using the Atlassian SDK is:
Create your plugin project as you would any other Jira plugin, for instance, by using the atlas-create-jira-plugin SDK command. This command creates the plugin project files and skeleton code.
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.
When ready to build and test your plugin, run the atlas-package command from the project root directory. This command creates a packaged JAR file that you can install into Jira.
Install the plugin you built in step #2 with the command. There are two ways that you can do this:
You should now be able to see your plugin in the Jira Software UI. Every time you change your plugin code or resource, reload your plugin by running the command again, and then remove and reinstall the plugin JAR file from the Manage Add-ons page.
If you haven't built a plugin 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 app.
If you are building a plugin with Plugins2, you'll also need to understand a number of key development processes:
The three building blocks of integrating with Jira Software are the APIs, webhooks, and modules.
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 plugin.
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 plugin or application. For more information, see Webhooks.
A module is simply a UI element, like a tab or a menu. Jira Software UI modules allow plugins to interact with the Jira Software UI. For example, your plugin 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 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.
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: