Overview

The GitLab integration monitors your projects, branch protection rules, group membership, and security configurations. LowerPlane uses read-only API access and does not access source code contents.

Authentication

GitLab uses OAuth 2.0 for authentication. When you connect, you’ll be redirected to GitLab to authorize LowerPlane.

Required Permissions (OAuth Scopes)

ScopeWhat It GrantsWhy LowerPlane Needs It
read_apiRead access to the APIRead project metadata, branch protection rules, merge request settings, group members, and pipeline configuration
read_userRead user profileIdentify the connecting user and read member profiles for access reviews
The read_repository scope is intentionally excluded. LowerPlane does not access code contents, commits, or file trees. The read_api scope provides all the metadata needed for compliance checks.

What LowerPlane Collects

Project Metadata

Name, visibility, default branch, CI config path, open merge request count, member count

Branch Protection

Push restrictions, required merge request approvals, force push settings

Group Members

Member list with MFA/2FA status for access reviews

Vulnerability Scanning

SAST pipeline configuration status and vulnerability report presence

Security Tests

LowerPlane runs 9 automated tests against your GitLab instance:
TestSeverityApplies To
Code repo should be classifiedCriticalEach project
GitLab group level MFA should be enforcedCriticalEach group
GitLab user should have MFA enabledCriticalEach member
GitLab vulnerability scan should be enabledMediumEach project
Code changes should be reviewed by peers before mergingHighEach project
Merging of code changes should require passing status-checksHighEach project
Branch Protection rules should be enforcedHighEach project
Stale merge request approvals should be reset on new commitsMediumEach project
GitLab access should be removed for offboarded userCriticalEach member
The MFA tests require the integration token to belong to a group owner. Maintainer-level tokens cannot read other users’ 2FA state and will report all users as MFA-disabled.

Connecting

1

Navigate to Integrations

Go to Settings > Integrations and find GitLab in the Developer Tools category.
2

Click Connect

Click the Connect button. You’ll be redirected to GitLab’s authorization page.
3

Authorize

Review the requested permissions and click Authorize. Use an account with group owner access.
4

Initial Sync

LowerPlane syncs your projects, members, and branch protection settings. This typically takes 1-2 minutes.

Self-Hosted GitLab

For self-hosted GitLab instances, provide your instance URL (e.g., https://gitlab.yourcompany.com) during setup. LowerPlane will use your instance’s OAuth endpoints instead of gitlab.com.

Merge Request Reviews & Pipeline Status

LowerPlane collects approver names on merge requests and pipeline status results to verify that peer review and CI/CD gates are enforced before merging. This data is used by the “Code changes should be reviewed by peers” and “Merging should require passing status-checks” tests.

Data Access

Data TypeAccess
Project metadataRead
Branch protection rulesRead
Merge request reviews & approversRead
Pipeline status checksRead
Group membersRead
Member MFA statusRead (requires owner PAT)
Source code / file contentsNo access
Commit history / diffsNo access
Issues / discussionsNo access