GitLab for Jira Cloud app

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
note
This page contains user documentation for the GitLab for Jira Cloud app. For administrator documentation, see GitLab for Jira Cloud app administration.

With the GitLab for Jira Cloud app, you can connect GitLab and Jira Cloud to sync development information in real time. You can view this information in the Jira development panel.

You can use the GitLab for Jira Cloud app to link top-level groups or subgroups. It’s not possible to directly link projects or personal namespaces.

To set up the GitLab for Jira Cloud app on GitLab.com, install the GitLab for Jira Cloud app.

After you set up the app, you can use the project toolchain developed and maintained by Atlassian to link GitLab repositories to Jira projects. The project toolchain does not affect how development information is synced between GitLab and Jira Cloud.

For Jira Data Center or Jira Server, use the Jira DVCS connector developed and maintained by Atlassian.

GitLab data synced to Jira

After you link a group, the following GitLab data is synced to Jira for all projects in that group when you mention a Jira issue ID:

  • Existing project data (before you linked the group):
    • The last 400 merge requests
    • The last 400 branches and the last commit to each of those branches (GitLab 15.11 and later)
  • New project data (after you linked the group):
    • Merge requests
      • Merge request author
    • Branches
    • Commits
      • Commit author
    • Pipelines
    • Deployments
    • Feature flags

Install the GitLab for Jira Cloud app

Tier: Free, Premium, Ultimate Offering: GitLab.com

Prerequisites:

  • Your network must allow inbound and outbound connections between GitLab and Jira.
  • You must meet certain Jira user requirements.

To install the GitLab for Jira Cloud app:

  1. In Jira, on the top bar, select Apps > Explore more apps and search for GitLab for Jira Cloud.
  2. Select GitLab for Jira Cloud, then select Get it now.

Alternatively, get the app directly from the Atlassian Marketplace.

You can now configure the GitLab for Jira Cloud app.

For an overview, see Installing the GitLab for Jira Cloud app from the Atlassian Marketplace for GitLab.com.

Configure the GitLab for Jira Cloud app

Tier: Free, Premium, Ultimate Offering: GitLab.com
History
  • Add namespace renamed to Link groups in GitLab 16.1.

Prerequisites:

  • You must have at least the Maintainer role for the GitLab group.
  • You must meet certain Jira user requirements.

You can sync data from GitLab to Jira by linking the GitLab for Jira Cloud app to one or more GitLab groups. To configure the GitLab for Jira Cloud app:

  1. In Jira, on the top bar, select Apps > Manage your apps.
  2. Expand GitLab for Jira. Depending on how you installed the app, the name of the app is:
  3. Select Get started.
  4. Optional. To link a self-managed GitLab instance with Jira, select Change GitLab version.
    1. Select all checkboxes, then select Next.
    2. Enter your GitLab instance URL, then select Save.
  5. Select Sign in to GitLab.

    note
    Enterprise users with disabled password authentication for their group must first sign in to GitLab with their group’s single sign-on URL.
  6. Select Authorize. A list of groups is now visible.
  7. Select Link groups.
  8. To link to a group, select Link.

After you link to a GitLab group:

  • Data is synced to Jira for all projects in that group. The initial data sync happens in batches of 20 projects per minute. For groups with many projects, the data sync for some projects is delayed.
  • A GitLab for Jira Cloud app integration is automatically enabled for the group, and all subgroups or projects in that group. The integration allows you to configure Jira Service Management.

Configure Jira Service Management

History
note
This feature was added as a community contribution and is developed and maintained by the GitLab community only.

Prerequisites:

You can connect GitLab to your IT service project to track your deployments.

Configuration happens in GitLab, in the GitLab for Jira Cloud app integration. The integration is enabled for a group, its subgroups, and projects in GitLab after a GitLab group has been linked.

Enabling and disabling the GitLab for Jira Cloud app integration happens entirely automatically through group linking, and not through the GitLab integrations form or API.

In Jira Service Management:

  1. In your service project, go to Project settings > Change management.
  2. Select Connect Pipeline > GitLab, then copy the Service ID at the end of the setup flow.

In GitLab:

  1. On the left sidebar, select Search or go to and find your project.
  2. Select Settings > Integrations.
  3. Select GitLab for Jira Cloud app. If the integration is disabled, first link a GitLab group which enables the GitLab for Jira Cloud app integration for the group, its subgroups, and projects.
  4. In the Service ID field, enter the service ID that you want to map into this project. To use multiple service IDs, add a comma between each service ID.

You can map up to 100 services.

For more information about deployment tracking in Jira, see Set up deployment tracking.

Set up deployment gating with GitLab

Tier: Premium, Ultimate Offering: GitLab.com
History
note
This feature was added as a community contribution and is developed and maintained by the GitLab community only.

You can set up deployment gating to bring change requests from GitLab to Jira Service Management for approval. With deployment gating, any GitLab deployments to your selected environments are automatically sent to Jira Service Management and are only deployed if they’re approved.

Create the service account token

To create a service account token in GitLab, you must first create a personal access token. This token authenticates the service account token used to manage GitLab deployments in Jira Service Management.

To create the service account token:

  1. Create a service account user.
  2. Add the service account to a group or project by using your personal access token.
  3. Add the service account to protected environments.
  4. Generate a service account token by using your personal access token.
  5. Copy the service account token value.

Enable deployment gating

To enable deployment gating:

  • In GitLab:

    1. On the left sidebar, select Search or go to and find your project.
    2. Select Settings > Integrations.
    3. Select GitLab for Jira Cloud app.
    4. Under Deployment gating, select the Enable deployment gating checkbox.
    5. In the Environment tiers text box, enter the names of the environments you want to enable deployment gating for. You can enter multiple environment names separated by commas (for example, production, staging, testing, development). Use lowercase letters only.
    6. Select Save changes.
  • In Jira Service Management:

    1. Set up deployment gating.
    2. In the Service account token text box, paste the service account token value you copied from GitLab.

Add the service account to protected environments

To add the service account to your protected environments in GitLab:

  1. On the left sidebar, select Search or go to and find your project.
  2. Select Settings > CI/CD.
  3. Expand Protected environments and select Protect an environment.
  4. From the Select environment dropdown list, select an environment to protect (for example, staging).
  5. From the Allowed to deploy dropdown list, select who can deploy to this environment (for example, Developers + Maintainers).
  6. From the Approvers dropdown list, select the service account you created.
  7. Select Protect.

Example API requests

  • Create a service account user:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=<name_of_your_choice>&username=<username_of_your_choice>"  "<https://gitlab.com/api/v4/groups/<group_id>/service_accounts"
    
  • Add the service account to a group or project by using your personal access token:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
         --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/groups/<group_id>/members"
    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
         --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/projects/<project_id>/members"
    
  • Generate a service account token by using your personal access token:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>"
    "https://gitlab.com/api/v4/groups/<group_id>/service_accounts/<service_account_id>/personal_access_tokens" --data "scopes[]=api,read_user,read_repository" --data "name=service_accounts_token"
    

Update the GitLab for Jira Cloud app

Most updates to the app are automatic. For more information, see the Atlassian documentation.

If the app requires additional permissions, you must manually approve the update in Jira.

Security considerations

The GitLab for Jira Cloud app connects GitLab and Jira. Data must be shared between the two applications, and access must be granted in both directions.

GitLab access to Jira

When you configure the GitLab for Jira Cloud app, GitLab receives a shared secret token from Jira. The token grants GitLab READ, WRITE, and DELETE app scopes for the Jira project. These scopes are required to update information in the Jira project’s development panel. The token does not grant GitLab access to any other Atlassian product besides the Jira project the app was installed in.

The token is encrypted with AES256-GCM and stored on GitLab. When the GitLab for Jira Cloud app is uninstalled from your Jira project, GitLab deletes the token.

Jira access to GitLab

Jira does not gain any access to GitLab.

Data sent from GitLab to Jira

For all the data sent to Jira, see GitLab data synced to Jira.

For more information about the specific data properties sent to Jira, see the serializer classes involved in data synchronization.

Data sent from Jira to GitLab

GitLab receives a lifecycle event from Jira when the GitLab for Jira Cloud app is installed or uninstalled. The event includes a token to verify subsequent lifecycle events and to authenticate when sending data to Jira. Lifecycle event requests from Jira are verified.

For self-managed instances that use the GitLab for Jira Cloud app from the Atlassian Marketplace, GitLab.com handles lifecycle events and forwards them to the self-managed instance. For more information, see GitLab.com handling of app lifecycle events.

Data stored by Jira

Data sent to Jira is stored by Jira and displayed in the Jira development panel.

When the GitLab for Jira Cloud app is uninstalled, Jira permanently deletes this data. This process happens asynchronously and might take up to several hours.

Privacy and security details in the Atlassian Marketplace

For more information, see the privacy and security details of the Atlassian Marketplace listing.

Troubleshooting

When working with the GitLab for Jira Cloud app, you might encounter the following issues.

For administrator documentation, see GitLab for Jira Cloud app administration.

When you connect the GitLab for Jira Cloud app, you might get this error:

Failed to link group. Please try again.

A 403 Forbidden is returned if the user information cannot be fetched from Jira because of insufficient permissions.

To resolve this issue, ensure you meet certain Jira user requirements.