OnboardingIntegrations

GitLab

LevelFour connects to GitLab over OAuth. You name the projects it should read, authorize once, and LevelFour registers a webhook on each one. It works with GitLab SaaS and with a self-managed instance.

Prerequisites

  • Maintainer or Owner on every project you connect. LevelFour registers a webhook, and lower roles cannot.
  • A GitLab tier that allows project webhooks. LevelFour reports the ones that do not, project by project.
  • The full path of each project, in the form group/subgroup/project.

Connect

Open Settings, then Integrations

In the dashboard sidebar, click Settings, then Integrations, then the GitLab tile.

If the tile reads Contact sales, GitLab is not enabled for your organization yet. Click it to ask.

List your projects

Add the full path of each project where LevelFour should look for Infrastructure-as-Code. Add as many as you want. One authorization covers all of them.

Leave the instance URL as https://gitlab.com for GitLab SaaS. For a self-managed instance, enter its URL, such as https://gitlab.example.com.

Authorize in GitLab

Click Connect GitLab. GitLab opens in a new tab and asks you to authorize LevelFour. Approve it, then return to the dashboard tab.

The status pill moves through Waiting for authorization and Verifying connection. Authorization finishes in under a minute. If you closed the GitLab tab before approving, click Cancel and start again.

Read the connection results

The pill lands on Connected, and the results panel says how many of your projects connected.

A project that did not connect says why. The three you are most likely to see:

ResultWhat to do
LevelFour needs maintainer or owner accessRaise your role on that project in GitLab, then connect it again
The tier does not allow the webhookUpgrade the tier, or connect a different project
We could not find this projectCheck the path, including every subgroup

Removing access

Open the connection under Settings > Integrations > GitLab and click Disconnect. LevelFour stops analyzing merge requests for that path and deletes its webhook from GitLab. If GitLab refuses the deletion, the dashboard says so, and you remove the webhook yourself under the project's Settings > Webhooks.

You can reconnect a project at any time.

Troubleshooting

SymptomWhat to do
The pill sits on Waiting for authorizationThe GitLab tab was closed or blocked. Click Reopen GitLab authorization
The pill reads ExpiredThe request timed out. Start a new one for a fresh link
The pill reads FailedSomeone closed the tab before authorizing, or permissions changed inside GitLab. Click Try again
A self-managed instance never answersCheck that the URL is https and that the instance is reachable from the public internet

Next