> ## Documentation Index
> Fetch the complete documentation index at: https://docs.borghq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab Integration

> Push findings to GitLab Issues and grant Mjolnir code access

Connect Odin to GitLab to push security findings into your GitLab issue tracker and, optionally, to grant Mjolnir read access to your projects for whitebox pentesting.

## Connecting

<Steps>
  <Step title="Open Integrations">
    Go to **Management > Integrations** in the sidebar.
  </Step>

  <Step title="Connect GitLab">
    Click **Connect** next to GitLab and authorise the Odin app via GitLab's OAuth flow.
  </Step>

  <Step title="Select your project">
    Choose the GitLab project where issues should be created.
  </Step>
</Steps>

## Pushing a finding

On any finding, click **Push to GitLab**. Odin creates a GitLab issue with:

* Finding title and severity as the issue title
* Description, reproduction steps, and suggested fix in the issue body
* A link back to the finding in Odin

<Tip>
  You can push multiple findings at once using the bulk action toolbar on the Findings page.
</Tip>

## Settings

The GitLab integration has a few toggles on the GitLab card in **Management > Integrations**.

* **Issue tracking**: when on, vulnerability findings are tracked as GitLab issues. When off, GitLab is used only for project access (e.g. for Mjolnir whitebox pentesting).
* **Auto-create tickets**: when on, GitLab issues are created automatically as new findings are reported. When off, you can still create issues manually from each finding.
* **Minimum severity**: only findings at or above this severity trigger automatic issue creation. Defaults to Medium.

<Tip>
  Set the minimum severity to **High** or **Critical** if you want to keep your GitLab issues focused on the most urgent findings and handle lower-severity issues manually.
</Tip>

## Customising synced issues

With a target project selected, the **Issue customization** panel on the GitLab card shapes the issues Odin opens. GitLab supports the shared [default assignee and labels](/platform/integrations/overview#customising-synced-issues): pick a project member to assign every synced issue to, and choose labels to add on top of the ones Odin already applies. Both lists are read from the target project.

## Status sync

A finding's status and its linked GitLab issue's `odin:*` label stay in sync, in both directions, along with its open/closed state for some statuses.

| Odin status      | GitLab issue                                 |
| ---------------- | -------------------------------------------- |
| Reported         | Reopened, labelled `odin:reported`           |
| Mitigating       | Labelled `odin:mitigating` (state unchanged) |
| Open for Retest  | Labelled `odin:retest` (state unchanged)     |
| Needs Revision   | Reopened, labelled `odin:needs-revision`     |
| Fixed & Retested | Closed, labelled `odin:fixed`                |
| Acknowledged     | Closed, labelled `odin:acknowledged`         |

| GitLab issue event                                           | Odin status                             |
| ------------------------------------------------------------ | --------------------------------------- |
| Labelled `odin:reported` / `odin:mitigating` / `odin:retest` | Reported / Mitigating / Open for Retest |
| Closed                                                       | Open for Retest                         |
| Reopened                                                     | Mitigating                              |

A newly added `odin:*` label always takes priority over a close/reopen on the same event. Closing or reopening an issue that already carries `odin:fixed`, `odin:acknowledged`, or `odin:needs-revision` is ignored, so it can't downgrade a Borg-set or Borg-staff-only status.

## Notes

* Issues are created in the project you selected during setup
* You can switch to a different project at any time from the Integrations page
* Multiple issue trackers can be active at the same time. When you connect a second one (for example GitLab and Linear together), Odin keeps new findings and status changes in sync across all active trackers.
