Overview
Self-Hosted GitLab Integration
Integrate self-hosted GitLab with Sprinto to automate change management monitoring and validate repository security controls using secure OAuth credentials.
Self-hosted GitLab enables organisations to manage source code, CI/CD pipelines, and collaboration within privately hosted infrastructure.
The Sprinto self-hosted GitLab integration allows you to:
- Monitor production-classified repositories
- Enforce peer review before merges
- Validate status checks before merging
- Enforce branch protection rules
- Verify group-level MFA
- Detect and remove offboarded user access
Self-hosted GitLab supports Change Management only.
Sprinto uses read-only access and does not read or store repository code.
Sprinto checks for Gitlab integration
Following are the available Sprinto checks for GitLab integration:
| Sprinto check | Description | Reference procedure |
|---|---|---|
| Gitlab group-level MFA should be enforced | Enable group-level MFA enforcement on your Gitlab account. | How to fix |
| Peer review should be enforced for code changes | Peer review should be configured on each GitLab repository classified as “Production” on Sprinto. | How to fix |
| Merging of code changes should require passing status-checks | All change merge request should pass the status check prior. | How to fix |
| Branch Protection rules should be enforced for admins | Configure branch protection rules for admins on your GitLab account. | How to fix |
| Code changes should be reviewed by peers before merging | Code changes must be reviewed by a peer reviewer before merging the changes to the main branch. | How to fix |
| GitLab access should be removed for offboarded user | GitLab access should be revoked for any off boarding staff member. | How to fix |
How It Works
The integration uses an OAuth application created in your self-hosted GitLab instance.
- You create a GitLab OAuth application.
- You configure redirect URLs and scopes.
- You provide Sprinto with:
- Hosted service URL
- Application ID
- Client Secret
- Sprinto securely connects and begins monitoring repository configuration metadata.
Sprinto evaluates configuration settings only. It does not modify repositories.
Before You Begin
Ensure that:
- You have a paid self-hosted GitLab account.
- You have Admin access to the GitLab instance.
- Sprinto’s IP address is allowlisted if your instance is not publicly accessible.
- You can create OAuth applications in GitLab.
Permissions Required (OAuth Scopes)
When creating the OAuth application in GitLab, select:
read_apiread_repositoryread_userprofile
These permissions allow Sprinto to:
- Read groups and projects
- Evaluate branch protection rules
- Validate peer review enforcement
- Retrieve user access metadata
Sprinto does not request write access.
Dashboard Actions
Step 1: Create an OAuth Application in Self-Hosted GitLab
- Log in to your self-hosted GitLab instance.
- Click Menu.
- Select Admin.
- Go to Applications.
- Click New application.
Enter the following details:
Name
Sprinto Audit
Redirect URL (Based on Region)
Enter one URL per line.
Select the following options:
- Trusted
- Confidential
- Expire access tokens
Select these scopes:
read_userread_apiread_repositoryprofile
Click Save.
After saving:
- Copy the Application ID.
- Copy the Secret.
- Store them securely.
Step 2: Connect Self-Hosted GitLab in Sprinto
- Log in to Sprinto.
- Navigate to Settings > Integrations.
- In the All tab, search for GitLab.
- Click Connect next to GitLab (Version Control | Access Review).
Review Permissions
In the connection drawer:
- Review permissions required.
- Review data used by Sprinto.
- Click Next.
Step 3: Select Self-Hosted GitLab
On the Setup GitLab Integration screen:
You will see:
- Connection type: OAuth
- Prerequisites
Select:
Are you using self-hosted GitLab Service?
When selected, the following fields appear:
- Hosted service URL
- Application ID
- Client Secret
If you deselect this checkbox, these fields disappear and the integration defaults to GitLab Cloud.
Enter the following:
Hosted Service URL
Enter your domain without http:// or https://.
Example:
If your hosted URL is:
https://gitlab.company.com
Enter:
gitlab.company.com
Application ID
Enter the ID copied from GitLab.
Client Secret
Enter the secret copied from GitLab.
Review your details and click Connect.
You are now successfully integrated with self-hosted GitLab.
IP Allowlist (If Required)
If your hosted GitLab instance is restricted, allowlist the appropriate Sprinto IP:
| Domain | Region | IP Address |
|---|---|---|
| app.sprinto.com | USA | 54.193.221.51 |
| in.sprinto.com | Asia Pacific | 3.108.123.60 |
| eu.sprinto.com | Europe | 18.184.125.204 |
| au.sprinto.com | Australia | 54.252.98.100 |
Post-Connection Configuration
After connecting, configure GitLab as a Change Management system.
Configure GitLab for Change Management
- Navigate to Data Library > Change Management.
- Click Add system.
- Click Add next to GitLab.
- Select repositories to monitor.
- Save your changes.
Sprinto will monitor:
- Peer review enforcement
- Merge request status checks
- Branch protection rules
- MFA enforcement
- Offboarded user access removal
Sync Timeline
After configuration:
- Initial sync begins automatically.
- Allow 15–20 minutes for initial data sync.
- Full evaluation may take up to 24 hours.
To manually refresh:
- Navigate to Data Library > Change Management > GitLab.
- Click Sync.
Sprinto Checks Supported
This integration validates:
- GitLab group-level MFA enforcement
- Peer review before merge
- Mandatory passing status checks
- Branch protection enforcement for admins
- Offboarded user access removal
Troubleshooting
Hosted service URL not accepted
- Remove
http://orhttps://. - Ensure the domain is reachable from Sprinto.
- Verify firewall rules.
Connection fails after clicking Connect
- Confirm Application ID and Client Secret are correct.
- Verify redirect URL exactly matches your Sprinto region.
- Confirm scopes are correctly selected.
No repositories appear
- Ensure repositories belong to accessible groups.
- Confirm the OAuth application has required scopes.
- Trigger a manual sync.
Integration connected but checks not running
- Ensure GitLab is added under Change Management.
- Allow up to 24 hours for evaluation.
- Confirm repositories are properly classified in Sprinto.
Contact Sprinto support if you have queries related to the integration or need any assistance.