![gitlab icon](/docs/img/components/icons/60/Z2l0bGFi.png)

# GitLab Connector

key: gitlab[Source](https://github.com/prismatic-io/components/tree/main/components/gitlab)[API Docs](https://docs.gitlab.com/api/rest/)[API Changelog](https://docs.gitlab.com/api/rest/deprecations/)[Connector Changelog](#changelog)

## Description[​](#description "Direct link to Description")

[GitLab](https://about.gitlab.com/) is a DevSecOps platform for source control, issue tracking, merge requests, and CI/CD, available as GitLab.com or as a self-managed instance.

Use the GitLab component to manage projects, issues, merge requests, branches, commits, repository files, and pipelines, and to react to GitLab events through webhooks or polling. The component also connects to self-managed instances on a private network through the on-prem agent, without exposing the instance to the internet.

#### API Documentation[​](#api-documentation "Direct link to API Documentation")

[GitLab REST API](https://docs.gitlab.com/api/rest/)

## Connections[​](#connections "Direct link to Connections")

### Access Token[​](#accesstoken "Direct link to Access Token")

**key: accessToken**

Use an access token to connect to GitLab.com or to a self-managed GitLab instance, including an instance on a private network reached through the on-prem agent (see **On-Prem Connections** below).

GitLab supports three kinds of access token, and all three work with this connection:

* A [personal access token](https://docs.gitlab.com/user/profile/personal_access_tokens/) acts as the user who created it. Use it for development and testing.
* A [project access token](https://docs.gitlab.com/user/project/settings/project_access_tokens/) or [group access token](https://docs.gitlab.com/user/group/settings/group_access_tokens/) acts as a bot user scoped to one project or group. Use one of these for production, so the integration does not depend on an individual's account.

#### Prerequisites[​](#prerequisites "Direct link to Prerequisites")

* A GitLab account with access to the projects the integration uses
* For project and group access tokens on GitLab.com, a Premium or Ultimate subscription (self-managed instances include them on every license)
* The Maintainer or Owner role on each project where the integration manages webhooks

#### Setup Steps[​](#setup-steps "Direct link to Setup Steps")

To create a personal access token:

1. In GitLab, select the avatar in the upper-right corner, then **Edit profile** > **Access** > **Personal access tokens**
2. Select **Generate token** > **Legacy token**, then enter a name

To create a project or group access token:

1. Open the project or group, then **Settings** > **Access tokens**
2. Select **Add new token** and enter a name, then select a role: **Developer** for issues, merge requests, and branches, or **Maintainer** to manage webhooks

For either kind of token:

1. Set an expiration date. Tokens expire after at most 365 days by default, so rotate the token and update the connection before that date
2. Select the **api** scope, or **read\_api** for an integration that only reads data
3. Create the token (for example, **Create project access token**) and copy the token value

#### Configure the Connection[​](#configure-the-connection "Direct link to Configure the Connection")

* Enter the GitLab instance's URL in **GitLab URL**: `https://gitlab.com` for GitLab.com, or the base URL of a self-managed instance
* Enter the token in **Access Token**
* If the instance's certificate is signed by an internal certificate authority, paste that authority's PEM-encoded certificate into **CA Certificate**. This applies to direct and on-prem connections alike

Ignore SSL Errors Disables Certificate Validation

**Ignore SSL Errors** turns off TLS certificate validation entirely. Use it only when a CA Certificate cannot be supplied, and supply one instead whenever possible.

### On-Prem Connections[​](#on-prem-connections "Direct link to On-Prem Connections")

To reach a self-managed GitLab instance on a private network, route this connection through the on-prem agent. The agent runs inside the network and makes only outbound connections (ports 22 and 443), so no inbound firewall ports need to be opened and the instance does not need to be exposed to the internet.

1. Install the on-prem agent on a machine with Docker inside the private network that can reach the GitLab instance. Set **APP\_HOST** to the instance's hostname or IP address and **APP\_PORT** to its HTTPS port (usually `443`). `localhost` and `127.0.0.1` refer to the agent's own container, so for a service on the same machine use `host.docker.internal`
2. In the integration's config wizard, open this connection and select **Allow On-Prem Connections**
3. When configuring the instance, turn on **Use On-Prem Connection** and select the on-prem agent's connection
4. Enter the instance's own URL in **GitLab URL**, such as `https://gitlab.internal.example.com`, not the agent's address. Requests travel through the agent, but the TLS certificate is validated against this URL's hostname
5. If the instance's certificate is signed by an internal certificate authority, paste that authority's PEM-encoded certificate into **CA Certificate**

**GitLab URL** can use `http` only through the on-prem agent. A direct connection requires `https`.

**On-prem enabled**: this connection can be configured to connect to an on-prem resource on a private network. [Learn more](https://prismatic.io/docs/integrations/connections/on-prem-agent.md).

| Input             | Notes                                                                                                                                                                                                                                                                                                  | Example                                                       |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
| Access Token      | A personal, project, or group access token with the api scope, or read\_api for read-only use. Tokens expire after at most 365 days by default. See [Personal access tokens](https://docs.gitlab.com/user/profile/personal_access_tokens/).                                                            | glpat-xxxxxxxxxxxxxxxxxxxx                                    |
| CA Certificate    | The PEM-encoded certificate of the authority that signed the instance's TLS certificate. Required when a self-managed instance uses an internal certificate authority.                                                                                                                                 | -----BEGIN CERTIFICATE----- MIIB... -----END CERTIFICATE----- |
| GitLab URL        | The base URL of the GitLab instance: https\://gitlab.com for GitLab.com, or the URL of a self-managed instance. For an instance on a private network, use its internal URL; its hostname is used to validate the TLS certificate. The URL must use https unless requests go through the on-prem agent. | https\://gitlab.com                                           |
| Host              | The on-prem agent tunnel host. Set by the on-prem agent.                                                                                                                                                                                                                                               | 10.0.0.12                                                     |
| Ignore SSL Errors | When true, TLS certificate validation is disabled. Supply a CA Certificate instead whenever possible.                                                                                                                                                                                                  | false                                                         |
| Port              | The on-prem agent tunnel port. Set by the on-prem agent.                                                                                                                                                                                                                                               | 443                                                           |

### OAuth 2.0[​](#oauth2 "Direct link to OAuth 2.0")

**key: oauth2**

To connect to GitLab using OAuth 2.0, register an OAuth application in GitLab. Each user then authorizes the integration with their own GitLab account. This works for GitLab.com and for self-managed instances; see [Configure GitLab as an OAuth 2.0 authentication identity provider](https://docs.gitlab.com/integration/oauth_provider/).

#### Prerequisites[​](#prerequisites-1 "Direct link to Prerequisites")

* A GitLab account that can create OAuth applications (user-owned, group-owned, or, on self-managed, instance-wide as an administrator)

#### Setup Steps[​](#setup-steps-1 "Direct link to Setup Steps")

1. In GitLab, open the application settings:

   <!-- -->

   * User-owned application: select the avatar in the upper-right corner, then **Edit profile** > **Access** > **Applications**
   * Group-owned application: open the group, then **Settings** > **Applications**
   * Instance-wide application (self-managed, administrator): select **Admin** in the upper-right corner, then **Applications**

2. Enter a name for the application

3. Enter `https://oauth2.prismatic.io/callback` as the **Redirect URI**

4. Select the **api** scope, or **read\_api** for an integration that only reads data

5. Select **Save application** and copy the **Application ID** and **Secret**

#### Configure the Connection[​](#configure-the-connection-1 "Direct link to Configure the Connection")

* Enter the **Application ID** as **Client ID** and the **Secret** as **Client Secret**
* For **Scopes**, use the same value selected in the application:
  <!-- -->
  ```text
  api

  ```
* For a self-managed instance, replace `gitlab.com` with the instance's host in **GitLab URL**, **Authorize URL**, and **Token URL**
* If the instance's certificate is signed by an internal certificate authority, paste that authority's PEM-encoded certificate into **CA Certificate**. This applies to direct and on-prem connections alike

Ignore SSL Errors Disables Certificate Validation

**Ignore SSL Errors** turns off TLS certificate validation entirely. Use it only when a CA Certificate cannot be supplied, and supply one instead whenever possible.

GitLab issues a new refresh token on every refresh and invalidates the old one. The connection stores the replacement automatically; see [OAuth 2.0 identity provider API](https://docs.gitlab.com/api/oauth2/).

### On-Prem Connections[​](#on-prem-connections-1 "Direct link to On-Prem Connections")

To reach a self-managed GitLab instance on a private network, route this connection through the on-prem agent. The agent runs inside the network and makes only outbound connections (ports 22 and 443), so no inbound firewall ports need to be opened and the instance does not need to be exposed to the internet.

1. Install the on-prem agent on a machine with Docker inside the private network that can reach the GitLab instance. Set **APP\_HOST** to the instance's hostname or IP address and **APP\_PORT** to its HTTPS port (usually `443`). `localhost` and `127.0.0.1` refer to the agent's own container, so for a service on the same machine use `host.docker.internal`
2. In the integration's config wizard, open this connection and select **Allow On-Prem Connections**
3. When configuring the instance, turn on **Use On-Prem Connection** and select the on-prem agent's connection
4. Enter the instance's own URL in **GitLab URL**, such as `https://gitlab.internal.example.com`, not the agent's address. Requests travel through the agent, but the TLS certificate is validated against this URL's hostname
5. If the instance's certificate is signed by an internal certificate authority, paste that authority's PEM-encoded certificate into **CA Certificate**

Users who authorize the connection must be able to reach the **Authorize URL** from their browser, and **Token URL** must be reachable from the platform, which exchanges the authorization code and refreshes tokens.

**GitLab URL** can use `http` only through the on-prem agent. A direct connection requires `https`.

**On-prem enabled**: this connection can be configured to connect to an on-prem resource on a private network. [Learn more](https://prismatic.io/docs/integrations/connections/on-prem-agent.md).

| Input             | Notes                                                                                                                                                                                                                                                                                                  | Example                                                          |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| Authorize URL     | The OAuth 2.0 authorization URL. For a self-managed instance, replace gitlab.com with the instance's host. See [OAuth 2.0 identity provider API](https://docs.gitlab.com/api/oauth2/).                                                                                                                 | https\://gitlab.com/oauth/authorize                              |
| CA Certificate    | The PEM-encoded certificate of the authority that signed the instance's TLS certificate. Required when a self-managed instance uses an internal certificate authority.                                                                                                                                 | -----BEGIN CERTIFICATE----- MIIB... -----END CERTIFICATE-----    |
| Client ID         | The Application ID of the OAuth application registered in GitLab. See [Configure GitLab as an OAuth 2.0 authentication identity provider](https://docs.gitlab.com/integration/oauth_provider/).                                                                                                        | 8f3b2a1c9d4e5f60718293a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4 |
| Client Secret     | The Secret of the OAuth application registered in GitLab.                                                                                                                                                                                                                                              | gloas-xxxxxxxxxxxxxxxxxxxx                                       |
| GitLab URL        | The base URL of the GitLab instance: https\://gitlab.com for GitLab.com, or the URL of a self-managed instance. For an instance on a private network, use its internal URL; its hostname is used to validate the TLS certificate. The URL must use https unless requests go through the on-prem agent. | https\://gitlab.com                                              |
| Host              | The on-prem agent tunnel host. Set by the on-prem agent.                                                                                                                                                                                                                                               | 10.0.0.12                                                        |
| Ignore SSL Errors | When true, TLS certificate validation is disabled. Supply a CA Certificate instead whenever possible.                                                                                                                                                                                                  | false                                                            |
| Port              | The on-prem agent tunnel port. Set by the on-prem agent.                                                                                                                                                                                                                                               | 443                                                              |
| Scopes            | Space-separated OAuth scopes. Use api for read and write access, or read\_api for read-only access.                                                                                                                                                                                                    | api                                                              |
| Token URL         | The OAuth 2.0 token URL. For a self-managed instance, replace gitlab.com with the instance's host.                                                                                                                                                                                                     | https\://gitlab.com/oauth/token                                  |

## Triggers[​](#triggers "Direct link to Triggers")

### New and Updated Records[​](#pollchangestrigger "Direct link to New and Updated Records")

Retrieves existing and ongoing issues or merge requests for a specified GitLab project. Load history once, check for changes on a schedule, or both. | **key: pollChangesTrigger**

| Input                | Notes                                                                                                                                                                                                                                                                     | Example               |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection           | The GitLab connection to use.                                                                                                                                                                                                                                             |                       |
| Look-back Date       | The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record modified on or after this date once, ignoring the visibility filters. | 2026-01-01            |
| Resource Type        | The kind of record to poll for changes.                                                                                                                                                                                                                                   | issues                |
| Project              | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root.                                                                                                                                          | acme/payments-service |
| Show New Records     | When true, records created since the last poll are returned in the trigger payload.                                                                                                                                                                                       | true                  |
| Show Updated Records | When true, records updated since the last poll are returned in the trigger payload.                                                                                                                                                                                       | true                  |

This trigger polls the [GitLab REST API](https://docs.gitlab.com/api/rest/) for new and updated issues or merge requests in a project on a scheduled basis. It does not need GitLab to send outbound requests, so it also works for a self-managed instance on a private network that cannot deliver webhooks.

#### How It Works[​](#how-it-works "Direct link to How It Works")

1. The trigger runs on the configured schedule
2. It fetches the selected **Resource Type** from the project with `updated_after` set to its stored position, ordered by `updated_at` ascending. Each further page starts from the newest `updated_at` already fetched rather than from a page offset, so a record edited during the walk is not skipped. Paging stops once the trigger holds the records it can deliver plus every record sharing the last one's `updated_at`. An unbatched recurrence delivers at most 1,000 records; a batched recurrence delivers at most 500 records and about 4.5 MB of record data
3. Each record is classified as **created** when its `created_at` is later than the stored position, and otherwise as **updated**. A record landing exactly on the stored position is included only if it was not already delivered on an earlier recurrence
4. Outside an initial sync, **Show New Records** and **Show Updated Records** each gate one of the two result arrays. Turning either off empties that array, and both keys remain present in the payload
5. When records are delivered, the position advances to the newest `updated_at` delivered, a timestamp from GitLab itself, so a GitLab clock that runs behind the scheduler's clock does not cause records to be skipped. A recurrence with no records keeps the position, and a first run without a **Look-back Date** starts from the scheduler's clock

**Initial Sync**

An initial sync seeds a complete starting state rather than a change feed, so inputs that narrow which changes are reported would leave gaps in it: **Show New Records** and **Show Updated Records** are ignored while it runs, and are the only inputs it ignores. It begins on the first recurrence, when the trigger has no stored position and a **Look-back Date** (`YYYY-MM-DD`) is set, and seeds every record updated on or after that date exactly once. Left empty, there is no sync and the trigger starts from its first recurrence.

The window has no fixed upper bound, so a record modified mid-drain is swept into the sync rather than deferred to the schedule. Each recurrence advances the position to the newest record it actually received, never to the wall clock, and the first incremental recurrence resumes from exactly there; nothing in the payload marks the handoff. With batching off each recurrence is capped at 1,000 records; with batching on it is capped at 500 records and about 4.5 MB of record data. A larger window spans several recurrences before the toggles apply again, and the same caps apply to a busy project outside an initial sync, with later recurrences delivering the rest.

**Project** and **Resource Type** still apply throughout. The trigger has no page-size or field-selection input, so nothing else is suppressed.

**Batching**

Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to GitLab.

To turn it on, select the flow's trigger, open the **Flow control** tab, and switch on **Enable Batching**. Under **Batch Size**, keep **Trigger default** or choose **Custom batch size**. **Batch Concurrency** is optional; leave it blank for no batch-level limit.

With batching off a downstream step reads `body.data.created` and `body.data.updated`. With batching on those fields do not exist: each execution receives one `{ "changeType": ..., "record": ... }` item, or an array of them when the batch size is greater than 1. Any step reading the older shape must be updated before batching is enabled, or it breaks the moment the switch is flipped. Because batching is enabled per flow, that change is scoped to the flow rather than to the component or to other flows using the same trigger.

The trigger advances its position before dispatching, so a failed execution loses its records either way: with batching off the whole recurrence's payload, with batching on only that batch. Records lost this way are not polled again.

#### Returned Data[​](#returned-data "Direct link to Returned Data")

With batching off, the trigger returns an object with two arrays: `created` for new records and `updated` for modified records. Each record is an issue or merge request as returned by the [Issues API](https://docs.gitlab.com/api/issues/) or [Merge requests API](https://docs.gitlab.com/api/merge_requests/). Fields shown are representative. The full response object includes additional properties.

Example Response

```json
{
  "data": {
    "created": [
      {
        "id": 1740233,
        "iid": 42,
        "project_id": 278964,
        "title": "Retry failed ACH settlements",
        "state": "opened",
        "created_at": "2026-09-20T15:22:31.118Z",
        "updated_at": "2026-09-27T10:05:44.901Z",
        "labels": ["bug", "backend"],
        "web_url": "https://gitlab.example.com/acme/payments-service/-/issues/42"
      }
    ],
    "updated": [
      {
        "id": 1739877,
        "iid": 38,
        "project_id": 278964,
        "title": "Reconcile duplicate ledger entries",
        "state": "opened",
        "created_at": "2026-09-02T08:14:07.512Z",
        "updated_at": "2026-09-27T16:41:19.330Z",
        "labels": ["bug", "backend"],
        "web_url": "https://gitlab.example.com/acme/payments-service/-/issues/38"
      }
    ]
  }
}

```

With batching on, each execution instead receives one change item, or an array of them when the batch size is greater than 1:

Example Batched Item

```json
{
  "changeType": "created",
  "record": {
    "id": 1740233,
    "iid": 42,
    "project_id": 278964,
    "title": "Retry failed ACH settlements",
    "state": "opened",
    "created_at": "2026-09-20T15:22:31.118Z",
    "updated_at": "2026-09-27T10:05:44.901Z"
  }
}

```

Example Payload for <!-- -->New and Updated Records[⤓](https://prismatic.io/docs/example-payloads/gitlab/triggers/pollChangesTrigger.json "Download example payload")

Loading…

***

### Webhook[​](#webhook "Direct link to Webhook")

Receive events from a manually configured GitLab webhook, branching by event type. | **key: webhook**

| Input        | Notes                                                                                                                          | Example                          |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| Secret Token | The Secret token configured on the GitLab webhook. When set, requests whose X-Gitlab-Token header does not match are rejected. | 4f9c2a7e1b3d5f6a8c0e2b4d6f8a0c2e |

The **Webhook** trigger receives events from a webhook configured manually in GitLab. For webhooks the instance creates and removes automatically, use **Webhook Events** instead.

#### How It Works[​](#how-it-works-1 "Direct link to How It Works")

1. In GitLab, open the project and select **Settings** > **Webhooks** > **Add new webhook**
2. Enter the flow's webhook URL as the **URL**
3. Enter a random string as the **Secret token**, and enter the same value in the trigger's **Secret Token** input
4. Select the events to send and save the webhook

GitLab sends the secret token as plain text in the `X-Gitlab-Token` header ([Webhooks](https://docs.gitlab.com/user/project/integrations/webhooks/)). Newer GitLab versions also offer an HMAC **Signing token**; this trigger verifies the **Secret token** only, so configure the webhook with a secret token. When **Secret Token** is set, the trigger compares the header to it in constant time and rejects any request that does not match. When it is empty, every request is accepted.

The trigger branches by event type; see **Event Types** below.

#### Event Types[​](#event-types "Direct link to Event Types")

The trigger branches by the `X-Gitlab-Event` header. Events not listed here arrive on the **Other** branch. See [Webhook events](https://docs.gitlab.com/user/project/integrations/webhook_events/) for each event's payload.

Available Events (12)

| `X-Gitlab-Event`          | Branch                 | Description                                                    |
| ------------------------- | ---------------------- | -------------------------------------------------------------- |
| `Push Hook`               | **Push**               | Commits pushed to a branch                                     |
| `Tag Push Hook`           | **Tag Push**           | A tag created or deleted                                       |
| `Issue Hook`              | **Issue**              | An issue created, updated, closed, or reopened                 |
| `Confidential Issue Hook` | **Confidential Issue** | The same as Issue, for a confidential issue                    |
| `Note Hook`               | **Note**               | A comment added to an issue, merge request, commit, or snippet |
| `Confidential Note Hook`  | **Confidential Note**  | The same as Note, for a comment on a confidential issue        |
| `Merge Request Hook`      | **Merge Request**      | A merge request opened, updated, merged, closed, or approved   |
| `Pipeline Hook`           | **Pipeline**           | A pipeline's status changed                                    |
| `Job Hook`                | **Job**                | A CI/CD job's status changed                                   |
| `Release Hook`            | **Release**            | A release created, updated, or deleted                         |
| `Deployment Hook`         | **Deployment**         | A deployment started, succeeded, failed, or was canceled       |
| `Milestone Hook`          | **Milestone**          | A milestone created, closed, reopened, or deleted              |

#### Returned Data[​](#returned-data-1 "Direct link to Returned Data")

The trigger returns the request GitLab sent, with the event body at `body.data` and the `X-Gitlab-Token` header removed after verification. Fields shown are representative. The full response object includes additional properties.

Example Payload

```json
{
  "object_kind": "push",
  "event_name": "push",
  "ref": "refs/heads/feature/CU-86b1x2-ach-retry",
  "checkout_sha": "8d2f5c7a9b1e3f4d6c8a0b2e4f6a8c0d2e4f6a8c",
  "user_username": "jdoe",
  "project_id": 278964,
  "project": {
    "id": 278964,
    "path_with_namespace": "acme/payments-service",
    "default_branch": "main"
  },
  "commits": [
    {
      "id": "8d2f5c7a9b1e3f4d6c8a0b2e4f6a8c0d2e4f6a8c",
      "title": "CU-86b1x2 Add ACH settlement retry",
      "timestamp": "2026-09-26T11:58:00Z",
      "author": { "name": "Jane Doe", "email": "jdoe@example.com" }
    }
  ],
  "total_commits_count": 1
}

```

Example Payload for <!-- -->Webhook[⤓](https://prismatic.io/docs/example-payloads/gitlab/triggers/webhook.json "Download example payload")

Loading…

***

### Webhook Events[​](#webhookevents "Direct link to Webhook Events")

Receive project event notifications from GitLab. Automatically creates and manages a webhook in each selected project for the selected events when the instance is deployed, and removes the webhooks when the instance is deleted. | **key: webhookEvents**

| Input         | Notes                                                                                                                                                                                                                              | Example               |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Branch Filter | Limit push events to branches matching this name or wildcard pattern, such as main or release/\*. Leave empty for all branches.                                                                                                    | main                  |
| Connection    | The GitLab connection to use.                                                                                                                                                                                                      |                       |
| Events        | The GitLab events that start this flow.                                                                                                                                                                                            |                       |
| Projects      | The projects to receive events from, each as a numeric ID or full path, or a project URL from a GitLab instance at the domain root. A webhook is created in each project; managing webhooks requires the Maintainer or Owner role. | acme/payments-service |

The **Webhook Events** trigger receives events from GitLab projects, and creates and removes the project webhooks itself.

#### How It Works[​](#how-it-works-2 "Direct link to How It Works")

**On Instance Deploy**, the trigger generates a secret for the instance and, in each selected project, creates a webhook for the flow's URL with the selected **Events** and **Branch Filter**. A webhook that already points at the flow's URL is updated in place rather than duplicated. On a redeploy, webhooks are updated to the new settings, and webhooks in projects that are no longer selected are removed. If creating a webhook fails in one project, the webhooks created during that deploy are removed, so a partial failure leaves no newly created webhook behind.

**On Instance Deletion**, the trigger removes every webhook that points at the flow's URL in the selected projects.

Managing webhooks requires the **Maintainer** or **Owner** role in each project. The trigger uses project webhooks, which are available on every GitLab tier.

Each request is checked against the instance's secret, which GitLab sends in the `X-Gitlab-Token` header, and a request that does not match is rejected. The trigger branches by event type; see **Event Types** below.

**Network Requirement**

GitLab delivers events by calling the flow's public webhook URL, so the GitLab instance must be able to make outbound HTTPS requests to it. For a self-managed instance on a private network, that is outbound traffic from the network; the on-prem agent carries requests into the network, not events out of it. If the instance restricts outgoing webhook requests, an administrator may need to allow the destination ([Webhooks security](https://docs.gitlab.com/security/webhooks/)). Where outbound requests are not permitted, use **New and Updated Records** instead.

GitLab temporarily disables a webhook after 4 consecutive failed deliveries and permanently after 40 ([Webhooks](https://docs.gitlab.com/user/project/integrations/webhooks/)).

#### Event Types[​](#event-types-1 "Direct link to Event Types")

The trigger branches by the `X-Gitlab-Event` header. Events not listed here arrive on the **Other** branch. See [Webhook events](https://docs.gitlab.com/user/project/integrations/webhook_events/) for each event's payload.

Available Events (12)

| `X-Gitlab-Event`          | Branch                 | Description                                                    |
| ------------------------- | ---------------------- | -------------------------------------------------------------- |
| `Push Hook`               | **Push**               | Commits pushed to a branch                                     |
| `Tag Push Hook`           | **Tag Push**           | A tag created or deleted                                       |
| `Issue Hook`              | **Issue**              | An issue created, updated, closed, or reopened                 |
| `Confidential Issue Hook` | **Confidential Issue** | The same as Issue, for a confidential issue                    |
| `Note Hook`               | **Note**               | A comment added to an issue, merge request, commit, or snippet |
| `Confidential Note Hook`  | **Confidential Note**  | The same as Note, for a comment on a confidential issue        |
| `Merge Request Hook`      | **Merge Request**      | A merge request opened, updated, merged, closed, or approved   |
| `Pipeline Hook`           | **Pipeline**           | A pipeline's status changed                                    |
| `Job Hook`                | **Job**                | A CI/CD job's status changed                                   |
| `Release Hook`            | **Release**            | A release created, updated, or deleted                         |
| `Deployment Hook`         | **Deployment**         | A deployment started, succeeded, failed, or was canceled       |
| `Milestone Hook`          | **Milestone**          | A milestone created, closed, reopened, or deleted              |

#### Returned Data[​](#returned-data-2 "Direct link to Returned Data")

The trigger returns the request GitLab sent, with the event body at `body.data` and the `X-Gitlab-Token` header removed after verification; see [Webhook events](https://docs.gitlab.com/user/project/integrations/webhook_events/) for the body of each event type. Fields shown are representative. The full response object includes additional properties.

Example Payload

```json
{
  "object_kind": "push",
  "event_name": "push",
  "ref": "refs/heads/feature/CU-86b1x2-ach-retry",
  "checkout_sha": "8d2f5c7a9b1e3f4d6c8a0b2e4f6a8c0d2e4f6a8c",
  "user_username": "jdoe",
  "project_id": 278964,
  "project": {
    "id": 278964,
    "path_with_namespace": "acme/payments-service",
    "default_branch": "main"
  },
  "commits": [
    {
      "id": "8d2f5c7a9b1e3f4d6c8a0b2e4f6a8c0d2e4f6a8c",
      "title": "CU-86b1x2 Add ACH settlement retry",
      "timestamp": "2026-09-26T11:58:00Z",
      "author": { "name": "Jane Doe", "email": "jdoe@example.com" }
    }
  ],
  "total_commits_count": 1
}

```

Example Payload for <!-- -->Webhook Events[⤓](https://prismatic.io/docs/example-payloads/gitlab/triggers/webhookEvents.json "Download example payload")

Loading…

***

## Data Sources[​](#data-sources "Direct link to Data Sources")

### Select Branch[​](#selectbranch "Direct link to Select Branch")

Select a branch in a project's repository. | **key: selectBranch** | **type: picklist**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Select Branch[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectBranch.json "Download example payload")

Loading…

***

### Select Group[​](#selectgroup "Direct link to Select Group")

Select a group visible to the connection's user. | **key: selectGroup** | **type: picklist**

| Input      | Notes                         | Example |
| ---------- | ----------------------------- | ------- |
| Connection | The GitLab connection to use. |         |

Example Payload for <!-- -->Select Group[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectGroup.json "Download example payload")

Loading…

***

### Select Label[​](#selectlabel "Direct link to Select Label")

Select a label available in a project. | **key: selectLabel** | **type: picklist**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Select Label[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectLabel.json "Download example payload")

Loading…

***

### Select Milestone[​](#selectmilestone "Direct link to Select Milestone")

Select an active milestone in a project. | **key: selectMilestone** | **type: picklist**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Select Milestone[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectMilestone.json "Download example payload")

Loading…

***

### Select Project[​](#selectproject "Direct link to Select Project")

Select a project the connection's user is a member of. | **key: selectProject** | **type: picklist**

| Input      | Notes                         | Example |
| ---------- | ----------------------------- | ------- |
| Connection | The GitLab connection to use. |         |

Example Payload for <!-- -->Select Project[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectProject.json "Download example payload")

Loading…

***

### Select User[​](#selectuser "Direct link to Select User")

Select a member of a project, including members inherited from its groups. | **key: selectUser** | **type: picklist**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Select User[⤓](https://prismatic.io/docs/example-payloads/gitlab/data-sources/selectUser.json "Download example payload")

Loading…

***

## Actions[​](#actions "Direct link to Actions")

### Accept Merge Request[​](#acceptmergerequest "Direct link to Accept Merge Request")

Merge a merge request. Fails if the merge request is not mergeable or the SHA guard does not match. | **key: acceptMergeRequest**

| Input             | Notes                                                                                                                            | Example               |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection        | The GitLab connection to use.                                                                                                    |                       |
| Merge Options     | Merge commit message, squash, source branch removal, and expected head SHA.                                                      |                       |
| Merge Request IID | The project-level number of the merge request, shown in GitLab as !17. This is the IID, not the global merge request ID.         | 17                    |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Accept Merge Request[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/acceptMergeRequest.json "Download example payload")

Loading…

***

### Create Branch[​](#createbranch "Direct link to Create Branch")

Create a branch from an existing branch, tag, or commit. | **key: createBranch**

| Input       | Notes                                                                                                                            | Example                     |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| Connection  | The GitLab connection to use.                                                                                                    |                             |
| Branch Name | The name of the branch to create.                                                                                                | feature/CU-86b1x2-ach-retry |
| Project     | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service       |
| Ref         | The branch name, tag, or commit SHA to create the branch from.                                                                   | main                        |

Example Payload for <!-- -->Create Branch[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createBranch.json "Download example payload")

Loading…

***

### Create File[​](#createfile "Direct link to Create File")

Create a file in a repository by committing it to a branch. | **key: createFile**

| Input          | Notes                                                                                                                            | Example               |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Branch         | The branch to commit the change to.                                                                                              | main                  |
| Commit Message | The message for the commit that writes the file.                                                                                 | Update retry settings |
| Connection     | The GitLab connection to use.                                                                                                    |                       |
| Content        | The file content. Use Base64 encoding for binary files.                                                                          | See Example           |
| Encoding       | How Content is encoded: text, or base64 for binary files.                                                                        | text                  |
| File Path      | The path of the file in the repository, such as config/settings.json.                                                            | config/settings.json  |
| Project        | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Create File[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createFile.json "Download example payload")

Loading…

***

### Create Issue[​](#createissue "Direct link to Create Issue")

Create an issue in a project. | **key: createIssue**

| Input             | Notes                                                                                                                            | Example                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| Additional Fields | Additional optional fields: includes Description, Due Date, and Confidential.                                                    |                              |
| Assignee IDs      | The numeric IDs of the users to assign.                                                                                          | 1001                         |
| Connection        | The GitLab connection to use.                                                                                                    |                              |
| Labels            | Label names to apply.                                                                                                            | bug                          |
| Milestone ID      | The numeric global ID of the milestone.                                                                                          | 55120                        |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service        |
| Title             | The title of the issue or merge request, shown in lists and notifications.                                                       | Retry failed ACH settlements |

Example Payload for <!-- -->Create Issue[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createIssue.json "Download example payload")

Loading…

***

### Create Issue Note[​](#createissuenote "Direct link to Create Issue Note")

Add a comment to an issue. | **key: createIssueNote**

| Input      | Notes                                                                                                                            | Example                                                   |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Body       | The comment text, in Markdown.                                                                                                   | Deployed to staging; settlements now retry up to 3 times. |
| Connection | The GitLab connection to use.                                                                                                    |                                                           |
| Internal   | When true, the note is internal and visible only to project members with at least the Reporter role.                             | false                                                     |
| Issue IID  | The project-level number of the issue, shown in GitLab as #42. This is the IID, not the global issue ID.                         | 42                                                        |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service                                     |

Example Payload for <!-- -->Create Issue Note[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createIssueNote.json "Download example payload")

Loading…

***

### Create Merge Request[​](#createmergerequest "Direct link to Create Merge Request")

Create a merge request between two branches. | **key: createMergeRequest**

| Input             | Notes                                                                                                                            | Example                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| Additional Fields | Additional optional fields: includes Description, Remove Source Branch, and Squash.                                              |                              |
| Assignee IDs      | The numeric IDs of the users to assign.                                                                                          | 1001                         |
| Connection        | The GitLab connection to use.                                                                                                    |                              |
| Labels            | Label names to apply.                                                                                                            | bug                          |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service        |
| Source Branch     | The branch containing the changes.                                                                                               | feature/ach-retry            |
| Target Branch     | The branch the changes merge into.                                                                                               | main                         |
| Title             | The title of the issue or merge request, shown in lists and notifications.                                                       | Retry failed ACH settlements |

Example Payload for <!-- -->Create Merge Request[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createMergeRequest.json "Download example payload")

Loading…

***

### Create Merge Request Note[​](#createmergerequestnote "Direct link to Create Merge Request Note")

Add a comment to a merge request. | **key: createMergeRequestNote**

| Input             | Notes                                                                                                                            | Example                                                   |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Body              | The comment text, in Markdown.                                                                                                   | Deployed to staging; settlements now retry up to 3 times. |
| Connection        | The GitLab connection to use.                                                                                                    |                                                           |
| Internal          | When true, the note is internal and visible only to project members with at least the Reporter role.                             | false                                                     |
| Merge Request IID | The project-level number of the merge request, shown in GitLab as !17. This is the IID, not the global merge request ID.         | 17                                                        |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service                                     |

Example Payload for <!-- -->Create Merge Request Note[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/createMergeRequestNote.json "Download example payload")

Loading…

***

### Delete Branch[​](#deletebranch "Direct link to Delete Branch")

Delete a branch. Protected branches cannot be deleted. | **key: deleteBranch**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Branch     | The name of an existing branch, such as feature/ach-retry. Slashes and dots in the name are encoded automatically.               | feature/ach-retry     |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Delete Branch[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/deleteBranch.json "Download example payload")

Loading…

***

### Delete Instanced Webhooks[​](#deleteinstancedwebhooks "Direct link to Delete Instanced Webhooks")

Delete webhooks in the selected projects that point at any of this instance's flow URLs. | **key: deleteInstancedWebhooks**

| Input      | Notes                                                 | Example               |
| ---------- | ----------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                         |                       |
| Projects   | The projects to remove this instance's webhooks from. | acme/payments-service |

Example Payload for <!-- -->Delete Instanced Webhooks[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/deleteInstancedWebhooks.json "Download example payload")

Loading…

***

### Delete Issue[​](#deleteissue "Direct link to Delete Issue")

Delete an issue. Users with the Planner or Owner role can delete any issue; other project members can delete the issues they authored. | **key: deleteIssue**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Issue IID  | The project-level number of the issue, shown in GitLab as #42. This is the IID, not the global issue ID.                         | 42                    |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Delete Issue[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/deleteIssue.json "Download example payload")

Loading…

***

### Get Branch[​](#getbranch "Direct link to Get Branch")

Retrieve a branch and its latest commit. | **key: getBranch**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Branch     | The name of an existing branch, such as feature/ach-retry. Slashes and dots in the name are encoded automatically.               | feature/ach-retry     |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Get Branch[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getBranch.json "Download example payload")

Loading…

***

### Get Commit[​](#getcommit "Direct link to Get Commit")

Retrieve a commit with its change statistics. | **key: getCommit**

| Input      | Notes                                                                                                                            | Example                                  |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| Commit SHA | The commit SHA, or a branch or tag name to resolve to its latest commit.                                                         | 8d2f5c7a9b1e3f4d6c8a0b2e4f6a8c0d2e4f6a8c |
| Connection | The GitLab connection to use.                                                                                                    |                                          |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service                    |

Example Payload for <!-- -->Get Commit[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getCommit.json "Download example payload")

Loading…

***

### Get Current User[​](#getcurrentuser "Direct link to Get Current User")

Retrieve the user the connection authenticates as. Useful for verifying a connection. | **key: getCurrentUser**

| Input      | Notes                         | Example |
| ---------- | ----------------------------- | ------- |
| Connection | The GitLab connection to use. |         |

Example Payload for <!-- -->Get Current User[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getCurrentUser.json "Download example payload")

Loading…

***

### Get File[​](#getfile "Direct link to Get File")

Retrieve a file from a repository. The content is returned Base64-encoded. | **key: getFile**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| File Path  | The path of the file in the repository, such as config/settings.json.                                                            | config/settings.json  |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Ref        | The branch name, tag, or commit SHA to read the file from.                                                                       | main                  |

Example Payload for <!-- -->Get File[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getFile.json "Download example payload")

Loading…

***

### Get Group[​](#getgroup "Direct link to Get Group")

Retrieve a group by ID or path. | **key: getGroup**

| Input      | Notes                                                                                                                | Example |
| ---------- | -------------------------------------------------------------------------------------------------------------------- | ------- |
| Connection | The GitLab connection to use.                                                                                        |         |
| Group      | The numeric ID or full path (group/subgroup) of the group, or a group URL from a GitLab instance at the domain root. | acme    |

Example Payload for <!-- -->Get Group[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getGroup.json "Download example payload")

Loading…

***

### Get Issue[​](#getissue "Direct link to Get Issue")

Retrieve an issue in a project by its IID. | **key: getIssue**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Issue IID  | The project-level number of the issue, shown in GitLab as #42. This is the IID, not the global issue ID.                         | 42                    |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Get Issue[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getIssue.json "Download example payload")

Loading…

***

### Get Merge Request[​](#getmergerequest "Direct link to Get Merge Request")

Retrieve a merge request in a project by its IID. | **key: getMergeRequest**

| Input             | Notes                                                                                                                            | Example               |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection        | The GitLab connection to use.                                                                                                    |                       |
| Merge Request IID | The project-level number of the merge request, shown in GitLab as !17. This is the IID, not the global merge request ID.         | 17                    |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Get Merge Request[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getMergeRequest.json "Download example payload")

Loading…

***

### Get Pipeline[​](#getpipeline "Direct link to Get Pipeline")

Retrieve a CI/CD pipeline with its timing and triggering user. | **key: getPipeline**

| Input       | Notes                                                                                                                            | Example               |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection  | The GitLab connection to use.                                                                                                    |                       |
| Pipeline ID | The numeric ID of the pipeline.                                                                                                  | 61205                 |
| Project     | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Get Pipeline[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getPipeline.json "Download example payload")

Loading…

***

### Get Project[​](#getproject "Direct link to Get Project")

Retrieve a project by ID or path. | **key: getProject**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Get Project[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/getProject.json "Download example payload")

Loading…

***

### List Branches[​](#listbranches "Direct link to List Branches")

List the branches in a project's repository. | **key: listBranches**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Search     | Return only results that match this text.                                                                                        | payments              |

Example Payload for <!-- -->List Branches[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listBranches.json "Download example payload")

Loading…

***

### List Commits[​](#listcommits "Direct link to List Commits")

List commits in a project's repository, with optional filters. | **key: listCommits**

| Input      | Notes                                                                                                                            | Example                  |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| Connection | The GitLab connection to use.                                                                                                    |                          |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                    |
| Pagination | Page and page-size controls.                                                                                                     |                          |
| Path       | Return only commits that touch this file path.                                                                                   | src/settlements/retry.ts |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service    |
| Ref Name   | Return only results for this branch or tag. Defaults to the default branch where applicable.                                     | main                     |
| Since      | Return only commits after this date-time, in ISO 8601 format.                                                                    | 2026-09-01T00:00:00Z     |
| Until      | Return only commits before this date-time, in ISO 8601 format.                                                                   | 2026-09-30T00:00:00Z     |

Example Payload for <!-- -->List Commits[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listCommits.json "Download example payload")

Loading…

***

### List Groups[​](#listgroups "Direct link to List Groups")

List groups visible to the authenticated user. | **key: listGroups**

| Input      | Notes                                                                                                                                                                                                                                              | Example  |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| Connection | The GitLab connection to use.                                                                                                                                                                                                                      |          |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page. GitLab caps offset pagination on this endpoint at 50,000 records by default, so Fetch All cannot retrieve results beyond that. | false    |
| Pagination | Page and page-size controls.                                                                                                                                                                                                                       |          |
| Search     | Return only results that match this text.                                                                                                                                                                                                          | payments |

Example Payload for <!-- -->List Groups[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listGroups.json "Download example payload")

Loading…

***

### List Issue Notes[​](#listissuenotes "Direct link to List Issue Notes")

List the comments and system notes on an issue. | **key: listIssueNotes**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Issue IID  | The project-level number of the issue, shown in GitLab as #42. This is the IID, not the global issue ID.                         | 42                    |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->List Issue Notes[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listIssueNotes.json "Download example payload")

Loading…

***

### List Issues[​](#listissues "Direct link to List Issues")

List issues in a project, with optional filters. | **key: listIssues**

| Input         | Notes                                                                                                                                                                                                                                              | Example               |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection    | The GitLab connection to use.                                                                                                                                                                                                                      |                       |
| Fetch All     | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page. GitLab caps offset pagination on this endpoint at 50,000 records by default, so Fetch All cannot retrieve results beyond that. | false                 |
| State         | Return only issues in this state. Leave empty for all states.                                                                                                                                                                                      |                       |
| Labels        | Return only issues that have all of these labels.                                                                                                                                                                                                  | bug                   |
| Pagination    | Page and page-size controls.                                                                                                                                                                                                                       |                       |
| Project       | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root.                                                                                                                   | acme/payments-service |
| Search        | Return only results that match this text.                                                                                                                                                                                                          | payments              |
| Updated After | Return only results updated on or after this date-time, in ISO 8601 format.                                                                                                                                                                        | 2026-09-01T00:00:00Z  |

Example Payload for <!-- -->List Issues[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listIssues.json "Download example payload")

Loading…

***

### List Labels[​](#listlabels "Direct link to List Labels")

List the labels available in a project, including inherited group labels. | **key: listLabels**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Search     | Return only results that match this text.                                                                                        | payments              |

Example Payload for <!-- -->List Labels[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listLabels.json "Download example payload")

Loading…

***

### List Merge Request Notes[​](#listmergerequestnotes "Direct link to List Merge Request Notes")

List the comments and system notes on a merge request. | **key: listMergeRequestNotes**

| Input             | Notes                                                                                                                            | Example               |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection        | The GitLab connection to use.                                                                                                    |                       |
| Fetch All         | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Merge Request IID | The project-level number of the merge request, shown in GitLab as !17. This is the IID, not the global merge request ID.         | 17                    |
| Pagination        | Page and page-size controls.                                                                                                     |                       |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->List Merge Request Notes[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listMergeRequestNotes.json "Download example payload")

Loading…

***

### List Merge Requests[​](#listmergerequests "Direct link to List Merge Requests")

List merge requests in a project, with optional filters. | **key: listMergeRequests**

| Input         | Notes                                                                                                                            | Example               |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection    | The GitLab connection to use.                                                                                                    |                       |
| Fetch All     | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Labels        | Return only merge requests that have all of these labels.                                                                        | bug                   |
| State         | Return only merge requests in this state. Leave empty for all states.                                                            |                       |
| Pagination    | Page and page-size controls.                                                                                                     |                       |
| Project       | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Search        | Return only results that match this text.                                                                                        | payments              |
| Source Branch | Return only merge requests from this source branch.                                                                              | feature/ach-retry     |
| Target Branch | Return only merge requests into this target branch.                                                                              | main                  |
| Updated After | Return only results updated on or after this date-time, in ISO 8601 format.                                                      | 2026-09-01T00:00:00Z  |

Example Payload for <!-- -->List Merge Requests[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listMergeRequests.json "Download example payload")

Loading…

***

### List Milestones[​](#listmilestones "Direct link to List Milestones")

List the milestones in a project. | **key: listMilestones**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| State      | Return only milestones in this state. Leave empty for all.                                                                       |                       |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->List Milestones[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listMilestones.json "Download example payload")

Loading…

***

### List Pipelines[​](#listpipelines "Direct link to List Pipelines")

List CI/CD pipelines in a project, with optional filters. | **key: listPipelines**

| Input         | Notes                                                                                                                            | Example               |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection    | The GitLab connection to use.                                                                                                    |                       |
| Fetch All     | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Pagination    | Page and page-size controls.                                                                                                     |                       |
| Status        | Return only pipelines with this status.                                                                                          |                       |
| Project       | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Ref Name      | Return only results for this branch or tag. Defaults to the default branch where applicable.                                     | main                  |
| Updated After | Return only results updated on or after this date-time, in ISO 8601 format.                                                      | 2026-09-01T00:00:00Z  |

Example Payload for <!-- -->List Pipelines[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listPipelines.json "Download example payload")

Loading…

***

### List Project Members[​](#listprojectmembers "Direct link to List Project Members")

List a project's members, including members inherited from its groups. | **key: listProjectMembers**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Query      | Return only members whose name, email, or username matches this text.                                                            | jdoe                  |

Example Payload for <!-- -->List Project Members[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listProjectMembers.json "Download example payload")

Loading…

***

### List Project Webhooks[​](#listprojectwebhooks "Direct link to List Project Webhooks")

List the webhooks configured on a project. | **key: listProjectWebhooks**

| Input      | Notes                                                                                                                            | Example               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Connection | The GitLab connection to use.                                                                                                    |                       |
| Fetch All  | When true, automatically fetches all pages of results using pagination. The API returns up to 100 results per page.              | false                 |
| Pagination | Page and page-size controls.                                                                                                     |                       |
| Project    | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->List Project Webhooks[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listProjectWebhooks.json "Download example payload")

Loading…

***

### List Projects[​](#listprojects "Direct link to List Projects")

List projects visible to the authenticated user. | **key: listProjects**

| Input      | Notes                                                                                                                                     | Example  |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| Connection | The GitLab connection to use.                                                                                                             |          |
| Fetch All  | When true, automatically fetches all pages of results using keyset pagination, ordered by ID. The API returns up to 100 results per page. | false    |
| Membership | When true, return only projects the authenticated user is a member of. On GitLab.com, false searches every public project.                | true     |
| Pagination | Page and page-size controls.                                                                                                              |          |
| Search     | Return only results that match this text.                                                                                                 | payments |

Example Payload for <!-- -->List Projects[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listProjects.json "Download example payload")

Loading…

***

### List Users[​](#listusers "Direct link to List Users")

List or search users on the GitLab instance. | **key: listUsers**

| Input      | Notes                                                                                                                                     | Example  |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| Connection | The GitLab connection to use.                                                                                                             |          |
| Fetch All  | When true, automatically fetches all pages of results using keyset pagination, ordered by ID. The API returns up to 100 results per page. | false    |
| Pagination | Page and page-size controls.                                                                                                              |          |
| Search     | Return only results that match this text.                                                                                                 | payments |
| Username   | Return only the user with this exact username.                                                                                            | jdoe     |

Example Payload for <!-- -->List Users[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/listUsers.json "Download example payload")

Loading…

***

### Raw Request[​](#rawrequest "Direct link to Raw Request")

Send raw HTTP request to GitLab. | **key: rawRequest**

| Input           | Notes                                                                                                                                                                                                                                                                                            | Example                        |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ |
| Connection      | The GitLab connection to use.                                                                                                                                                                                                                                                                    |                                |
| Data            | The HTTP body payload to send to the URL.                                                                                                                                                                                                                                                        | {"exampleKey": "Example Data"} |
| Header          | A list of headers to send with the request.                                                                                                                                                                                                                                                      | User-Agent: curl/7.64.1        |
| Method          | The HTTP method to use.                                                                                                                                                                                                                                                                          |                                |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1\&key2=value2.                                                                                                                                                             |                                |
| Response Type   | The type of data you expect in the response. You can request json, text, or binary data.                                                                                                                                                                                                         | json                           |
| Timeout         | The maximum time that a client will await a response to its request                                                                                                                                                                                                                              | 2000                           |
| URL             | Input the path only (/projects/278964/issues). The base URL, including /api/v4, is already included from the connection. For example, to call https\://gitlab.com/api/v4/projects/278964/issues, enter only /projects/278964/issues. Full URLs (with a scheme or starting with //) are rejected. | /projects/278964/issues        |

***

### Update File[​](#updatefile "Direct link to Update File")

Update an existing file in a repository by committing to a branch. | **key: updateFile**

| Input          | Notes                                                                                                                            | Example               |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Branch         | The branch to commit the change to.                                                                                              | main                  |
| Commit Message | The message for the commit that writes the file.                                                                                 | Update retry settings |
| Connection     | The GitLab connection to use.                                                                                                    |                       |
| Content        | The file content. Use Base64 encoding for binary files.                                                                          | See Example           |
| Encoding       | How Content is encoded: text, or base64 for binary files.                                                                        | text                  |
| File Path      | The path of the file in the repository, such as config/settings.json.                                                            | config/settings.json  |
| Project        | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Update File[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/updateFile.json "Download example payload")

Loading…

***

### Update Issue[​](#updateissue "Direct link to Update Issue")

Update an issue's fields, or close or reopen it. Empty inputs leave the current values unchanged. | **key: updateIssue**

| Input             | Notes                                                                                                                            | Example               |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Additional Fields | Additional optional fields: includes Title, Description, Due Date, State Event, and Confidential.                                |                       |
| Assignee IDs      | The numeric IDs of the users to assign. Leave empty to keep the current assignees unchanged.                                     | 1001                  |
| Connection        | The GitLab connection to use.                                                                                                    |                       |
| Issue IID         | The project-level number of the issue, shown in GitLab as #42. This is the IID, not the global issue ID.                         | 42                    |
| Labels            | Label names to apply. Leave empty to keep the current labels unchanged.                                                          | bug                   |
| Milestone ID      | The numeric global ID of the milestone.                                                                                          | 55120                 |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |

Example Payload for <!-- -->Update Issue[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/updateIssue.json "Download example payload")

Loading…

***

### Update Merge Request[​](#updatemergerequest "Direct link to Update Merge Request")

Update a merge request's fields, or close or reopen it. Empty inputs leave the current values unchanged. | **key: updateMergeRequest**

| Input             | Notes                                                                                                                            | Example               |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Additional Fields | Additional optional fields: includes Title, Description, and State Event.                                                        |                       |
| Assignee IDs      | The numeric IDs of the users to assign. Leave empty to keep the current assignees unchanged.                                     | 1001                  |
| Connection        | The GitLab connection to use.                                                                                                    |                       |
| Labels            | Label names to apply. Leave empty to keep the current labels unchanged.                                                          | bug                   |
| Merge Request IID | The project-level number of the merge request, shown in GitLab as !17. This is the IID, not the global merge request ID.         | 17                    |
| Project           | The numeric ID or full path (group/subgroup/project) of the project, or a project URL from a GitLab instance at the domain root. | acme/payments-service |
| Target Branch     | The new target branch. Leave empty to keep the current target.                                                                   | main                  |

Example Payload for <!-- -->Update Merge Request[⤓](https://prismatic.io/docs/example-payloads/gitlab/actions/updateMergeRequest.json "Download example payload")

Loading…

***

## Changelog[​](#changelog "Direct link to Changelog")

### 2026-10-20[​](#2026-10-20 "Direct link to 2026-10-20")

Initial release of GitLab component for GitLab.com and self-managed instances, with **Access Token** and **OAuth 2.0** connections that can each reach an instance on a private network through the on-prem agent:

* Added 37 actions for projects, groups, users, branches, commits, repository files, issues, merge requests, notes, pipelines, labels, milestones, project members, and webhooks, including a **Raw Request** action, with data sources for selecting projects, groups, branches, labels, milestones, and users
* Added the **Webhook**, **Webhook Events**, and **New and Updated Records** triggers; **New and Updated Records** detects created and updated issues or merge requests in a project and offers opt-in batching, dispatching each changed record individually or in configured batches; enabling it changes the shape a downstream step receives
* Added an optional **Look-back Date** input to the **New and Updated Records** trigger for performing an initial sync of records. The initial sync begins on the first recurrence and backfills every record modified on or after the specified date, seeding each once and ignoring the trigger's filters; once it completes, later recurrences are unaffected. Leave it empty to start from the first recurrence with no backfill
* Added output schemas to 36 actions for improved field mapping during configuration
* Added inline action calling support to 36 actions for improved example output during configuration
