Skip to content

GitLab Integration

The GitLab integration connects your GitLab groups and projects to SetGet. Issues, merge requests, comments, labels, and states sync bidirectionally, keeping your engineering workflow in GitLab aligned with project management in SetGet.

Capabilities

FeatureDescription
Bidirectional issue syncIssues created in GitLab appear as work items in SetGet and vice versa
Merge request linkingReference a SetGet identifier in an MR to link them
Comment syncComments on GitLab issues propagate to SetGet work items
Label syncLabels stay consistent across both platforms
State mappingMap GitLab issue states to SetGet workflow states

Prerequisites

  • A GitLab account with at least Maintainer access to the projects you want to connect.
  • Admin or Owner role in your SetGet workspace.
  • The GitLab projects must not be archived.

Setup steps

Step 1 -- Authorize GitLab access

  1. In SetGet, navigate to Settings > Integrations.
  2. Find the GitLab card and click Connect.
  3. SetGet redirects you to GitLab's OAuth authorization page.
  4. Review the requested permissions and click Authorize.
  5. You are redirected back to SetGet. The GitLab card shows a green "Connected" badge.

TIP

For self-managed GitLab instances, you may need to configure the GitLab instance URL in the integration settings before authorizing. Enter your GitLab instance URL (e.g., https://gitlab.yourcompany.com) when prompted.

  1. Open the SetGet project you want to link.
  2. Go to Project Settings > Integrations > GitLab.
  3. Click Link Repository.
  4. Select a GitLab group, then select the specific project/repository.
  5. Click Save.

You can link multiple GitLab projects to the same SetGet project.

Step 3 -- Configure state mapping

GitLab issues have two states: opened and closed. Map these to your SetGet workflow states.

GitLab stateDefault SetGet stateChangeable
openedBacklogYes
closedDoneYes

To customize:

  1. In the repository link settings, expand State Mapping.
  2. For each GitLab state, select the desired SetGet state.
  3. Click Save Mapping.

Step 4 -- Configure label sync

Label sync modes:

ModeBehavior
Bidirectional (default)Labels sync in both directions
GitLab to SetGet onlyLabels imported from GitLab; SetGet changes not pushed back
SetGet to GitLab onlyLabels pushed to GitLab; GitLab changes not pulled
DisabledNo label sync

Configure the mode in the repository link settings under Label Sync.

Step 5 -- Enable comment sync

Comment sync is enabled by default. Toggle it off in the repository link settings if you prefer to keep conversations separate.

Bidirectional issue sync

Sync flow

When a new issue is created in a linked GitLab project:

  1. GitLab sends a webhook event to SetGet.
  2. SetGet creates a work item in the linked project.
  3. Title, description, labels, and assignee are populated from the GitLab issue.
  4. The work item state is determined by the state mapping.

When a new work item is created in SetGet (with GitLab sync active):

  1. SetGet creates a corresponding issue in the linked GitLab project.
  2. Title, description, and labels are populated from the work item.
  3. A bidirectional link is stored.

Synced fields

FieldGitLab to SetGetSetGet to GitLab
TitleYesYes
DescriptionYesYes
State (opened/closed)Yes (via mapping)Yes (via mapping)
LabelsYes (if enabled)Yes (if enabled)
AssigneesYes (matched by email)Yes (matched by email)
CommentsYes (if enabled)Yes (if enabled)
WeightNoNo
Due dateYesYes
MilestonesNoNo

Assignee matching

Assignees are matched by email address. If a GitLab user's email matches a SetGet workspace member's email, the assignment maps automatically. Unmatched assignees are noted in the work item activity log.

Merge request linking

Reference a SetGet work item identifier in an MR title, description, or branch name to create a link.

Supported formats

FormatExample
Project prefix + numberPROJ-123
Full URLhttps://app.setget.io/workspace/project/work-items/PROJ-123

When linked:

  • The work item's Links section shows the MR with its title, status, and a link to GitLab.
  • Merging the MR can optionally auto-transition the work item.

Auto-transition on merge

  1. Enable Auto-transition on merge in the repository link settings.
  2. Select the target state.
  3. Click Save.

Webhook events

The GitLab integration processes the following webhook events:

EventPurpose
Issue HookSync issue creation, updates, state changes
Note HookSync comments on issues
Merge Request HookLink MRs, detect merges
Tag Push HookOptional: track releases

SetGet manages the webhook configuration automatically.

Managing the integration

View sync status

Navigate to Project Settings > Integrations > GitLab to view the last sync timestamp, linked item count, and any recent errors.

Pause sync

Toggle Pause Sync in the repository link settings to temporarily halt event processing. Events during the pause are not retroactively synced.

Click Unlink next to the repository in the integration settings. This stops syncing but preserves existing data.

Disconnect GitLab

Go to Settings > Integrations > GitLab and click Disconnect to revoke the OAuth token and remove all repository links.

Troubleshooting

ProblemCauseSolution
No projects appear in the dropdownInsufficient GitLab permissionsEnsure you have Maintainer access
Issues not syncingWebhook misconfiguredDisconnect and reconnect
Assignees not mappingEmail mismatchAlign emails across platforms
Self-managed GitLab not connectingInstance URL not setEnter the GitLab URL before authorizing
MR links not detectedWrong formatUse PROJ-123 in the MR title or description

WARNING

If you use GitLab's IP allowlisting, ensure the SetGet server IP is permitted to receive webhook events.

Security

  • OAuth tokens are encrypted at rest and stored server-side only.
  • Webhook payloads are verified using GitLab's secret token mechanism.
  • Minimum required scopes: api, read_user.
  • Revoke access from GitLab at User Settings > Applications > Authorized Applications.