Skip to content

GitLab

Manage and react to changes in your GitLab repositories

When connecting using App OAuth:

  • Leave Client ID and Secret empty to start the setup wizard.

When connecting using Personal Access Token:

  • Go to Preferences → Personal Access Token → Add New token
  • Use Scopes: api, read_user, read_api, write_repository, read_repository
  • Copy the token and paste it into the Access Token configuration field, then click Save.

The On Issue trigger starts a workflow execution when issue events occur in a GitLab project.

  • Notify Slack when an issue is created or assigned for triage
  • Create a Jira issue when a GitLab issue is created for traceability
  • Update external dashboards or close linked tickets when an issue is closed
  • Project (required): GitLab project to monitor
  • Actions (required): Select which issue actions to listen for (opened, closed, reopened, etc.). Default: opened.
  • Labels (optional): Only trigger for issues with specific labels
  • Default channel: Emits issue payload including issue IID, title, state, labels, assignees, author, and action type

This trigger automatically sets up a GitLab webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"assignees": [
{
"avatar_url": "https://www.gravatar.com/avatar/abc123",
"id": 1,
"name": "John Doe",
"username": "johndoe"
}
],
"event_type": "issue",
"labels": [
{
"color": "#dc3545",
"created_at": "2026-01-01T00:00:00Z",
"description": "Bug reports",
"group_id": null,
"id": 206,
"project_id": 15,
"template": false,
"title": "bug",
"type": "ProjectLabel",
"updated_at": "2026-01-01T00:00:00Z"
}
],
"object_attributes": {
"action": "open",
"created_at": "2026-02-05T14:00:00Z",
"description": "This is an example issue description for testing the webhook",
"id": 301,
"iid": 1,
"state": "opened",
"title": "Example Issue",
"updated_at": "2026-02-05T14:00:00Z",
"url": "https://gitlab.com/group/my-project/-/issues/1"
},
"object_kind": "issue",
"project": {
"avatar_url": null,
"default_branch": "main",
"description": "Example project",
"git_http_url": "https://gitlab.com/group/my-project.git",
"git_ssh_url": "git@gitlab.com:group/my-project.git",
"id": 15,
"name": "my-project",
"namespace": "group",
"path_with_namespace": "group/my-project",
"visibility_level": 20,
"web_url": "https://gitlab.com/group/my-project"
},
"repository": {
"description": "Example project",
"homepage": "https://gitlab.com/group/my-project",
"name": "my-project",
"url": "git@gitlab.com:group/my-project.git"
},
"user": {
"avatar_url": "https://www.gravatar.com/avatar/abc123",
"email": "johndoe@example.com",
"id": 1,
"name": "John Doe",
"username": "johndoe"
}
},
"timestamp": "2026-02-05T14:00:00.000000000Z",
"type": "gitlab.issue"
}

The On Merge Request trigger starts a workflow execution when merge request events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Actions (required): Select which merge request actions to listen for (open, close, merge, etc.). Default: open.
  • Default channel: Emits merge request payload data with action, project, and object attributes
{
"data": {
"assignees": [
{
"avatar_url": "https://www.gravatar.com/avatar/ab12cd34?s=80\u0026d=identicon",
"email": "jrivera@example.com",
"id": 4,
"name": "Jamie Rivera",
"username": "jrivera"
}
],
"changes": {
"title": {
"current": "Add merge request trigger",
"previous": "Add trigger"
}
},
"event_type": "merge_request",
"labels": [
{
"id": 101,
"title": "backend"
}
],
"object_attributes": {
"action": "open",
"description": "Adds support for additional GitLab webhook trigger types.",
"id": 93,
"iid": 12,
"state": "opened",
"title": "Add merge request trigger"
},
"object_kind": "merge_request",
"project": {
"avatar_url": null,
"ci_config_path": null,
"default_branch": "main",
"description": "Project used to demonstrate merge request webhook payloads.",
"git_http_url": "https://gitlab.example.com/group/example.git",
"git_ssh_url": "ssh://git@gitlab.example.com:group/example.git",
"id": 1,
"name": "Example Project",
"namespace": "group",
"path_with_namespace": "group/example",
"visibility_level": 20,
"web_url": "https://gitlab.example.com/group/example"
},
"repository": {
"description": "Project used to demonstrate merge request webhook payloads.",
"git_http_url": "https://gitlab.example.com/group/example.git",
"git_ssh_url": "ssh://git@gitlab.example.com:group/example.git",
"homepage": "https://gitlab.example.com/group/example",
"name": "Example Project",
"url": "ssh://git@gitlab.example.com/group/example.git",
"visibility_level": 20
},
"reviewers": [
{
"avatar_url": "https://www.gravatar.com/avatar/ef56gh78?s=80\u0026d=identicon",
"email": "mlee@example.com",
"id": 6,
"name": "Morgan Lee",
"state": "unreviewed",
"username": "mlee"
}
],
"user": {
"avatar_url": "https://www.gravatar.com/avatar/1a29da0ccd099482194440fac762f5ccb4ec53227761d1859979367644a889a5?s=80\u0026d=identicon",
"email": "agarcia@example.com",
"id": 1,
"name": "Alex Garcia",
"username": "agarcia"
}
},
"timestamp": "2026-02-12T20:40:00.000000000Z",
"type": "gitlab.mergeRequest"
}

The On Milestone trigger starts a workflow execution when milestone events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Actions (required): Select which milestone actions to listen for. Default: create.
  • Default channel: Emits milestone payload data with action, project, and object attributes
{
"data": {
"action": "create",
"event_type": "milestone",
"object_attributes": {
"created_at": "2025-06-16 14:10:57 UTC",
"description": "First stable release",
"due_date": "2025-06-30",
"group_id": null,
"id": 61,
"iid": 10,
"project_id": 1,
"start_date": "2025-06-16",
"state": "active",
"title": "v1.0",
"updated_at": "2025-06-16 14:10:57 UTC"
},
"object_kind": "milestone",
"project": {
"avatar_url": null,
"ci_config_path": null,
"default_branch": "master",
"description": "Aut reprehenderit ut est.",
"git_http_url": "http://example.com/gitlabhq/gitlab-test.git",
"git_ssh_url": "git@example.com:gitlabhq/gitlab-test.git",
"homepage": "http://example.com/gitlabhq/gitlab-test",
"http_url": "http://example.com/gitlabhq/gitlab-test.git",
"id": 1,
"name": "Gitlab Test",
"namespace": "GitlabHQ",
"path_with_namespace": "gitlabhq/gitlab-test",
"ssh_url": "git@example.com:gitlabhq/gitlab-test.git",
"url": "http://example.com/gitlabhq/gitlab-test.git",
"visibility_level": 20,
"web_url": "http://example.com/gitlabhq/gitlab-test"
}
},
"timestamp": "2026-02-12T20:40:00.000000000Z",
"type": "gitlab.milestone"
}

The On Pipeline trigger starts a workflow execution when pipeline events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Statuses (required): Select which pipeline statuses to listen for. Default: success, failed, canceled.
  • Default channel: Emits pipeline webhook payload data including status, ref, SHA, and project information

This trigger automatically sets up a GitLab webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"merge_request": {
"iid": 12,
"title": "Improve CI pipeline"
},
"object_attributes": {
"created_at": "2026-02-10 12:00:00 UTC",
"duration": 190,
"finished_at": "2026-02-10 12:03:10 UTC",
"id": 12345,
"iid": 321,
"ref": "main",
"sha": "f4f6c5a0d2e5ad34be4c17c3f166f4d2ff8b0a55",
"source": "push",
"status": "success",
"updated_at": "2026-02-10 12:03:10 UTC",
"url": "https://gitlab.com/group/example-project/-/pipelines/12345"
},
"object_kind": "pipeline",
"project": {
"id": 987,
"name": "example-project",
"path_with_namespace": "group/example-project",
"web_url": "https://gitlab.com/group/example-project"
},
"user": {
"id": 22,
"name": "Jamie Rivera",
"username": "jrivera"
}
},
"timestamp": "2026-02-13T18:00:00.000000000Z",
"type": "gitlab.pipeline"
}

The On Release trigger starts a workflow execution when release events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Actions (required): Select which release actions to listen for. Default: create.
  • Default channel: Emits release payload data with action and release metadata
{
"data": {
"action": "create",
"assets": {
"count": 2,
"links": [
{
"id": 1,
"link_type": "other",
"name": "Changelog",
"url": "https://example.net/changelog"
}
],
"sources": [
{
"format": "zip",
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.zip"
},
{
"format": "tar.gz",
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.gz"
}
]
},
"commit": {
"author": {
"email": "user@example.com",
"name": "Example User"
},
"id": "ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
"message": "Release v1.1",
"timestamp": "2020-10-31T14:58:32+11:00",
"title": "Release v1.1",
"url": "https://example.com/gitlab-org/release-webhook-example/-/commit/ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8"
},
"created_at": "2020-11-02 12:55:12 UTC",
"description": "v1.1 has been released",
"id": 1,
"name": "v1.1",
"object_kind": "release",
"project": {
"avatar_url": null,
"ci_config_path": null,
"default_branch": "master",
"description": "",
"git_http_url": "https://example.com/gitlab-org/release-webhook-example.git",
"git_ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
"id": 1,
"name": "release-webhook-example",
"namespace": "Gitlab",
"path_with_namespace": "gitlab-org/release-webhook-example",
"visibility_level": 0,
"web_url": "https://example.com/gitlab-org/release-webhook-example"
},
"released_at": "2020-11-02 12:55:12 UTC",
"tag": "v1.1",
"url": "https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1"
},
"timestamp": "2026-02-12T20:40:00.000000000Z",
"type": "gitlab.release"
}

The On Tag trigger starts a workflow execution when tag push events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Tags (required): Configure tag filters using predicates. You can match full refs (refs/tags/v1.0.0) or tag names (v1.0.0).
  • Default channel: Emits tag push payload data including ref, before/after SHA, and project information
{
"data": {
"after": "82b3d5ae55f7080f1e6022629cdb57bfae7cccc7",
"before": "0000000000000000000000000000000000000000",
"checkout_sha": "82b3d5ae55f7080f1e6022629cdb57bfae7cccc7",
"commits": [],
"event_name": "tag_push",
"message": "Tag message",
"object_kind": "tag_push",
"project": {
"avatar_url": null,
"ci_config_path": null,
"default_branch": "master",
"description": "",
"git_http_url": "http://example.com/jsmith/example.git",
"git_ssh_url": "git@example.com:jsmith/example.git",
"id": 1,
"name": "Example",
"namespace": "Jsmith",
"path_with_namespace": "jsmith/example",
"visibility_level": 0,
"web_url": "http://example.com/jsmith/example"
},
"push_options": {},
"ref": "refs/tags/v1.0.0",
"ref_protected": true,
"repository": {
"description": "",
"git_http_url": "http://example.com/jsmith/example.git",
"git_ssh_url": "git@example.com:jsmith/example.git",
"homepage": "http://example.com/jsmith/example",
"name": "Example",
"url": "ssh://git@example.com/jsmith/example.git",
"visibility_level": 0
},
"total_commits_count": 0,
"user_email": "john@example.com",
"user_id": 1,
"user_name": "John Smith",
"user_username": "jsmith"
},
"timestamp": "2026-02-12T20:40:00.000000000Z",
"type": "gitlab.tag"
}

The On Vulnerability trigger starts a workflow execution when vulnerability events occur in a GitLab project.

  • Project (required): GitLab project to monitor
  • Default channel: Emits vulnerability payload data including severity, state, location, and linked issues
{
"data": {
"object_attributes": {
"auto_resolved": false,
"confidence": "unknown",
"confidence_overridden": false,
"confirmed_at": "2025-01-08T00:46:14.413Z",
"confirmed_by_id": 1,
"created_at": "2025-01-08T00:46:14.413Z",
"cvss": [
{
"vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"vendor": "NVD"
}
],
"dismissed_at": null,
"dismissed_by_id": null,
"identifiers": [
{
"external_id": "29dce398-220a-4315-8c84-16cd8b6d9b05",
"external_type": "gemnasium",
"name": "Gemnasium-29dce398-220a-4315-8c84-16cd8b6d9b05",
"url": "https://gitlab.com/gitlab-org/security-products/gemnasium-db/-/blob/master/gem/rexml/CVE-2024-41123.yml"
},
{
"external_id": "CVE-2024-41123",
"external_type": "cve",
"name": "CVE-2024-41123",
"url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-41123"
}
],
"issues": [
{
"created_at": "2025-01-08T00:46:14.429Z",
"title": "REXML ReDoS vulnerability",
"updated_at": "2025-01-08T00:46:14.429Z",
"url": "https://example.com/flightjs/Flight/-/issues/1"
}
],
"location": {
"dependency": {
"package": {
"name": "rexml"
},
"version": "3.3.1"
},
"file": "Gemfile.lock"
},
"project_id": 1,
"report_type": "dependency_scanning",
"resolved_at": null,
"resolved_by_id": null,
"resolved_on_default_branch": false,
"severity": "high",
"severity_overridden": false,
"state": "confirmed",
"title": "REXML DoS vulnerability",
"updated_at": "2025-01-08T00:46:14.413Z",
"url": "https://example.com/flightjs/Flight/-/security/vulnerabilities/1"
},
"object_kind": "vulnerability"
},
"timestamp": "2026-02-12T20:40:00.000000000Z",
"type": "gitlab.vulnerability"
}

The Create Issue component creates a new issue in a specified GitLab project.

  • Automated Bug Reporting: Create issues when a monitoring system detects an error
  • Task Management: Automatically create tasks for new employee onboarding
  • Feedback Loop: Turn customer feedback into actionable issues
  • Project (required): The GitLab project where the issue will be created
  • Title (required): The title of the new issue
  • Description (optional): The description/body of the issue
  • Assignees (optional): Users to assign the issue to
  • Labels (optional): Labels to apply to the issue (e.g., bug, enhancement)
  • Milestone (optional): Milestone to associate with the issue
  • Due Date (optional): Date when the issue is due

The component outputs the created issue object, including:

  • id: The internal ID of the issue
  • iid: The project-relative ID of the issue
  • web_url: The URL to view the issue in GitLab
  • state: The current state of the issue (opened/closed)
{
"data": {
"_links": {
"award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/1/award_emoji",
"notes": "http://gitlab.example.com/api/v4/projects/1/issues/1/notes",
"project": "http://gitlab.example.com/api/v4/projects/1",
"self": "http://gitlab.example.com/api/v4/projects/1/issues/1"
},
"assignee": {
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
"id": 1,
"name": "Administrator",
"state": "active",
"username": "root",
"web_url": "http://gitlab.example.com/root"
},
"assignees": [
{
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
"id": 1,
"name": "Administrator",
"state": "active",
"username": "root",
"web_url": "http://gitlab.example.com/root"
}
],
"author": {
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
"id": 1,
"name": "Administrator",
"state": "active",
"username": "root",
"web_url": "http://gitlab.example.com/root"
},
"blocking_issues_count": 0,
"closed_at": null,
"closed_by": null,
"confidential": false,
"created_at": "2023-01-01T10:00:00.000Z",
"description": "This is an example issue created via SuperPlane",
"discussion_locked": null,
"downvotes": 0,
"due_date": null,
"has_tasks": false,
"id": 1,
"iid": 1,
"issue_type": "issue",
"labels": [
"bug",
"urgent"
],
"merge_requests_count": 0,
"milestone": null,
"project_id": 3,
"references": {
"full": "gitlab-org/gitlab-test#1",
"relative": "#1",
"short": "#1"
},
"state": "opened",
"task_completion_status": {
"completed_count": 0,
"count": 0
},
"time_stats": {
"human_time_estimate": null,
"human_total_time_spent": null,
"time_estimate": 0,
"total_time_spent": 0
},
"title": "Example Issue",
"type": "ISSUE",
"updated_at": "2023-01-01T10:00:00.000Z",
"upvotes": 0,
"user_notes_count": 0,
"web_url": "http://gitlab.example.com/gitlab-org/gitlab-test/issues/1",
"weight": null
},
"timestamp": "2023-01-01T10:00:00.000Z",
"type": "gitlab.issue"
}

The Get Latest Pipeline component retrieves the newest pipeline for a GitLab project.

  • Project (required): The GitLab project to query
  • Ref (optional): Branch or tag to scope the latest pipeline search
{
"data": {
"before_sha": "f4f6c5a0d2e5ad34be4c17c3f166f4d2ff8b0a55",
"committed_at": "2026-02-13T19:20:45.000Z",
"coverage": "87.1",
"created_at": "2026-02-13T19:21:00.000Z",
"detailed_status": {
"group": "success",
"has_details": true,
"icon": "status_success",
"label": "passed",
"text": "passed",
"tooltip": "passed"
},
"duration": 268,
"finished_at": "2026-02-13T19:25:43.000Z",
"id": 457882200,
"iid": 9822,
"project_id": 123456,
"queued_duration": 12.6,
"ref": "main",
"sha": "afce89e8d28741d4f65ec71ad0a4174a801122cd",
"source": "merge_request_event",
"started_at": "2026-02-13T19:21:15.000Z",
"status": "success",
"tag": false,
"updated_at": "2026-02-13T19:25:43.000Z",
"user": {
"avatar_url": "https://www.gravatar.com/avatar/ef56gh78",
"id": 18,
"name": "Alex Garcia",
"username": "agarcia"
},
"web_url": "https://gitlab.com/group/example-project/-/pipelines/457882200",
"yaml_errors": null
},
"timestamp": "2026-02-13T19:25:43.000Z",
"type": "gitlab.pipeline"
}

The Get Pipeline component retrieves details for a specific GitLab pipeline.

  • Project (required): The GitLab project containing the pipeline
  • Pipeline (required): Select a pipeline from the selected project

Returns pipeline data including status, ref, SHA, and pipeline URL.

{
"data": {
"before_sha": "0000000000000000000000000000000000000000",
"committed_at": "2026-02-13T17:59:22.000Z",
"coverage": null,
"created_at": "2026-02-13T18:00:00.000Z",
"detailed_status": {
"group": "running",
"has_details": true,
"icon": "status_running",
"label": "running",
"text": "running",
"tooltip": "running"
},
"duration": 0,
"finished_at": null,
"id": 457882113,
"iid": 9821,
"project_id": 123456,
"queued_duration": 8.2,
"ref": "main",
"sha": "f4f6c5a0d2e5ad34be4c17c3f166f4d2ff8b0a55",
"source": "push",
"started_at": "2026-02-13T18:00:12.000Z",
"status": "running",
"tag": false,
"updated_at": "2026-02-13T18:00:10.000Z",
"user": {
"avatar_url": "https://www.gravatar.com/avatar/abc123",
"id": 22,
"name": "Jamie Rivera",
"username": "jrivera"
},
"web_url": "https://gitlab.com/group/example-project/-/pipelines/457882113",
"yaml_errors": null
},
"timestamp": "2026-02-13T18:00:10.000Z",
"type": "gitlab.pipeline"
}

The Get Test Report Summary component fetches the test report summary for a GitLab pipeline.

  • Project (required): The GitLab project containing the pipeline
  • Pipeline (required): Select a pipeline from the selected project
{
"data": {
"test_suites": [
{
"build_ids": [
8934210
],
"error_count": 0,
"failed_count": 1,
"name": "backend-rspec",
"skipped_count": 0,
"success_count": 247,
"suite_error": null,
"total_count": 248,
"total_time": 81.27
},
{
"build_ids": [
8934211
],
"error_count": 0,
"failed_count": 1,
"name": "frontend-jest",
"skipped_count": 1,
"success_count": 162,
"suite_error": null,
"total_count": 164,
"total_time": 71.19
}
],
"total": {
"count": 412,
"error": 0,
"failed": 2,
"skipped": 1,
"success": 409,
"suite_error": null,
"time": 152.46
}
},
"timestamp": "2026-02-13T19:26:01.000Z",
"type": "gitlab.testReportSummary"
}

The Run Pipeline component triggers a GitLab pipeline and waits for it to complete.

  • CI/CD orchestration: Trigger GitLab pipelines from SuperPlane workflows
  • Deployment automation: Run deployment pipelines with inputs
  • Pipeline chaining: Coordinate follow-up actions after pipeline completion
{
"data": {
"pipeline": {
"before_sha": "0000000000000000000000000000000000000000",
"committed_at": "2026-02-13T17:59:22.000Z",
"coverage": "86.5",
"created_at": "2026-02-13T18:00:00.000Z",
"detailed_status": {
"group": "success",
"has_details": true,
"icon": "status_success",
"label": "passed",
"text": "passed",
"tooltip": "passed"
},
"duration": 240,
"finished_at": "2026-02-13T18:04:12.000Z",
"id": 457882113,
"iid": 9821,
"project_id": 123456,
"queued_duration": 8.2,
"ref": "main",
"sha": "f4f6c5a0d2e5ad34be4c17c3f166f4d2ff8b0a55",
"source": "web",
"started_at": "2026-02-13T18:00:12.000Z",
"status": "success",
"tag": false,
"updated_at": "2026-02-13T18:04:12.000Z",
"url": "https://gitlab.com/group/example-project/-/pipelines/457882113",
"user": {
"avatar_url": "https://www.gravatar.com/avatar/abc123",
"id": 22,
"name": "Jamie Rivera",
"username": "jrivera"
},
"web_url": "https://gitlab.com/group/example-project/-/pipelines/457882113",
"yaml_errors": null
}
},
"timestamp": "2026-02-13T18:04:12.000Z",
"type": "gitlab.pipeline.finished"
}