Documentation Index
Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
The GitLab integration connects Rootly with GitLab through OAuth so your team can surface engineering context during incidents and automate issue tracking across both platforms. With the GitLab integration, you can:- Fetch recent commits from GitLab repositories through incident workflows
- Automatically track push events, merged merge requests, and deployment events as Rootly pulses
- Create and update GitLab issues directly from incident and action item workflows
- Enrich GitLab merge request links pasted into incident Slack channels with live status cards
- Connect to self-hosted GitLab instances in addition to gitlab.com
Before You Begin
Before setting up the GitLab integration, make sure you have:- A Rootly account with permission to manage integrations
- A GitLab account with admin access to create OAuth applications
- The GitLab instance URL if you are using a self-hosted GitLab instance (must use HTTPS)
Installation
Open the integrations page in Rootly

Create an OAuth application in GitLab

| Field | Value |
|---|---|
| Redirect URI | https://rootly.com/auth/gitlab/callback |
| Scopes | api or read_api |
api scope to let Rootly automatically create webhooks on your repositories. If you prefer to manage webhooks yourself, use read_api instead.
Paste your credentials into Rootly

https://). The default is https://gitlab.com.Select repositories to track
Pulse Events
Rootly automatically ingests the following GitLab webhook events and records them as pulses on the incident timeline and service activity feed.Push Events
When a commit is pushed to any tracked repository, Rootly creates a pulse with:- Summary:
[GitLab][Push] Commit: {commit message} - Labels: repository name, action (push)
- Refs: commit SHA, short SHA, branch ref
Merge Request Events
When a merge request is merged, Rootly creates a pulse and posts an enriched card to any linked incident Slack channel with merge request details and status.- Summary:
[GitLab][MR] Merged: {source branch} - Labels: repository name, action (pr_merged)
- Refs: merge commit SHA, base branch
Deployment Events
When a deployment event is received, Rootly creates a pulse tied to the associated environment.- Summary:
[GitLab][Deploy] Commit: {title} | {status} - Labels: repository name, action (deploy)
- Refs: short commit SHA
Issue Events
GitLab issue events are also ingested and converted to Rootly alerts with severity, state, and a link back to the GitLab issue.Workflow Actions
GitLab workflow actions are available in both incident workflows and action item workflows.Create a GitLab Issue
Creates a new issue in a specified GitLab repository. Available in incident and action item workflows.| Field | Description | Required |
|---|---|---|
| Repository | The GitLab repository to create the issue in | Yes |
| Issue Type | Type of issue: issue, incident, test_case, or task | No |
| Title | Issue title — supports Liquid templating (e.g. {{ incident.title }}) | Yes |
| Description | Issue body — supports Liquid templating | No |
| Labels | Comma-separated labels to apply | No |
| Due Date | Due date — supports Liquid templating | No |
{{ incident.title }}, {{ incident.severity }}, and {{ incident.url }} in the title and description to automatically populate issues with live incident context.Update a GitLab Issue
Updates an existing GitLab issue. Commonly used to close or reopen issues when an incident changes state.| Field | Description | Required |
|---|---|---|
| Issue ID | ID of the GitLab issue to update — supports Liquid templating | Yes |
| Issue Type | Type of issue to update | No |
| Title | Updated title | No |
| Description | Updated body | No |
| Labels | Updated labels | No |
| Due Date | Updated due date | No |
| Completion | Whether to close or reopen the issue — can be set to auto-map from incident status | Yes |
Get GitLab Commits
Fetches recent commits from one or more repositories and posts them to a Slack channel. Useful for surfacing recent code changes during incident investigation.| Field | Description | Required |
|---|---|---|
| Services | Services to fetch commits for (uses the service’s linked repository) | No* |
| Repository Names | Specific GitLab repository names to query | No* |
| Branch | Branch to fetch commits from | Yes |
| Past Duration | How far back to look (e.g. 2 hours, 1 day) | Yes |
| Post to Slack Channels | Slack channels to post results to | No |
Default Workflows
When GitLab is connected, Rootly can create the following default workflows to get you started:- Create a GitLab issue when an incident is declared — automatically opens a GitLab issue tied to the incident
- Update the GitLab issue when the incident is resolved — closes the linked issue when the incident closes
- Create a GitLab issue for each action item — turns follow-up tasks into GitLab issues automatically
- Update the GitLab issue when an action item is completed — keeps GitLab in sync as action items are closed
Troubleshooting
Webhooks are not being created for my repositories
Webhooks are not being created for my repositories
api scope. The read_api scope does not allow Rootly to create webhooks on your behalf — you will need to create them manually if you use read_api.Pulses are not appearing for push or merge request events
Pulses are not appearing for push or merge request events
GitLab merge request links are not being enriched in Slack
GitLab merge request links are not being enriched in Slack
/merge_requests/). Personal or group access tokens are not supported — the integration must be connected via OAuth.Workflow actions fail with a repository not found error
Workflow actions fail with a repository not found error
The integration disconnected after the connecting user left the team
The integration disconnected after the connecting user left the team
Self-hosted GitLab instance is not connecting
Self-hosted GitLab instance is not connecting
https:// and does not have a trailing slash. Rootly does not support HTTP-only GitLab instances. Also confirm that your GitLab instance is reachable from the public internet, as Rootly needs to send webhook deliveries to it.