GitLab is a comprehensive DevOps platform that allows teams to manage, collaborate on, and automate their software development lifecycle. With GitLab, you can effortlessly handle source code management, CI/CD, reviews, and collaboration in a single application.
With GitLab in Zoen, you can:
- Manage projects and repositories: List and retrieve your GitLab projects, access details, and organize your repositories
- Work with issues: List, create, and comment on issues to track work and collaborate effectively
- Handle merge requests: Review, create, and manage merge requests for code changes and peer reviews
- Automate CI/CD pipelines: Trigger, monitor, and interact with GitLab pipelines as part of your automation flows
- Collaborate with comments: Add comments to issues or merge requests for efficient communication within your team
Using Zoen’s GitLab integration, your agents can programmatically interact with your GitLab projects. Automate project management, issue tracking, code reviews, and pipeline operations seamlessly in your workflows, optimizing your software development process and enhancing collaboration across your team.
Integrate GitLab into the workflow. Can manage projects, issues, merge requests, pipelines, and add comments, plus project/group membership, invitations, access requests, SAML group links, and instance user administration. Supports all core GitLab DevOps operations.
List GitLab projects accessible to the authenticated user
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
owned | boolean | No | Limit to projects owned by the current user |
membership | boolean | No | Limit to projects the current user is a member of |
search | string | No | Search projects by name |
visibility | string | No | Filter by visibility (public, internal, private) |
orderBy | string | No | Order by field (id, name, path, created_at, updated_at, last_activity_at) |
sort | string | No | Sort direction (asc, desc) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
projects | array | List of GitLab projects |
total | number | Total number of projects |
Get details of a specific GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) (e.g., "namespace/project") |
| Parameter | Type | Description |
|---|
project | object | The GitLab project details |
List issues in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
state | string | No | Filter by state (opened, closed, all) |
labels | string | No | Comma-separated list of label names |
assigneeId | number | No | Filter by assignee user ID |
milestoneTitle | string | No | Filter by milestone title |
search | string | No | Search issues by title and description |
orderBy | string | No | Order by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight) |
sort | string | No | Sort direction (asc, desc) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
issues | array | List of GitLab issues |
total | number | Total number of issues |
Get details of a specific GitLab issue
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
issueIid | number | Yes | Issue number within the project (the # shown in GitLab UI) |
| Parameter | Type | Description |
|---|
issue | object | The GitLab issue details |
Create a new issue in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
title | string | Yes | Issue title |
description | string | No | Issue description (Markdown supported) |
labels | string | No | Comma-separated list of label names |
assigneeIds | array | No | Array of user IDs to assign |
milestoneId | number | No | Milestone ID to assign |
dueDate | string | No | Due date in YYYY-MM-DD format |
confidential | boolean | No | Whether the issue is confidential |
| Parameter | Type | Description |
|---|
issue | object | The created GitLab issue |
Update an existing issue in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
issueIid | number | Yes | Issue internal ID (IID) |
title | string | No | New issue title |
description | string | No | New issue description (Markdown supported) |
stateEvent | string | No | State event (close or reopen) |
labels | string | No | Comma-separated list of label names |
assigneeIds | array | No | Array of user IDs to assign |
milestoneId | number | No | Milestone ID to assign |
dueDate | string | No | Due date in YYYY-MM-DD format |
confidential | boolean | No | Whether the issue is confidential |
| Parameter | Type | Description |
|---|
issue | object | The updated GitLab issue |
Delete an issue from a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
issueIid | number | Yes | Issue internal ID (IID) |
| Parameter | Type | Description |
|---|
success | boolean | Whether the issue was deleted successfully |
Add a comment to a GitLab issue
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
issueIid | number | Yes | Issue internal ID (IID) |
body | string | Yes | Comment body (Markdown supported) |
internal | boolean | No | Create the comment as an internal note visible only to project members |
| Parameter | Type | Description |
|---|
note | object | The created comment |
List merge requests in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
state | string | No | Filter by state (opened, closed, locked, merged, all) |
labels | string | No | Comma-separated list of label names |
sourceBranch | string | No | Filter by source branch |
targetBranch | string | No | Filter by target branch |
orderBy | string | No | Order by field (created_at, updated_at, merged_at, priority, label_priority, milestone_due, popularity, title) |
sort | string | No | Sort direction (asc, desc) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
mergeRequests | array | List of GitLab merge requests |
total | number | Total number of merge requests |
Get details of a specific GitLab merge request
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
| Parameter | Type | Description |
|---|
mergeRequest | object | The GitLab merge request details |
Create a new merge request in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
sourceBranch | string | Yes | Source branch name |
targetBranch | string | Yes | Target branch name |
title | string | Yes | Merge request title |
description | string | No | Merge request description (Markdown supported) |
labels | string | No | Comma-separated list of label names |
assigneeIds | array | No | Array of user IDs to assign |
milestoneId | number | No | Milestone ID to assign |
removeSourceBranch | boolean | No | Delete source branch after merge |
squash | boolean | No | Squash commits on merge |
draft | boolean | No | Mark as draft (applied via the "Draft:" title prefix) |
| Parameter | Type | Description |
|---|
mergeRequest | object | The created GitLab merge request |
Update an existing merge request in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
title | string | No | New merge request title |
description | string | No | New merge request description |
stateEvent | string | No | State event (close or reopen) |
labels | string | No | Comma-separated list of label names |
assigneeIds | array | No | Array of user IDs to assign |
milestoneId | number | No | Milestone ID to assign |
targetBranch | string | No | New target branch |
removeSourceBranch | boolean | No | Delete source branch after merge |
squash | boolean | No | Squash commits on merge |
draft | boolean | No | Mark as draft or remove draft status (applied via the "Draft:" title prefix; requires title to be set) |
| Parameter | Type | Description |
|---|
mergeRequest | object | The updated GitLab merge request |
Merge a merge request in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
mergeCommitMessage | string | No | Custom merge commit message |
squashCommitMessage | string | No | Custom squash commit message |
squash | boolean | No | Squash commits before merging |
shouldRemoveSourceBranch | boolean | No | Delete source branch after merge |
mergeWhenPipelineSucceeds | boolean | No | Merge when pipeline succeeds |
| Parameter | Type | Description |
|---|
mergeRequest | object | The merged GitLab merge request |
Add a comment to a GitLab merge request
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
body | string | Yes | Comment body (Markdown supported) |
internal | boolean | No | Create the comment as an internal note visible only to project members |
| Parameter | Type | Description |
|---|
note | object | The created comment |
List pipelines in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
ref | string | No | Filter by ref (branch or tag) |
status | string | No | Filter by status (created, waiting_for_resource, preparing, pending, running, success, failed, canceling, canceled, skipped, manual, scheduled, waiting_for_callback) |
orderBy | string | No | Order by field (id, status, ref, updated_at, user_id) |
sort | string | No | Sort direction (asc, desc) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
pipelines | array | List of GitLab pipelines |
total | number | Total number of pipelines |
Get details of a specific GitLab pipeline
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
pipelineId | number | Yes | Pipeline ID |
| Parameter | Type | Description |
|---|
pipeline | object | The GitLab pipeline details |
Trigger a new pipeline in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
ref | string | Yes | Branch or tag to run the pipeline on |
variables | array | No | Array of variables for the pipeline (each with key, value, and optional variable_type) |
inputs | json | No | Pipeline inputs as a key/value object (for pipelines with spec:inputs) |
| Parameter | Type | Description |
|---|
pipeline | object | The created GitLab pipeline |
Retry a failed GitLab pipeline
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
pipelineId | number | Yes | Pipeline ID |
| Parameter | Type | Description |
|---|
pipeline | object | The retried GitLab pipeline |
Cancel a running GitLab pipeline
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
pipelineId | number | Yes | Pipeline ID |
| Parameter | Type | Description |
|---|
pipeline | object | The cancelled GitLab pipeline |
List files and directories in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
path | string | No | Path inside the repository to list |
ref | string | No | Branch, tag, or commit SHA to list from |
recursive | boolean | No | Whether to list files recursively |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
tree | array | List of repository tree entries |
total | number | Total number of tree entries |
Get the contents of a file from a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
filePath | string | Yes | Path to the file in the repository |
ref | string | Yes | Branch, tag, or commit SHA |
| Parameter | Type | Description |
|---|
filePath | string | The file path |
fileName | string | The file name |
size | number | The file size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
content | string | The decoded file content, truncated to 1M characters |
truncated | boolean | Whether the content was truncated |
Create a new file in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
filePath | string | Yes | Path to the file in the repository |
branch | string | Yes | Branch to commit the new file to |
content | string | Yes | File content |
startBranch | string | No | Name of the base branch to create the target branch from, if it does not exist |
authorName | string | No | Commit author name (defaults to the token user) |
authorEmail | string | No | Commit author email (defaults to the token user) |
executeFilemode | boolean | No | Enable the execute flag on the file |
commitMessage | string | Yes | Commit message |
| Parameter | Type | Description |
|---|
filePath | string | The created file path |
branch | string | The branch the file was committed to |
Update an existing file in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
filePath | string | Yes | Path to the file in the repository |
branch | string | Yes | Branch to commit the update to |
content | string | Yes | New file content |
startBranch | string | No | Name of the base branch to create the target branch from, if it does not exist |
authorName | string | No | Commit author name (defaults to the token user) |
authorEmail | string | No | Commit author email (defaults to the token user) |
executeFilemode | boolean | No | Enable or disable the execute flag on the file |
commitMessage | string | Yes | Commit message |
lastCommitId | string | No | Last known commit ID for the file (optimistic locking) |
| Parameter | Type | Description |
|---|
filePath | string | The updated file path |
branch | string | The branch the update was committed to |
Create a new branch in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
branch | string | Yes | Name of the new branch |
ref | string | Yes | Source branch/tag/SHA |
| Parameter | Type | Description |
|---|
name | string | The created branch name |
webUrl | string | The web URL of the branch |
protected | boolean | Whether the branch is protected |
commit | object | The commit the branch points to |
Delete a branch from a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
branch | string | Yes | Name of the branch to delete |
| Parameter | Type | Description |
|---|
success | boolean | Whether the branch was deleted successfully |
Compare two branches, tags, or commits in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
from | string | Yes | Commit SHA or branch/tag name to compare from |
to | string | Yes | Commit SHA or branch/tag name to compare to |
straight | boolean | No | Compare directly from..to instead of using the merge base (defaults to false) |
fromProjectId | string | No | ID of the project to compare from (for cross-fork comparisons) |
unidiff | boolean | No | Return diffs in unified diff format (GitLab 16.5+) |
| Parameter | Type | Description |
|---|
commit | object | The latest commit in the comparison |
commits | array | Commits between the two references |
diffs | array | File diffs between the two references |
compareTimeout | boolean | Whether the comparison exceeded size limits or timed out |
compareSameRef | boolean | Whether both references point to the same commit |
webUrl | string | The web URL for viewing the comparison |
List branches in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
search | string | No | Filter branches by name |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
branches | array | List of branches |
total | number | Total number of branches |
List commits in a GitLab project repository
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
refName | string | No | Branch, tag, or revision range to list commits from |
since | string | No | Only commits after this ISO 8601 date |
until | string | No | Only commits before this ISO 8601 date |
path | string | No | Only commits affecting this file path |
author | string | No | Filter commits by author |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
commits | array | List of commits |
total | number | Number of commits returned on this page (GitLab does not report a grand total for commits) |
Get the file changes (diffs) of a GitLab merge request
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
| Parameter | Type | Description |
|---|
mergeRequestIid | number | The merge request internal ID (IID) |
changes | array | List of file changes (diffs) |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether the merge request has more than 100 changed files (results truncated) |
Approve a GitLab merge request
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
mergeRequestIid | number | Yes | Merge request internal ID (IID) |
sha | string | No | HEAD SHA of the merge request to approve |
| Parameter | Type | Description |
|---|
approvalsRequired | number | Number of approvals required |
approvalsLeft | number | Number of approvals still needed |
approvedBy | array | List of approvers |
List jobs for a GitLab pipeline
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
pipelineId | number | Yes | Pipeline ID |
scope | string | No | Filter jobs by scope (e.g. created, running, success, failed) |
includeRetried | boolean | No | Whether to include retried jobs |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
jobs | array | List of pipeline jobs |
total | number | Total number of jobs |
Get the log (trace) of a GitLab job
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
jobId | number | Yes | Job ID |
| Parameter | Type | Description |
|---|
log | string | The job log (trace) output, truncated to 200k characters |
truncated | boolean | Whether the log was truncated |
Trigger (play) a manual GitLab job
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
jobId | number | Yes | Job ID |
jobVariables | array | No | Variables for the manual job (array of objects with key and value) |
| Parameter | Type | Description |
|---|
id | number | The job ID |
name | string | The job name |
status | string | The job status |
webUrl | string | The web URL of the job |
List releases in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
orderBy | string | No | Order by field (released_at, created_at) |
sort | string | No | Sort direction (asc, desc) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
releases | array | List of GitLab releases |
total | number | Total number of releases |
Create a new release in a GitLab project
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
projectId | string | Yes | Project ID or path (e.g. mygroup/myproject) |
tagName | string | Yes | The Git tag for the release |
name | string | No | The release name |
description | string | No | Release description/notes (Markdown supported) |
ref | string | No | Commit SHA, branch, or tag to create the tag from if it does not already exist |
releasedAt | string | No | ISO 8601 date for an upcoming or historical release |
tagMessage | string | No | Annotation message to use if creating a new annotated tag |
assetLinks | array | No | Release asset links: array of objects with name, url, and optional link_type (other, runbook, image, package) |
milestones | array | No | Array of milestone titles to associate with the release |
| Parameter | Type | Description |
|---|
release | object | The created GitLab release |
List members of a GitLab project or group. Includes members inherited from ancestor groups by default.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
directOnly | boolean | No | When true, returns only direct members. Defaults to false, which also returns members inherited from ancestor groups. |
query | string | No | Filter members by name, email, or username |
userIds | string | No | Comma-separated user IDs to filter the results to |
state | string | No | Filter inherited-member results by state: 'awaiting' or 'active' (Premium/Ultimate; only applies when inherited members are included) |
showSeatInfo | boolean | No | Include seat information for each member |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
members | array | List of project or group members |
total | number | Total number of members |
Add an existing GitLab user to a project or group at a given access level
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
userId | number | No | The ID of the user to add. Provide either userId or username. |
username | string | No | The username of the user to add. Provide either userId or username. |
accessLevel | number | Yes | Access level: 0 (No access), 5 (Minimal), 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner) |
expiresAt | string | No | Access expiration date in YYYY-MM-DD format |
memberRoleId | number | No | Custom member role ID (GitLab Ultimate only) |
| Parameter | Type | Description |
|---|
member | object | The added member |
alreadyMember | boolean | Whether the user was already a member (add was a no-op) |
Update a member's access level in a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
userId | number | Yes | The ID of the member to update |
accessLevel | number | Yes | New access level: 0 (No access), 5 (Minimal), 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner) |
expiresAt | string | No | Access expiration date in YYYY-MM-DD format. Pass an empty string to clear an existing expiration. |
memberRoleId | number | No | Custom member role ID (GitLab Ultimate only). Warning: when omitted, GitLab removes any custom role the member currently holds. |
| Parameter | Type | Description |
|---|
member | object | The updated member |
Remove a member from a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
userId | number | Yes | The ID of the member to remove |
skipSubresources | boolean | No | Skip deleting the member from subgroups and projects below the target (defaults to false) |
unassignIssuables | boolean | No | Unassign the member from all issues and merge requests in the target (defaults to false) |
| Parameter | Type | Description |
|---|
success | boolean | Whether the member was removed successfully |
Invite a person to a GitLab project or group by email address
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
email | string | Yes | Email address to invite (comma-separated for multiple) |
accessLevel | number | Yes | Access level: 0 (No access), 5 (Minimal), 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner) |
expiresAt | string | No | Access expiration date in YYYY-MM-DD format |
memberRoleId | number | No | Custom member role ID (GitLab Ultimate only) |
inviteSource | string | No | Identifier recorded as the source of the invitation (for attribution) |
| Parameter | Type | Description |
|---|
status | string | Invitation status returned by GitLab |
message | object | Per-email result detail, if any |
List pending email invitations for a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
query | string | No | Filter invitations by invited email |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
invitations | array | List of pending invitations |
total | number | Total number of invitations |
Update a pending invitation to a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
email | string | Yes | Email address of the invitation to update |
accessLevel | number | No | New access level: 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner) |
expiresAt | string | No | Access expiration date (ISO 8601, e.g. 2026-12-31T00:00:00Z; date-only also accepted). At least one of accessLevel or expiresAt must be provided. |
| Parameter | Type | Description |
|---|
invitation | object | The updated invitation |
Revoke a pending email invitation to a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
email | string | Yes | Email address of the invitation to revoke |
| Parameter | Type | Description |
|---|
success | boolean | Whether the invitation was revoked successfully |
List pending access requests for a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
accessRequests | array | List of pending access requests |
total | number | Total number of access requests |
Approve a pending access request for a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
userId | number | Yes | The user ID of the access requester |
accessLevel | number | No | Access level to grant: 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner). Defaults to 30 (Developer). |
| Parameter | Type | Description |
|---|
accessRequest | object | The approved access request |
Deny (delete) a pending access request for a GitLab project or group
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
resourceType | string | Yes | Whether the resource is a 'project' or a 'group' |
resourceId | string | Yes | Project or group ID or path (e.g. mygroup/myproject) |
userId | number | Yes | The user ID of the access requester |
| Parameter | Type | Description |
|---|
success | boolean | Whether the access request was denied successfully |
List SAML group links for a GitLab group. Use this to detect whether a group is governed by SAML group sync before provisioning members.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
groupId | string | Yes | Group ID or path (e.g. my-org/my-group) |
| Parameter | Type | Description |
|---|
samlGroupLinks | array | List of SAML group links |
total | number | Number of SAML group links |
Search for GitLab users by name, username, or email. Email matches must be exact; private emails match only with an admin token. Use this to resolve an email to a user ID before adding a member.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
search | string | Yes | Name, username, or email to search for |
perPage | number | No | Number of results per page (default 20, max 100) |
page | number | No | Page number for pagination |
| Parameter | Type | Description |
|---|
users | array | List of matching users |
total | number | Total number of matching users |
Create a new GitLab user. Requires an administrator token with admin_mode on the instance.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
email | string | Yes | The user's email address |
username | string | Yes | The user's username |
name | string | Yes | The user's display name |
password | string | No | The user's password. Omit and set resetPassword to email a reset link instead. |
resetPassword | boolean | No | Send the user a password reset link instead of setting a password |
forceRandomPassword | boolean | No | Set a random password without emailing a reset link (useful for SSO-only accounts). One of password, resetPassword, or forceRandomPassword is required. |
admin | boolean | No | Whether the new user is an administrator |
skipConfirmation | boolean | No | Skip email confirmation for the new user |
| Parameter | Type | Description |
|---|
user | object | The created user |
Modify an existing GitLab user. Requires an administrator token with admin_mode on the instance.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
userId | number | Yes | The ID of the user to modify |
email | string | No | The user's new email address (GitLab only allows changing to one of the user's existing verified secondary emails) |
username | string | No | The user's new username |
name | string | No | The user's new display name |
admin | boolean | No | Whether the user is an administrator |
| Parameter | Type | Description |
|---|
user | object | The updated user |
Delete a GitLab user. Requires an administrator token with admin_mode on the instance.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
userId | number | Yes | The ID of the user to delete |
hardDelete | boolean | No | When true, contributions, personal projects, AND groups owned solely by this user are deleted rather than moved to a Ghost User |
| Parameter | Type | Description |
|---|
success | boolean | Whether the user was deleted successfully |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
projects | json | List of projects |
project | json | Project details |
issues | json | List of issues |
issue | json | Issue details |
mergeRequests | json | List of merge requests |
mergeRequest | json | Merge request details |
mergeRequestIid | number | Merge request internal ID (IID) |
pipelines | json | List of pipelines |
pipeline | json | Pipeline details |
note | json | Comment/note details |
tree | json | Repository tree entries |
content | string | File contents (decoded) |
fileName | string | File name |
filePath | string | Path to the file in the repository |
branch | string | Branch the file was committed to |
branches | json | List of branches |
commits | json | List of commits |
commit | json | A single commit (e.g. latest commit in a comparison) |
name | string | Created branch name |
protected | boolean | Whether the branch is protected |
size | number | File size in bytes |
ref | string | The branch, tag, or commit SHA |
blobId | string | The blob ID |
lastCommitId | string | The last commit ID that modified the file |
webUrl | string | Web URL |
changes | json | Merge request file changes/diffs |
changesCount | number | Number of changed files returned (first 100) |
hasMore | boolean | Whether more changed files exist beyond the first 100 |
approvalsRequired | number | Approvals required |
approvalsLeft | number | Approvals remaining |
approvedBy | json | List of approvers |
jobs | json | Pipeline jobs |
log | string | Job log output |
id | number | Job ID |
status | string | Job status |
diffs | json | File diffs between two compared references |
compareTimeout | boolean | Whether the comparison timed out |
compareSameRef | boolean | Whether both compared references match |
releases | json | List of releases |
release | json | Release details |
members | json | List of project or group members |
member | json | A single member |
alreadyMember | boolean | Whether the user was already a member |
invitations | json | List of pending invitations |
invitation | json | A single invitation |
accessRequests | json | List of pending access requests |
accessRequest | json | A single access request |
samlGroupLinks | json | List of SAML group links |
samlGroupLink | json | A single SAML group link |
message | json | Per-email invitation result detail |
users | json | List of matching users |
user | json | User details |
total | number | Total number of items available across all pages |
truncated | boolean | Whether returned content (file content or job log) was truncated |
success | boolean | Operation success status |
Delete a user's authentication identity (e.g. SAML or LDAP). Requires an administrator token with admin_mode on the instance.
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
userId | number | Yes | The ID of the user |
provider | string | Yes | The external identity provider name (e.g. saml, ldapmain) |
| Parameter | Type | Description |
|---|
success | boolean | Whether the identity was deleted successfully |
Add a SAML group link that maps an identity-provider group to a GitLab group at a given access level (GitLab Premium/Ultimate)
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
groupId | string | Yes | Group ID or path (e.g. my-org/my-group) |
samlGroupName | string | Yes | The name of the SAML group as sent by the identity provider |
accessLevel | number | Yes | Access level granted to members of the SAML group: 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner) |
memberRoleId | number | No | Custom member role ID (GitLab Ultimate only) |
provider | string | No | Unique provider name that must match for this group link to be applied (GitLab 18.2+) |
| Parameter | Type | Description |
|---|
samlGroupLink | object | The created SAML group link |
Delete a SAML group link from a GitLab group (GitLab Premium/Ultimate)
| Parameter | Type | Required | Description |
|---|
host | string | No | Self-managed GitLab host (e.g. gitlab.example.com). Defaults to gitlab.com. |
groupId | string | Yes | Group ID or path (e.g. my-org/my-group) |
samlGroupName | string | Yes | The name of the SAML group link to delete |
provider | string | No | Provider name of the link to delete. Required when multiple links share the same SAML group name. |
| Parameter | Type | Description |
|---|
success | boolean | Whether the SAML group link was deleted successfully |
A Trigger is a block that starts a workflow when an event happens in this service.
Trigger workflow when a comment is added on a commit, merge request, or issue
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (note) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
object_attributes | object | object_attributes output from the tool |
↳ id | number | Comment ID |
↳ note | string | Comment body |
↳ noteable_type | string | What the comment is on (Commit, MergeRequest, Issue, Snippet) |
↳ action | string | Action (create, update) |
↳ url | string | Comment URL |
Trigger workflow from any GitLab webhook event
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (push, merge_request, issue, etc.) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
user | json | Actor that triggered the event (when present) |
object_attributes | json | Event-specific attributes (varies by object_kind) |
Trigger workflow when an issue is opened, updated, or closed in GitLab
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (issue) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
object_attributes | object | object_attributes output from the tool |
↳ id | number | Global issue ID |
↳ iid | number | Project-scoped issue number |
↳ title | string | Issue title |
↳ state | string | State (opened, closed) |
↳ action | string | Action (open, close, reopen, update) |
↳ description | string | Issue description |
↳ confidential | boolean | Whether the issue is confidential |
↳ url | string | Issue URL |
↳ work_item_type | string | Work item type (e.g. Issue, Incident, Task); GitLab 17.2+ only |
Trigger workflow when a merge request is opened, updated, or merged in GitLab
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (merge_request) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
object_attributes | object | object_attributes output from the tool |
↳ id | number | Global merge request ID |
↳ iid | number | Project-scoped merge request number |
↳ title | string | Merge request title |
↳ state | string | State (opened, closed, merged, locked) |
↳ action | string | Action (open, close, reopen, update, merge, etc.) |
↳ source_branch | string | Source branch |
↳ target_branch | string | Target branch |
↳ merge_status | string | Merge status (deprecated by GitLab) |
↳ detailed_merge_status | string | Detailed merge status |
↳ draft | boolean | Whether the merge request is a draft |
↳ url | string | Merge request URL |
Trigger workflow when a pipeline status changes in GitLab
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (pipeline) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
object_attributes | object | object_attributes output from the tool |
↳ id | number | Pipeline ID |
↳ status | string | Pipeline status (success, failed, running, etc.) |
↳ detailed_status | string | Detailed pipeline status |
↳ ref | string | Ref the pipeline ran on |
↳ sha | string | Commit SHA |
↳ source | string | Pipeline source (push, web, schedule, etc.) |
↳ duration | number | Pipeline duration in seconds |
↳ url | string | Pipeline URL |
Trigger workflow when commits are pushed to a GitLab project
| Parameter | Type | Required | Description |
|---|
accessToken | string | Yes | Used to create the webhook in your project. Requires the Maintainer or Owner role. |
projectId | string | Yes | The GitLab project to register the webhook on. |
host | string | No | Self-managed GitLab host. Leave blank for gitlab.com. |
| Parameter | Type | Description |
|---|
object_kind | string | Event kind (push) |
event_type | string | GitLab event type from the X-Gitlab-Event header |
ref | string | Git ref that was pushed (e.g. refs/heads/main) |
branch | string | Branch name derived from ref |
before | string | SHA before the push |
after | string | SHA after the push |
checkout_sha | string | SHA of the most recent commit |
user_username | string | Username of the pusher |
user_name | string | Display name of the pusher |
user_email | string | Email of the pusher |
total_commits_count | number | Number of commits in the push |
commits | json | Array of commit objects included in this push |