Skip to main content
Skip table of contents

Get started guide for Jira administrator

Get started guide for Jigit - Jira GitHub & GitLab integration for Jira On-Premise administrators.

About Jigit

Jigit is a Jira application for Jira On-Premises (Server and Data Center) that provides an issue view tab, which displays all commits and pull/merge requests referencing the issue key from connected Git systems like GitHub, GitLab, Azure DevOps and Gerrit Code Review.

Azure DevOps integration available since version 9.03.23.

The development panel displays issue-related branches, permits the creation of new feature branches, pull or merge requests, mapping branches to the Jira issue directly from the issue view screen.

Jigit gives you a convenient way to collect commits and pull requests from GitLab and GitHub. Jigit queries Git servers using their public REST APIs and saves commits and pull requests into a Jira database, so no code access is required. The app uses only the commit history.

The App does not have access to your source code. It doesn't clone your repositories, so no disk space is used to store sources. It uses REST APIs to query data.

By the way, have you seen our GitLab and Confluence integration?

Video course

A good place to start is to review Jigit Tutorials video course.

Jigit Configuration

You can start the Jigit plugin configuration for integration with GitHub, GitLab, Azure DevOps and Gerrit platforms in multiple ways - Access tokens, OAuth apps, Basic Auth, etc.

How to generate Personal Access Token in GitHub?

How to generate Access Token in GitLab?

How to generate Personal Access Token in Azure DevOps?

Once your Access Token is ready, you can move to the integration set-up.

First of all, you have to add a new configuration on the configurations tab:

  1. Move to the Jira Administration section (“gear” button in the right corner of the navigation menu).

  2. Navigate to the Manage app page and find our application Jigit Plugin Config on the left sidebar.

  3. From the Configurations tab, click image-20240720-120415.png.

  4. After specifying all the necessary parameters, click the Save button.

  5. The Test connection button lets you check the connection and communication between Jira and the linked GitHub,GitLab or Azure DevOps instances.

image-20240720-120808.png

Below you can find a short definition of each parameter you have to specify in the modal window that appears in front of you:

Parameter

Definition

Select Git system to connect with

specify the Git system for your connection; Azure DevOps, GitLab, GitLab 8 or earlier, GitHub or GitHub App

Use only for Development Panel

select to prevent commits from being indexed. Development Panel on issue view screen will only display branches and pull-requests.

Index pull-requests in repositories

Available since 4.12.19

Jigit can index, pull and merge request messages; when this parameter is enabled, the integration will actively monitor and index the pull requests in your repositories.

The pull or merge request title should contain the issue key. For instance, DEV-123 added support for pull requests indexing for GitLab and GitHub.

Display repositories in the development panel

the visibility of repositories to be able to сreate a branch, link a branch to the Jira issue, and сreate a code review using Jigit Development Panel.

Smart commits

Available since 3.04.01

allows you to enable or disable the use of smart commits; Jigit support for smart commits for transition: if you write the commit message in the form #in-progress (hash, status name without spaces), the issue will be transitioned to the status In Progress. The smart commits work similarly to the Bitbucket Smart Commits.

It works only if your workflow does not have any mandatory fields on transition.

Add git activities as issue comments

when enabled, Git activities, such as commits, pushes, and merges, are automatically added as comments to associated Jira issues.

After a commit is added, the operation can't be reversed. Comment stays there even if plugin is deleted.

Host

enter a host of your Git server; it can be https://github.com, https://gitlab.com, https://dev.azure.com or your instance on the GitLab server (for example, https://my.own.gitlab:8443).

Also, you can create a GitHub app and use it to get access to Github, the app needs to have the necessary permissions.

Important: After you change GitHub app permissions you need to make sure it was reinstalled on the organization level and the permission-change was accepted by the organization admin/owner.

Path to group/repository

path; it can be either a repository name or a repository group (GitLab) or organisation (GitHub) name; a repository name usually consists of two parts and is 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.

For Azure DevOps integration, in the URL https://dev.azure.com/Move-Work-Forward/BTR%20project/_git/MWF the name of the repo is Move-Work-Forward/BTR%20project/_git/MWF and the group name is Move-Work-Forward or Move-Work-Forward/BTR%20project.

Also, you have to specify the content type inside a given path: repository or a group of repositories (drop-down opposite the path)

To include all repositories in a group you need to use .* mask.

Subgroups are only working with GitLab.

Default Branch

The default branch of your GitHub or GitLab repository that will be used for integration with Jira, by default it is indicated master branch; Jigit indexes git commits from the default branch and then from the others.

When you use Test Connection action, it uses the default branch and the first accessible repository to check the connectivity.

Access Token

authentication token you created before that allows an individual user to authenticate and access GitHub resources. Service accounts are often used for this purpose.

What branches to index

a way of branch indexing:

  • All branches inside a repository

  • Branch mask helps filter and match specific branches in your GitHub or GitLab repository.

  • Selected branches

The aim is to decrease the number of API calls if this number is limited (it's actually for https://github.com, for example). If you select the "all branches" option, Jigit makes API calls to check whether there have been new git commits since the last check (even to stale branches).

Jira Projects to associate configurations with

Jira project names list where the commits and pull requests should be visible

Smart commits period

lets you to specify a time duration after which smart commits should be ignored

Override indexation settings

allows you to manually change the default settings for indexation

Commit indexing window

a time period within which commits are indexed and associated with Jira issues

Commit request timeout

the maximum amount of time allowed for making a request to retrieve commit information from the connected GitHub or GitLab repository; this parameter is used when Jigit calls the git server by HTTP API, and if the timeout is exceeded during a call the add-on stops the indexing of a repository. If you see ConnectException: Connection timed out in JIRA logs, you can increase this value to overcome it.

Default and recommended - 10 seconds.

Sleep

the duration of a pause or delay between consecutive requests made by the integration to the connected GitHub or GitLab repository

Default and recommended - 10 seconds.

Each

frequency at which the integration checks for new commits or changes in the connected GitHub or GitLab repository

Default and recommended - 100 requests.

Integration name

indicate an alias/name for your configuration which will be displayed on the configurations tab page; an alias should be unique; you can't add two configurations with the same alias.

Enable

enables the configuration to allow indexation

Here is a quick demo video of connecting Jira to GitLab using the Jigit app.

Once the configuration has been created, you can start using the app on the Jira issue view screen. The other configurations are optional to make your integrations more streamlined and efficient.

Settings

The Settings tab allows Jira administrators to configure and customize the integration settings. Those settings include:

  • General Settings: default settings for users and projects across the entire Jira instance

  • Request Settings: adjust indexation request configurations

  • Jigit Development: configure Development Panel parameters

After specifying the necessary parameters, remember to click the Save settings button.

image-20240720-122946.png

Below is a short definition of each parameter of the General settings section.

Parameter

Definition

Projects to hide Jigit

Jira projects where the Jigit tab is not visible in the activity section and the Jigit Development panel is not available.

No projects chosen means available everywhere.

Projects to show Jigit

Jira projects where the Jigit tab is visible in the activity section and the Jigit Development panel is available.

No projects chosen means available everywhere.

Issue types to hide Jigit

Issue types where the Jigit tab is not visible in the activity section and the Jigit Development panel is not available.

No issue types specified means available everywhere.

Issue types to show Jigit

Issue types where the Jigit tab is visible in the activity section and the Jigit Development panel is available.

No issue types specified means available everywhere.

URL pattern

allows you to define the URL to which the Jigit can connect; 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 restricts the URL entered for all new configurations.

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

Remove non-ASCII symbols from commits and pull-requests

ensures that any non-ASCII symbols or characters in commit messages and pull request titles are removed or replaced with ASCII equivalents.

It is required for some DB engines that do not handle non-ASCII characters.

Non-ASCII symbols refer to characters that are outside the standard ASCII character set, which includes characters such as letters, numbers, and basic punctuation marks commonly used in the English language. Examples of non-ASCII symbols include special characters, diacritical marks, emojis, or characters from other languages and scripts.

Commit indexation interval

Specify the interval in seconds between periodical commit indexation

Pull request indexation interval

Specify the interval in seconds between periodical pull request indexation

Enable webhook support

Allows the use of webhooks from the Git system allowing for more responsive feedback.

Use the URL specified in your webhook which follows the format JIRA_BASE_URL/plugins/servlet/jigit/webhook

Webhook secret

A secret password defined to validate the payload signature when connecting the webhook

Below is a short definition of each parameter of the Request settings section.

Parameter

Definition

Commit indexing window

a time period within which commits are indexed and associated with Jira issues.

Note: Leave empty for an unlimited window

Commit Request Timeout

the maximum amount of time allowed for making a request to retrieve commit information from the connected GitHub or GitLab repository; this parameter is used when Jigit calls the git server by HTTP API, and if the timeout is exceeded during a call the add-on stops the indexing of a repository. If you see ConnectException: Connection timed out in JIRA logs, you can increase this value to overcome it.

Default and recommended - 10 seconds.

Sleep

the duration of a pause or delay between consecutive requests made by the integration to the connected GitHub or GitLab repository

Default and recommended - 10 seconds.

Each

frequency at which the integration checks for new commits or changes in the connected GitHub or GitLab repository

Default and recommended - 100 requests.

Below is a short definition of each parameter of the Jigit Development section.

Parameter

Definition

Patterns of repositories to show

Specifies the comma-separated patterns of repositories to show in Jigit Development

Patterns of repositories to hide

Specifies the comma-separated patterns of repositories to hide in Jigit Development

Branch indexation interval

Specify the interval in seconds between periodical branch indexation

User PAT usage in development panel

user should create their own Personal Access Token and associate it with existing configurations. Thereafter all integrations with GitHub are performed on users behalf.

  • User will only see their available repositories

  • Branches & pull requests created by the user will list them as author

GitHub advanced development panel

show pull request details including reviews and build status.
This can work with User PAT usage in dev panel if set.

All this data is loaded in real-time which requires more calls to GitHub when the user sees the ticket

Do not load Jigit Dev Panel data by default

when enabled, the development panel won’t load be default, and will only be shown when triggered by the user clicking the ‘Load development panel’ option.

New branch pattern

Specify the naming convention for new branch creation.
The following placeholders can be used: {issue-key}, {issue-summary}, {issue-description}, {issue-type}, {user-name}

Enable actions for

show the corresponding options in the Development panel

GitHub DependaBot integration

If you want to see the GitHub DependaBot vulnerabilities in the Jira project and link them to a new or existing Jira issue, check out - How to integrate Jigit with GitHub Dependabot

Gerrit Code Review

Jigit - Jira GitHub & GitLab integration supports integration with Gerrit Code Review, allowing you to link Gerrit changesets and reviews with your Jira issues. This enables you to seamlessly bridge the gap between code reviews and project management in Jira. When the Gerrit is integrated with Jira using Jigit, it shows the data in a separate Jira issue view tab.

Configuration

To configure Gerrit Code Review navigate to the Gerrit tab on the Global configuration page and enable the integration.

Since version 6.15.04 multiple instances of Gerrit Code Review tool are supported.

Create a new configuration rule following the next steps:

  1. Click the Add button in the bottom right corner of the Configuration tab.

  2. After you have specified all the necessary parameters click on the Ok button to save the new rule.

  3. The Test Connection button allows you to check the connection and communication between Jigit and the connected Gerrit Core Review account.

Please, read the definitions of each parameter you have to specify in the modal window that appeared in front of you:

Parameter

Definition

Name

the name of your configuration rule

Enabled

refers to whether the integration with Gerrit Code Review is enabled or disabled

URL

URL to Gerrit Server instance allows the Jigit app to connect to your Gerrit and retrieve information about changesets, reviews, and other related data.

User

username or account that the Jigit app will use to authenticate and interact with your Gerrit to access the REST APIs

Password

the password or authentication token associated with the user account specified in the "User" setting

Gerrit Project

the specific project or repository in your Gerrit instance that you want to integrate with Jigit app. Here you can restrict search results only to particular Gerrit Project.

This parameter is optional. No projects are chosen means that the app will search for all changes in Gerrit.

Use only for Development panel

restricts the Jigit plugin to only be used within the Development panel of Jira

Add Gerrit development panel

display status information into the development panel on the Jira issue view screen

Projects to hide Gerrit

the list of Jira projects where to hide Gerrit information

Projects to show Gerrit

the list of Jira projects where to show Gerrit information

Search for issue in

the list of items where to search for the Jira issue key mentioned

Hashtags

the Gerrit changes with the given hashtags appear first in the result. Hashtags might increase amount of request to get the changes.

Monitoring window

the time interval during which Jigit will actively monitor and retrieve updates from the Gerrit

Hashtags

How to see Gerrit high priority code reviews in the Jigit Development panel

Circuit Breaker

With the circuit breaker, you can make Jira more stable when Gerrit is unavailable or having issues. The circuit breaker monitors the connectivity and responsiveness of integrated services such as Jira, GitHub, and GitLab. It keeps track of the success or failure rate of requests made to these services.

Below are the parameters' definitions that help you tweak the circuit breaker according to your system. We recommend starting with the default ones before your start tweaking those.

Parameter

Definition

Failure rate threshold

percent of failures to stop querying Gerrit

Monitoring window

period in seconds during which requests are monitored

Minimum requests

minimum requests to calculate state

Slow request threshold

requests which are longer than interval are treated as slow

Slow requests rate threshold

percent of slow requests to stop querying Gerrit

Silence interval

if problems are detected than plugin stops querying Gerrit for target interval

Gerrit JQL functions

In Jigit - Jira GitHub & GitLab integration, the JQL (Jira Query Language) function is available for filtering changes in Gerrit. Jigit leverages the Gerrit REST API to interact with Gerrit and perform JQL-based queries.

This function is experimental and may cause the performance issues if used with unbound scope. Please provide your feedback.

Gerrit performance

  • Gerrit information is queried when the Jira issue is rendered, and the data is placed in the Cache. Default cache invalidation is 3 minutes; it is configurable.

  • Gerrit information is not stored in the Jira database and lives only in the memory in Jira Cache.

  • Gerrit integration uses ETags to cache the results. The current cache configuration is 1000 items of each size of up to 5MB.

Available since 5.07.27/6.07.27

Jigit Development Panel

Available since 5.02.23

The Jigit development panel displays the statuses of GitHub checks

The Jigit Development Panel is a panel on the issue view screen where you can create new branches in the configured git connections and see related branches. The Jigit Development Panel provides information about branches and pull requests where the issue key is featured in the name.

For this feature to work you need to make sure the Personal Access Token used in the configuration has the correct permissions enabled to allow the create-branch operation.

To configure the Jigit Development Panel displaying, you need to:

  1. Navigate to the Settings tab on the Configuration page.

  2. Select the Jigit Development drop down

  3. You can find an overview of each parameter to configure in the Jigit Development Section.

  4. Click on the Save settings button to save the updated configurations.

To be able to сreate or link a branch to Jira issue, and сreate a code review using Jigit Development Panel you need to enable parameter Display repos in the development panel during Jigit Plugin Configuration.

image-20240729-122945.png

Please watch this demo video for more details about the Jigit Development panel.

Require user Personal Access Token (PAT)

Jira administrators can configure Jigit to use the user’s PAT instead of an admin-configured PAT.

Admin can control this in the global settings (since version 8.08.22).

image-20240729-123123.png

The Jira end-users will need to visit their personal settings and configure PATs.

The benefits of having users configured PATs are:

  • increased security, the users can only see what they see in the Git system

  • spread the load on GitHub using different PATs. Git systems usually have limits of API calls per PAT, the more PATs are used, the better.

REST APIs

Get started with Jigit GitHub/GitLab integration REST APIs

By the way, have you seen our GitLab and Confluence integration?

Support of GitHub/GitLab webhooks

How to configure webhooks with Jigit

How-tos

How-To Guides

By the way, have you seen our GitLab and Confluence integration?

Debugging and troubleshooting

Please follow this how-to article - How to enable debug-level logging for Jigit: Jira GitHub GitLab integration?

Updated:

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.