GitLab Setup
Connect SiftPulse to your GitLab namespace to get automated AI merge request reviews on every MR — the same review quality as GitHub, now for GitLab Cloud and self-hosted instances.
Connect Method
Choose the method that fits your setup:
Option A — OAuth (recommended for gitlab.com) Option B — Personal Access Token (self-hosted or restricted)Option A — OAuth App (gitlab.com)
Fill in:
- Name: SiftPulse
- Redirect URI:
- Confidential: Yes (check the box)
| Scope | Why SiftPulse needs it |
|---|---|
| api | Post and edit MR notes; fetch diff; manage webhooks |
| read_user | Read user email for dashboard login |
| read_repository | Read repository contents and diffs |
| Environment variable | Value |
|---|---|
| GITLAB_CLIENT_ID | Application ID from the OAuth app |
| GITLAB_CLIENT_SECRET | Secret from the OAuth app |
| GITLAB_WEBHOOK_SECRET | Any long random string — used to verify webhook payloads |
| GITLAB_ENABLED | true — feature flag that activates the integration |
Option B — Personal Access Token (self-hosted / PAT fallback)
Required scopes:
api— post and edit MR notes, register webhooksread_user— fetch your email for the dashboardread_repository— read MR diffs
glpat-.
Step — Register Webhooks on your Projects
SiftPulse watches for Merge Request Hook events.
Add a webhook to each GitLab project you want reviewed:
- URL:
- Secret token: value of
GITLAB_WEBHOOK_SECRET - Trigger: check
Merge request events - SSL verification: Enabled
How it works
- When an MR is opened or reopened, SiftPulse fetches the diff via the GitLab API and runs the same AI review agent used for GitHub and Bitbucket.
- The review is posted as an MR note within ~60 seconds.
- When the MR is updated (new commits pushed), SiftPulse edits the existing note in place — no duplicate comments.
- Review events appear in your SiftPulse dashboard with provider: gitlab in the activity feed.
Troubleshooting
OAuth flow returns an error — check that GITLAB_CLIENT_ID, GITLAB_CLIENT_SECRET, and GITLAB_ENABLED=true are set. Ensure the redirect URI exactly matches https://siftpulse.polsia.app/integrations/gitlab/callback.
No review note appears — verify the webhook is registered on the project with the correct URL and triggers. Check that GITLAB_WEBHOOK_SECRET matches the token you entered in GitLab. Review Render logs for [gitlab] prefixed lines.
PAT auth fails — confirm the token has api scope and hasn't expired. GitLab PATs show their expiry in Edit profile → Access Tokens.
Self-hosted GitLab — use the PAT method and enter your instance URL (e.g. https://gitlab.example.com). Make sure your instance is reachable from SiftPulse's Render deployment (public HTTPS endpoint required).