• Stars
    star
    580
  • Rank 74,074 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Connect your code with your project management in Jira

GitHub For Jira

About

Connect your GitHub code with your project management in Jira. A separate Jira subscription is required. With two of your most important tools connected, you'll spend less time managing projects and more time working on them. This integration is an open-source project, built and maintained by Atlassian.

Support

For general support inquiries and bug reports, please contact the Atlassian Support team. For feature requests, please create a new issue.

Table of Contents

Install app

Requirements

This app officially supports GitHub.com (all editions including Enterprise) and Jira Cloud. Support for GitHub Enterprise Server and/or Jira server may be considered in the future.

Install from Jira Cloud site

This is the recommended approach to install the app into your Jira site and GitHub org.

  1. Sign in to your Jira Cloud account.
  2. From the top navigation bar in Jira, select Apps > Find new Apps. You can also click the Gear icon in the top-right corner and select Apps.
  3. Search for GitHub for Jira and select Get app
  4. When the app is installed, a flag will pop up in the top-right corner. Click Get Started to connect your GitHub account. If you missed this flag, click Configure integration from the Apps menu.

Next, you will need to configure the app.

Install from Atlassian Marketplace

  1. Go to Atlassian Marketplace.
  2. Sign in to your Atlassian account and click Get it now.
  3. Select your site to install this app, click Install app.
  4. You will be taken to the app listing on your Jira site, click Get app.
  5. When the app is installed, a flag will pop up in the top-right corner. Click Get Started to connect your GitHub account. If you missed this flag, click Configure integration from the Apps menu.

Next, you will need to configure the app.

Install from GitHub Marketplace

  1. Go to https://github.com/marketplace/jira-software-github.
  2. Complete the (free) order for your GitHub Organization.
  3. Choose which repositories you want to use with the Jira Integration on the installation settings screen, and click Install.
  4. You will be directed to a setup page to select your Jira site.
  5. Once installation completes you will be redirected to Atlassian Marketplace to install the GitHub for Jira app.
  6. From there, follow the instructions above to install from Atlassian Marketplace.

Configure app

Connect your GitHub organization to Jira

As part of the installation flow, you should be directed to a GitHub configuration screen to configure your GitHub organizations in the Jira app.

⚠️ If you are not directed, navigate to the Apps page of your Jira instance and click Configure integration under the ”GitHub” heading. If you do not see this, click on Manage your apps and Get started under GitHub for Jira (only visible for Jira admins). This will bring you to the app's configuration screen.

Select Connect GitHub organization, then select either GitHub Cloud or GitHub Enterprise Server.

  • If you select GitHub Cloud, you’ll be redirected to a page where you can connect to organizations in GitHub.

  • If you select GitHub Enterprise Server, you’ll need to provide the URL for your server and create a GitHub app.

On the Connect a GitHub organization page, select the organization and repositories you'd like to connect.

⚠️ If you don’t see your organization click Install Jira on a new organization and follow the steps to install the app on GitHub and allow it permission to view your repositories. You can also manage existing connections or add additional organizations at any time on this same screen.

For detailed instructions on how to connect to Cloud or Server, read our support documentation.

Connect new GitHub repositories

If you originally gave the GitHub for Jira app access to "All repositories", and you've created a new repository on GitHub after configuration, your new repository will automatically work with the integration. However, if you installed the app on a subset of repositories, you will need to manually edit your repository selection by:

  1. Sign in to your Jira Cloud account
  2. From the top navigation bar in Jira, select Apps > Manage your apps - GitHub for Jira > Get started.
  3. Select Configure next to the relevant GitHub organization and add the new repository you want the app to integrate with.

Manage app

Authorize

By granting the app access, you are providing the following authorizations to your GitHub and Jira accounts:

Jira permission scopes

Read, Write, and Admin for Development Information (branches, commits, and pull requests)

GitHub permission scopes

Repository Permissions
Permission scope Why the app needs it
Read-only access to actions Read-only access to actions exposes the workflow_run webhook event. This event includes information such as artifacts_url, check_suite_id, conclusion, head_branch, and head_sha.
Read-only access to code scanning alerts / security events If you want to see links to GitHub code scanning alerts in Jira, the app will need read permissions to Security events. The GitHub App will listen to code_scanning_alert webhooks and send details of the Security reports to Jira. These will appear under the "Other links" tab of the Development Panel on Jira issues.
Read-only access to deployments If you want to see build and deployment information in Jira, the app will need read permissions for deployments. This will allow the integration to listen to the webhook deployment_status event which occurs when a deployment is created. Read-only deployment permissions are used for the following webhooks:
- deployment status
Read-only access to metadata Metadata All GitHub apps have read-only metadata permission set by default. This is a mandatory requirement by GitHub and is needed to provide access to a collection of read-only endpoints with metadata for various resources. These endpoints do not provide sensitive private repository information. Read-only metadata permissions are used for the following webhook:
- repository
Read and write access to issues and pull requests Issues and pull requests are used by the GitHub for Jira app to power Smart Commit actions and unfurl Jira URLs. "Unfurling" means that the app looks for Jira issue keys in square brackets like [ABC-123] in pull request or issue comments and then replaces those issue keys with a link to the respective Jira issue.

Issues: Read and write issue permissions are used for the following webhooks:
- issue comment
- issues

Pull requests: Read and write pull request permissions are used for the following webhooks:
- pull request
- pull request review.

Notes:
  1. The square brackets are required, without which the pull request may appear in the Jira issue's Development section, but the issue key won't be expanded to a link.
  2. For GitHub Enterprise integration (where the user owns the GitHub app) "Write" permission is optional. When not provided, the "unfurl" logic is gently skipped.
Read and write access to contents Contents (aka code): Read-only permissions are needed to sync development information to Jira for the following webhooks:
- commit comment
- delete
- push
- workflow run

We need write permissions for the create webhook so you have the ability to create a branch from an issue's dev panel.

Note: for GitHub Enterprise integration (where the user owns the GitHub app) "Write" permission is optional. When not provided, the "Create Branch" feature will not function.
Organization permissions
Permission scope Why the app needs it
Read-only access to members To determine if you have admin access to a GitHub organization.
Events Our App Subscribes To
Event When this event occurs
Code scanning alert /security events Code Scanning alert created, fixed in branch, or closed
Commit comment A commit comment is created
Create A Git branch or tag is created
Delete A Git branch or tag is deleted
Deployment status A deployment is created
Issue comment Activity related to an issue or pull request comment
Issues Activity related to an issue
Pull request Activity related to pull requests
Pull request review Activity related to pull request reviews
Push One or more commits are pushed to a repository branch or tag
Repository Activity related to a repository
Workflow run When a GitHub Actions workflow run is requested or completed

Have more questions about permissions? Please see our FAQ documentation. If you can’t find the answer to a question, please feel free to open an issue and send your question to our team. We’ll be more than happy to answer and will update our FAQ doc accordingly.

Manage Jira subscriptions

Additionally, admins of an installation can view and delete GitHub subscriptions to other Jira instances, without having to log in to the Jira instance itself. This is useful if your installation is set up to send Development information to a Jira instance you no longer have access to, or to audit instances that other admins in your org may have previously configured.

To navigate to your Jira subscriptions

  1. Click Connect GitHub organization.
  2. Click the edit icon next to the organization.

ℹ️ This only gives you permission to delete the connection to Jira instances. To view development information in that Jira instance, you’ll need to be granted access in Jira.

Send data and use the integration

See GitHub development information in Jira

To start seeing your development information from GitHub in Jira, simply add a Jira issue key to your commit message, branch name, or PR title.

For example: the text [DEV-2095] will be sent through to Jira and appear in the Development Information section of the Jira issue with the key DEV-2095. Any branch, commit, pull request, build and deployment linked to this commit will now appear in Jira. You can find more information on how to reference issues in your development work here.

Use issue keys to link your development work to Jira

See development insights in Jira issues and quickly jump into action.

See Jira issues in GitHub

If an issue body contains a valid Jira issue key on your instance, the integration will automatically expand (unfurl) it into a reference link when surrounded in brackets []. For example: [DEV-2095] will be turned into a link to https://<your-instance>.atlassian.net/browse/DEV-2095.

This makes it so Jira issues can be linked inside a comment without it interrupting the flow of the comment as a whole.

Note: The square brackets are required, without which the pull request may appear in the Jira issue's Development section, but the issue key won't be expanded to a link.

See GitHub builds and deployments in Jira

GitHub Actions workflows and deployments will automatically be sent to your connected Jira instances so that they will be visible in Jira issues. If you’re setting this up for the first time, follow GitHub Actions Documentation - GitHub Docs. If you already have GitHub Actions and want to see CI/CD data from GitHub in Jira, include the Jira issue key in your commit message, branch name, or PR title.

Also see our guides for builds and deployments.

How the integration works

When a workflow (e.g. GitHub Action) or development event (e.g. pull request, commit, branch) runs, the app receives a webhook from GitHub. The app then extract the issue key from the respective branch/commit/PR and send this information to Jira.

How the backfill works

The app is designed to backfill historical data into Jira. Once you have installed and configured the app successfully, it will automatically trigger the backfilling process, for 6 months, for the allowed repositories to update Jira with historical information such as pull requests, deployments, branches, builds, and commits. Once the initial backfilling process is complete, you will be able to view the backfilled date and status on the user interface. All branches will be backfilled, regardless of their creation date. However, pull requests, deployments, builds, and commits will only be backfilled for the last six months. If you wish to pull more historical data in Jira, you may continue the backfill process for older dates by selecting 'Continue backfill' from the action menu. If the historical data is substantial, we recommend backfilling your data in 6 month segments, and continuing the process until you've reached the desired backfilled date.

The historical data that meets the following criteria will be available in Jira:

  1. The backfilling process attempts to connect all branches that fulfill at least one of the following criteria:
    • The branch name contains the issue key.
    • The title of the latest pull request associated with the branch contains the issue key.
    • The last commit message of the branch contains the issue key.
  2. All commits from the default branch will be backfilled. The commit message must contain the Jira issue key.
  3. Only the latest 50 commits from non-default branches will be backfilled.
  4. Unreachable commits (e.g. from deleted branches) will NOT be backfilled.
  5. All pull requests, regardless of their statuses, will be backfilled. The Jira issue key should be included either in the title of the pull request, in the description of the pull request or in the name of the source branch of the pull request.
  6. All the builds and deployments data will be backfilled that contain the issue keys. You can check how to include issue keys to the builds and deployments here.

If an error occurs during the backfilling process, the app will prompt you to retry the backfilling for the failed repositories without having to restart the entire backfill process. However, this does not account for permission errors. You will need to resolve any permissions errors before retrying the backfill process.

Migrate from the DVCS Connector

Existing users of Jira's built-in DVCS connector that meet the requirements should migrate to this integration. If you've not yet been prompted to do so, you can manually kick off the migration by:

  1. Sign in to your Jira Cloud account.
  2. From the left sidebar in Jira, select Jira Settings > Applications > DVCS accounts.
  3. Follow the prompt to upgrade your GitHub connection.

Enterprise Features

IP Allow List

GitHub has the ability to limit who can communicate with your organization's GitHub API which we now fully support. To enable this feature or to debug any issues, please refer to our GitHub IP Allow List documentation.

Known issues

Connecting GitHub organizations with SSO

If a GitHub organization is protected with SAML, you might find its "Connect" button disabled. This may happen in a scenario when the user token (which GitHub for Jira app's UI is using) does not have permissions to access the protected org, because it was issued and saved to the app's session when the user didn't have an active SAML session in GitHub in the browser.

To workaround the problem, perform the following:

  • create an active SAML session by going to https://github.com/organizations/<YOUR-ORG-NAME>/settings
    • that should initiate an auth process with your SSO identity provider
  • in the same browser window, go to GitHub for Jira app and find the disabled "Connect" button for <YOUR-ORG-NAME> GitHub org
    • it must be located either on one of these pages
      • https://github.atlassian.com/github/configuration for GitHub cloud, or
      • https://github.atlassian.com/github/<UUID>/configuration for GitHub server enterprise
  • insert resetGithubToken=true query parameter to the URL of the page in the browser and reload it
    • https://github.atlassian.com/github/configuration?resetGithubToken=true for GitHub cloud, or
    • https://github.atlassian.com/github/<UUID>/configuration?ghRedirect=to&resetGithubToken=true for GitHub server enterprise

After doing that, the token will be re-issued by GitHub with all necessary permissions and saved in the app's session, and "Connect" button should become enabled.

Need help?

Take a look through the troubleshooting steps in our support guide.

Contribute

Want to help improve the integration between GitHub and Jira? Check out the contributing docs to get involved.

License

The project is available as open source under the terms of the MIT License.

When using the GitHub logos, be sure to follow the GitHub logo guidelines.

More Repositories

1

react-beautiful-dnd

Beautiful and accessible drag and drop for lists with React
JavaScript
32,454
star
2

jest-in-case

Jest utility for creating variations of the same test
JavaScript
1,041
star
3

react-sweet-state

Shared state management solution for React
JavaScript
850
star
4

escalator

Escalator is a batch or job optimized horizontal autoscaler for Kubernetes
Go
636
star
5

prosemirror-utils

⚒ Utils library for ProseMirror
TypeScript
404
star
6

docker-chromium-xvfb

Docker image for running browser tests against headless Chromium
Dockerfile
385
star
7

nucleus

A configurable and versatile update server for all your Electron apps
TypeScript
379
star
8

gostatsd

An implementation of Etsy's statsd in Go with tags support
Go
372
star
9

smith

Smith is a Kubernetes workflow engine / resource manager
Go
287
star
10

babel-plugin-react-flow-props-to-prop-types

Convert Flow React props annotation to PropTypes
JavaScript
234
star
11

better-ajv-errors

JSON Schema validation for Human 👨‍🎤
JavaScript
222
star
12

browser-interaction-time

⏰ A JavaScript library (written in TypeScript) to measure the time a user is active on a website
TypeScript
208
star
13

gajira

GitHub Actions for Jira
191
star
14

extract-react-types

One stop shop for documenting your react components.
JavaScript
176
star
15

stricter

A project-wide js-linting tool
TypeScript
157
star
16

data-center-helm-charts

Helm charts for Atlassian's Data Center products
Java
148
star
17

bazel-tools

Reusable bits for Bazel
Starlark
112
star
18

terraform-provider-artifactory

Terraform provider to manage Artifactory
Go
89
star
19

gajira-login

Jira Login GitHub Action
JavaScript
87
star
20

build-stats

🏆 get the build stats for pipelines 🏆
TypeScript
79
star
21

kubetoken

Kubetoken
Go
74
star
22

dc-app-performance-toolkit

Atlassian Data Center App Performance Toolkit
Python
71
star
23

koa-oas3

Request and response validator for Koa using Open API Specification
TypeScript
69
star
24

1time

Lightweight, thread-safe Java/Kotlin TOTP (time-based one-time passwords) and HOTP generator and validator for multi-factor authentication valid for both prover and verifier based on shared secret
Kotlin
64
star
25

gajira-transition

JavaScript
57
star
26

sketch-plugin

Design your next Atlassian app with our component libraries and suite of Sketch tools 💎
JavaScript
57
star
27

gajira-create

JavaScript
54
star
28

go-sentry-api

A go client for the sentry api https://sentry.io/api/
Go
50
star
29

themis

Autoscaling EMR clusters and Kinesis streams on Amazon Web Services (AWS)
JavaScript
48
star
30

gajira-todo

JavaScript
47
star
31

jira-cloud-for-sketch

A Sketch plugin providing integration with JIRA Cloud
JavaScript
44
star
32

gajira-find-issue-key

JavaScript
43
star
33

oas3-chow-chow

Request and response validator against OpenAPI Specification 3
TypeScript
39
star
34

validate-npm-package

Validate a package.json file
JavaScript
38
star
35

gajira-cli

JavaScript
37
star
36

conartist

Scaffold out and keep all your files in sync over time. Code-shifts for your file system.
JavaScript
34
star
37

jira-github-connector-plugin

This project has been superseded by the JIRA DVCS Connector
JavaScript
30
star
38

voyager

Voyager PaaS
Go
30
star
39

gajira-comment

JavaScript
30
star
40

atlaskit-framerx

[Unofficial] Atlaskit for Framer X (experimental)
TypeScript
28
star
41

jira-actions

Kotlin
27
star
42

sourcemap

Java
24
star
43

go-artifactory

Go library for artifactory REST API
Go
22
star
44

asap-authentication-python

This package provides a python implementation of the Atlassian Service to Service Authentication specification.
Python
21
star
45

homebrew-tap

This repository contains a collection of Homebrew (aka, Brew) "formulae" for Atlassian
Ruby
16
star
46

atlassian-connect-example-app-node

TypeScript
15
star
47

vscode-extension-jira-frontend

JavaScript
15
star
48

ssh

Kotlin
14
star
49

jira-performance-tests

Kotlin
14
star
50

docker-fluentd

Docker image for fluentd with support for both elasticsearch and kinesis
Makefile
11
star
51

omniauth-jira

OmniAuth strategy for JIRA
Ruby
11
star
52

redis-dump-restore

Node.js library to dump and restore Redis.
JavaScript
10
star
53

jenkins-for-jira

Connect your Jenkins server to Jira Software Cloud for more visibility into your development pipeline
TypeScript
10
star
54

fluent-plugin-kinesis-aggregation

fluent kinesis plugin shipping KPL aggregation format records, based on https://github.com/awslabs/aws-fluent-plugin-kinesis
Ruby
10
star
55

infrastructure

Kotlin
9
star
56

hubot-stride

JavaScript
9
star
57

graphql-braid

9
star
58

copy-pkg

Copy a package.json with filters and normalization
JavaScript
8
star
59

rocker

Little text UI for docker
Rust
8
star
60

aws-infrastructure

Kotlin
8
star
61

gray-matter-loader

Webpack loader for extracting front-matter using gray-matter - https://www.npmjs.com/package/gray-matter
JavaScript
8
star
62

autoconvert

TinyMCE plugin for Atlassian Autoconvert
JavaScript
8
star
63

jira-hardware-exploration

Kotlin
7
star
64

virtual-users

Kotlin
7
star
65

less-plugin-inline-svg

A Less plugin that allows to inline SVG file and customize its CSS styles
JavaScript
6
star
66

report

HTML
6
star
67

docker-infrastructure

Kotlin
6
star
68

jobsite

Tools for working with workspaces as defined by Yarn, Lerna, Bolt, etc.
JavaScript
5
star
69

git-lob

Experimental large files in Git (discontinued, use git-lfs instead)
Go
5
star
70

ansible-ixgbevf

4
star
71

concurrency

Kotlin
4
star
72

jvm-tasks

Kotlin
4
star
73

jpt-example-btf

Java
3
star
74

gojiid

A Goji Middleware For adding Request Id to Context
Go
3
star
75

workspace

Kotlin
3
star
76

jsm-integration-scripts

Jira Service Management Integration Scripts
Python
3
star
77

ssh-ubuntu

Kotlin
3
star
78

jira-software-actions

Kotlin
3
star
79

atlassian-connect-example-app-python

Python
2
star
80

atlassian-connect-example-app-java

Java
2
star
81

nadel-graphql-gateway-demo

Nadel GraphQL Gateway Demo app
HTML
1
star
82

homebrew-bitbucket

A collection of pinned versions of dependencies for Bitbucket
Ruby
1
star
83

parcel-stress-test

JavaScript
1
star
84

putty-sourcetree-fork

A fork of PuTTY used by Sourcetree
C
1
star
85

frontend-guides

1
star
86

tangerine-state-viewer

Visual Studio Code extension to facilitate tangerine state navigation
TypeScript
1
star
87

uniql-es

JavaScript
1
star
88

jasmine-http-server-spy

Creates jasmine spy objects backed by a http server.
CoffeeScript
1
star
89

packit-cli

CLI tool for creating package based architecture for enterprise frontend applications.
JavaScript
1
star
90

fluent-plugin-statsd_event

Fluentd plugin for sendind events to a statsd service
Ruby
1
star
91

github-packages-test

Test repo to verify artifact delivery pipeline
Kotlin
1
star
92

org.eclipse.jgit-atlassian

Java
1
star
93

jces-1209

Benchmark for Cloud and DC
Kotlin
1
star
94

webvieweventtest

TypeScript
1
star
95

quick-303

Cloud vs DC
Kotlin
1
star