Jigit is an application for JIra Server or Data Center that provides an issue tab, which displays information about all commits referencing to the issue key. Additionally, it provides related JQL functions.

About Jigit

Jigit is an application/plugin for JIra Server 7.0+ that provides an issue tab, which displays information about all commits referencing the issue key. Add-on gives you a convenient way to collect commits from GitLab and GitHub. It has minimal settings: all you need to start is to provide a server name, a repository name and a personal access token. No additional settings at GitHub or GitLab are needed. Jigit interrogates servers using their public API and saves commits into a JIra database. It doesn't clone your repositories, so no disk space is used to store sources.

Security & Architecture explained

Jigit - Security & Architecture

The data stored by this App

Jigit - Data Stored

Frequently Asked Questions

You can Jira GitHub and GitLab integration frequently asked questions guide here.

Configuration

  1. Log in to JIRA as administrator

  2. Choose the cog icon

  3. Choose the Add-ons menu.

  4. Click on the Jigit Plugin Config link to get into the configuration page.

Quick video demo

Below you can see a quick demo of how to connect Jira to GitLab using Jigit Jira App by Move Work Forward.

How to add a new repository

Go to the configuration page and click on the Add button in the right bottom corner.

Enter the following information:

  • Enter an alias for your repo. This name will be displayed in the commits tab page. Alias should be unique, you can't add two repositories with the same alias.

  • Enter a host of your git server. It can be https://github.com, or https://gitlab.com, or your own instance on GitLab server, for example, https://my.own.gitlab:8443

  • Enter access token following the instructions from the section below.

  • Key in a Path. It can be either a repository name or a group(in terms of GitLab)\organisation(in terms of GitHub) name. A repository name usually consists of two parts and displayed in the query string of a browser. For example, in the URL https://gitlab.com/gitlab-org/gitlab-ce the name of the repo is gitlab-org/gitlab-ce and the group name is gitlab-org.

  • Specify content inside a given Path: a group of repositories or a single repo.

All other data is additional:

  • Select a way of branch indexing: all branches inside a repository, or only selected branches. The aim is to decrease the number of API calls if this number is limited (it's actual for https://github.com, for example). If you select the "all branches" option then Jigit makes API calls to check whether there are new git commits since the last check (even to stale branches).

  • Default branch name. First, Jigit indexes git commits from the default branch, and then from the others.

  • Commit request timeout. This parameter is used when Jigit calls the git server by HTTP API. If the timeout is exceeded during a call, then the add-on stops the indexing of a repository. If you see a ConnectException: Connection timed out in JIRA logs, you can increase this value to overcome it.

  • Sleep timeout and number of requests parameters are used to prevent Jigit from excessive usage of the server's API. By default, Jigit sleeps for ten seconds every hundred commits.

Performance-related parameters

Jigit - Performance considerations

Create an access token

GitHub access token: Read here about how to create an access token in GitHub. Note, that Jigit uses only repo scope to read commits. If a user sees a Not Found error you need to make sure that the path to the repo is correct AND the token has the correct scope.

GitLab access token: GitLab provides options to use GitLab project access token Or GitLab personal access token you can find information about how to create access token in GitLab. Jigit uses only API scope to read commits' information.

Order of branch indexing

As mentioned above, at first, Jigit indexes commits from the default branch (usually, master). This means that if a commit to a branch has been merged to the default branch before the start of the indexing, then it will be indexed as a commit to the default branch. The add-on starts indexing all other branches in a lexicographical order after indexing the default branch. I.e. at first, it will index the default branch, then branch develop and then branch feature-123.

How to add a new branch to be indexed

If you choose to index only concrete branches, go to the configuration page. Key in a branch name in the Branches column of a row with the configuration of the target repo.

JQL functions

issuesWithCommitCount(number) - is the JQL function that allows to narrow down the issue search result by limiting the number of commits associated with an issue.

If you need any other functions related to the Gitlab or GitHub commits please contact us.

Commit message

If you want a commit to be displayed on an issue tab, you should specify the issue key in the commit message. E.g. make a commit with the message "fixes TST-123: a new implementation of hashCode", where TST-123 is the issue key. Message can contain more than one issue key, in this case, a commit in will be displayed on the tab of every mentioned issue.

Smart commits

From version 3.04.01 Jigit supports smart commits for transitions. This means if you mention the status in form #in-progress (hash, no spaces and dashes are important) the issue will be transitioned to the status In Progress.

Settings

Project whitelist and blacklist

In the global settings, it is possible to have a comma-separated list of projects where the Jigit Tab is visible (whitelist, no projects means - available everywhere). There is a list of the projects to hide the Jigit Tab as well - no projects means - available everywhere.

Restrict URL where the Jigit can connect with

By default, all URLs are allowed, but the Jira administrator can use jira-jigit-plugin.url.pattern environment variable to set the URL pattern which is used to restrict the URL entered for all new rules.

For instance, -Djira-jigit-plugin.url.pattern="https://github.com|https://gitlab.com".

Debugging

If you need to debug the app please add jigit with the DEBUG log level in the Jira logging section and reproduce the issue you are having. Please send us the support zip afterwards.

Proposals

Leave your feature proposals here.

Feedback

We'll be grateful if you leave feedback.

Updated: