Reference · Tools

GitLab Trigger

Starts workflow when GitLab events occur

Webhook trigger Development v1

The GitLab Trigger node starts a workflow the moment something happens in your GitLab repository — a push, a new merge request, a pipeline status change, a release, and more. It registers a webhook directly in your GitLab project and normalizes the incoming payload so downstream nodes can act on it immediately. A typical use case: automatically notify a Slack channel or create a task whenever a merge request is opened.

Node type
Webhook trigger
Parameters
3
Outputs
Output
Credentials
GitLab API

GitLab Trigger

Trigger workflows from GitLab repository events

Overview

Triggers a workflow when events happen in a GitLab repository, such as pushes, merge requests, issues, pipeline status changes, comments, deployments, releases, tags, wiki page changes, and more. Receives webhook POST requests from GitLab and normalizes the payload for downstream processing.

Category: Development
Tool Name: gitlab_trigger
Version: 1

Appearance: Icon: si-gitlab | Color: #fc6d26

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires GitLab API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesUser, group, or namespace that owns the repository. For subgroups, use the full path (e.g., group/subgroup).
Repository NamestringYesThe name of the GitLab project/repository.
EventsmultiOptionsYes[]The events to listen to. Select * to subscribe to all event types.
Options: note (a comment on a commit, merge request, issue or snippet), confidential_note, confidential_issues, deployment, issues, job (a job status change), merge_requests, pipeline (a pipeline status change), push (excludes tag pushes), releases, tag_push (a tag was created or deleted), wiki_page, * (All Events — any time any event is triggered)

Output Data

Each accepted delivery produces one output item describing the GitLab event:

{
  "body": {},
  "headers": {},
  "query": {},
  "_trigger": "gitlab_webhook",
  "_timestamp": "2026-01-01T00:00:00.000Z",
  "_webhookEvent": "Push Hook"
}
  • body — the GitLab event payload exactly as GitLab sent it (for example object_kind, event_name, ref, project, commits, repository).
  • headers — the request headers of the delivery.
  • query — the query-string parameters of the delivery.
  • _trigger — always gitlab_webhook.
  • _timestamp — ISO 8601 timestamp of when the delivery arrived.
  • _webhookEvent — the GitLab hook name taken from the X-Gitlab-Event header, such as Push Hook, Merge Request Hook, Issue Hook, Pipeline Hook, Note Hook, Tag Push Hook, Job Hook, Deployment Hook, Release Hook or Wiki Page Hook.

Reference the payload downstream by expression, for example {{ $json.body.project.path_with_namespace }} or {{ $json.body.object_attributes.state }}.

Deliveries for hook types you did not select are acknowledged with 200 but do not start the workflow, so GitLab does not retry them. Deliveries whose secret token does not match are rejected with 401.

Usage Examples

  • Start a CI/CD workflow when code is pushed to a GitLab repository
  • Notify a Slack channel when a merge request is opened or merged
  • Track issue creation and updates in GitLab projects
  • Monitor pipeline status changes for deployment automation
  • Trigger a build when a new tag is pushed to GitLab

Example Configuration

Start a build on every push to a project:

{
  "type": "gitlab_trigger",
  "parameters": {
    "owner": "my-group",
    "repository": "my-project",
    "events": ["push"]
  }
}

Watch merge requests and issues in a subgroup project:

{
  "type": "gitlab_trigger",
  "parameters": {
    "owner": "my-group/platform",
    "repository": "api-service",
    "events": ["merge_requests", "issues", "note"]
  }
}

React to pipeline and job status changes:

{
  "type": "gitlab_trigger",
  "parameters": {
    "owner": "my-group",
    "repository": "my-project",
    "events": ["pipeline", "job", "deployment"]
  }
}

Subscribe to every GitLab event type:

{
  "type": "gitlab_trigger",
  "parameters": {
    "owner": "my-group",
    "repository": "my-project",
    "events": ["*"]
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

Configure the GitLab Trigger by providing your repository owner and name, then select which events to listen for. When activated, a webhook is registered in your GitLab project. Incoming events are forwarded to your workflow for processing.

Frequently asked questions

What GitLab events can this node listen for?

The node supports a broad range of GitLab events including pushes, merge requests, issues, pipeline status changes, comments, deployments, releases, tags, and wiki page changes. You select which events to listen for when configuring the node — only the events you choose will fire your workflow.

Does the node register the webhook in GitLab automatically, or do I have to do that manually?

It registers automatically. When the workflow is activated, the GitLab Trigger uses your GitLab API credentials to create a webhook in the specified project. You do not need to visit GitLab's webhook settings yourself — though you should ensure the API token has sufficient permissions to manage webhooks on that project.

What credentials does this node require?

It requires GitLab API credentials (credential type: gitlabApi). You'll need an access token scoped with at minimum webhook management and repository read permissions for the project you want to monitor.

How do I tell the node which repository to watch?

During configuration you provide the repository owner (user or group namespace) and the repository name. Together these identify the exact GitLab project where the webhook will be registered.

What does the output of this node look like?

The node has a single Output that carries the normalized GitLab webhook payload. GitLab sends a POST request when an event fires, and the node formats that payload for use in subsequent workflow nodes — so you can reference event data like commit authors, merge request titles, or pipeline statuses directly without extra parsing steps.

Build with the GitLab Trigger node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need GitLab API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.