# GitLab

A web-based DevOps lifecycle tool that provides a Git repository manager providing wiki, issue-tracking, and CI/CD pipeline features.

- **Category:** developer tools
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 58
- **Triggers:** 0
- **Slug:** `GITLAB`
- **Version:** 20260316_00

## Frequently Asked Questions

### How do I set up custom OAuth credentials for GitLab?

For a step-by-step guide on creating and configuring your own GitLab OAuth credentials with Composio, see [How to create OAuth credentials for GitLab](https://composio.dev/auth/gitlab).

## Tools

### Archive Project

**Slug:** `GITLAB_ARCHIVE_PROJECT`

Tool to archive a project. Use when you need to mark a project read-only after finishing active development. Call after confirming no further changes are required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project to archive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GitLab Group

**Slug:** `GITLAB_CREATE_GROUP`

Tool to create a new group in GitLab. Use when you need to establish a new group for projects or collaboration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the group. |
| `path` | string | Yes | The path of the group. |
| `avatar` | string | No | Image file for avatar of the group. |
| `parent_id` | integer | No | The parent group ID for creating nested group. |
| `visibility` | string ("private" | "internal" | "public") | No | The group’s visibility. |
| `description` | string | No | The group’s description. |
| `lfs_enabled` | boolean | No | Enable/disable Large File Storage (LFS) for the projects in this group. |
| `default_branch` | string | No | The default branch name for group’s projects. |
| `emails_enabled` | boolean | No | Enable email notifications. |
| `membership_lock` | boolean | No | Users cannot be added to projects in this group. Premium and Ultimate only. |
| `organization_id` | integer | No | The organization ID for the group. |
| `duo_availability` | string ("default_on" | "default_off" | "never_on") | No | Duo availability setting. Note: In the UI, never_on is displayed as "Always Off". |
| `mentions_disabled` | boolean | No | Disable the capability of a group from getting mentioned. |
| `wiki_access_level` | string ("disabled" | "private" | "enabled") | No | The wiki access level. Premium and Ultimate only. |
| `auto_devops_enabled` | boolean | No | Default to Auto DevOps pipeline for all projects within this group. |
| `share_with_group_lock` | boolean | No | Prevent sharing a project with another group within this group. |
| `project_creation_level` | string ("administrator" | "noone" | "maintainer" | "developer") | No | Determine if developers can create projects in the group. |
| `request_access_enabled` | boolean | No | Allow users to request member access. |
| `subgroup_creation_level` | string ("owner" | "maintainer") | No | Allowed to create subgroups. |
| `two_factor_grace_period` | integer | No | Time before Two-factor authentication is enforced (in hours). |
| `enabled_git_access_protocol` | string ("ssh" | "http" | "all") | No | Enabled protocols for Git access. |
| `experiment_features_enabled` | boolean | No | Enable experiment features for this group. |
| `shared_runners_minutes_limit` | integer | No | Can be set by administrators only. Maximum number of monthly compute minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0. GitLab Self-Managed, Premium and Ultimate only. |
| `require_two_factor_authentication` | boolean | No | Require all users in this group to set up two-factor authentication. |
| `default_branch_protection_defaults` | object | No | Options for default_branch_protection_defaults. E.g. {"allowed_to_push": [{"access_level":40}], "allow_force_push": False, "allowed_to_merge": [{"access_level":40}], "developer_can_initial_push": False} |
| `extra_shared_runners_minutes_limit` | integer | No | Can be set by administrators only. Additional compute minutes for this group. GitLab Self-Managed, Premium and Ultimate only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `GITLAB_CREATE_PROJECT`

Tool to create a new project in GitLab. Implements POST /projects endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the project. |
| `path` | string | Yes | The path or URL-friendly name for the project. |
| `visibility` | string ("private" | "internal" | "public") | No | Project visibility. |
| `description` | string | No | Project description. |
| `namespace_id` | integer | No | The namespace (group or user ID) under which to create the project. |
| `wiki_enabled` | boolean | No | Enable wiki feature. |
| `default_branch` | string | No | The default branch name. |
| `issues_enabled` | boolean | No | Enable issues feature. |
| `snippets_enabled` | boolean | No | Enable snippets feature. |
| `build_git_strategy` | string | No | Git strategy for builds. |
| `merge_requests_enabled` | boolean | No | Enable merge requests feature. |
| `container_registry_enabled` | boolean | No | Enable container registry. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project Issue

**Slug:** `GITLAB_CREATE_PROJECT_ISSUE`

Tool to create a new issue in a GitLab project. Use when you need to report a bug, request a feature, or track a task within a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The global ID or URL-encoded path of the project (e.g., '12345', 'my-group/my-project', or 'my-group%2Fmy-project'). |
| `iid` | integer | No | The internal ID of the project’s issue (requires administrator or project owner rights). |
| `title` | string | Yes | The title of an issue. |
| `labels` | string | No | Comma-separated label names to assign to the new issue. If a label does not already exist, this creates a new project label and assigns it to the issue. |
| `weight` | integer | No | The weight of the issue. Valid values are greater than or equal to 0. Premium and Ultimate only. |
| `epic_id` | integer | No | ID of the epic to add the issue to. Valid values are greater than or equal to 0. Premium and Ultimate only. |
| `due_date` | string | No | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11`. |
| `epic_iid` | integer | No | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, scheduled for removal in API version 5). Premium and Ultimate only. |
| `created_at` | string | No | When the issue was created. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. |
| `issue_type` | string ("issue" | "incident" | "test_case" | "task") | No | The type of issue. One of `issue`, `incident`, `test_case` or `task`. Default is `issue`. |
| `assignee_id` | integer | No | The ID of the user to assign the issue to. Only appears on GitLab Free. |
| `description` | string | No | The description of an issue. Limited to 1,048,576 characters. |
| `assignee_ids` | array | No | The IDs of the users to assign the issue to. Premium and Ultimate only. |
| `confidential` | boolean | No | Set an issue to be confidential. Default is false. |
| `milestone_id` | integer | No | The global ID of a milestone to assign issue. To find the `milestone_id` associated with a milestone, view an issue with the milestone assigned and use the API to retrieve the issue’s details. |
| `discussion_to_resolve` | string | No | The ID of a discussion to resolve. This fills out the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. |
| `merge_request_to_resolve_discussions_of` | integer | No | The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Repository Branch

**Slug:** `GITLAB_CREATE_REPOSITORY_BRANCH`

Tool to create a new branch in a project. Use when you need to create a new branch from an existing branch or a specific commit in a GitLab project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ref` | string | Yes | The branch name or commit SHA to create the new branch from. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |
| `branch_name` | string | Yes | The name of the new branch. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Project

**Slug:** `GITLAB_DELETE_PROJECT`

Tool to delete a GitLab project by its ID. Use when you need to remove a project, either by marking it for later deletion or deleting it immediately.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project to be deleted. |
| `full_path` | string | No | The full path of the project (e.g., namespace/project_name). Used with `permanently_remove=true` for immediate deletion. Available in GitLab Free from 18.0 (previously Premium/Ultimate only since 15.11). |
| `permanently_remove` | boolean | No | If true, the project is deleted immediately. Otherwise, it is marked for deletion and removed after a retention period. Available in GitLab Free from 18.0 (previously Premium/Ultimate only since 15.11). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Project Avatar

**Slug:** `GITLAB_DOWNLOAD_PROJECT_AVATAR`

Tool to download a project's avatar image. Use when you need the raw avatar bytes after confirming the project exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project whose avatar to download. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Erase Job

**Slug:** `GITLAB_ERASE_JOB`

Tool to erase the content of a specified job within a project. Use when you need to remove job artifacts and logs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | integer | Yes | The ID of the job to be erased. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Commit References

**Slug:** `GITLAB_GET_COMMIT_REFS`

Tool to get all references (branches or tags) a commit is pushed to. Use when you need to find out which branches or tags a specific commit belongs to in a GitLab project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sha` | string | Yes | The commit hash. |
| `ref_type` | string ("branch" | "tag" | "all") | No | The scope of commits to list. Possible values are `branch`, `tag`, or `all`. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Commit Sequence

**Slug:** `GITLAB_GET_COMMIT_SEQUENCE`

Tool to get the sequence number of a commit in a project by following parent links from the given commit. Use when you need to determine the order of a commit in the project's history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sha` | string | Yes | The commit hash. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |
| `first_parent` | boolean | No | Follow only the first parent commit upon seeing a merge commit. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Details

**Slug:** `GITLAB_GET_GROUP`

Tool to retrieve information about a specific group by its ID. Use when you need to get details of a GitLab group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the group. |
| `with_projects` | boolean | No | Include details from projects that belong to the specified group (defaults to true). Deprecated, scheduled for removal in API v5. |
| `with_custom_attributes` | boolean | No | Include custom attributes in response (administrators only). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Member

**Slug:** `GITLAB_GET_GROUP_MEMBER`

Tool to retrieve details for a specific group member. Use when you need to fetch membership information for a user in a group after you know both group ID and user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the group. |
| `user_id` | integer | Yes | The user ID of the group member to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Groups

**Slug:** `GITLAB_GET_GROUPS`

Get Groups

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("asc" | "desc") | No | Return groups sorted in 'asc' or 'desc' order. |
| `owned` | boolean | No | Limit to groups owned by the current user. |
| `search` | string | No | Search for groups by name or path. |
| `order_by` | string ("id" | "name" | "path" | "similarity") | No | Return groups ordered by this field. Use 'similarity' when searching to order by relevance score. |
| `per_page` | integer | No | Number of results per page. |
| `statistics` | boolean | No | Include group statistics (admin only). |
| `skip_groups` | array | No | List of group IDs to exclude. |
| `all_available` | boolean | No | Include all groups the user has access to (admin only). |
| `with_projects` | boolean | No | Include project details in response (deprecated). |
| `with_two_factor` | boolean | No | Include groups requiring two-factor authentication. |
| `min_access_level` | integer | No | Limit to groups with minimum access level. |
| `with_custom_attributes` | boolean | No | Include custom attributes in response (admins only). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Job Details

**Slug:** `GITLAB_GET_JOB_DETAILS`

Tool to retrieve details of a single job by its ID within a specified project. Use this when you need to fetch specific information about a particular CI/CD job.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | integer | Yes | The ID of the job. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Merge Request Notes

**Slug:** `GITLAB_GET_MERGE_REQUEST_NOTES`

Tool to fetch comments on a merge request. Use when you need to retrieve all notes for a specific merge request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number to retrieve. |
| `per_page` | integer | No | Number of notes per page (max 100). |
| `merge_request_iid` | integer | Yes | Internal ID of the merge request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `GITLAB_GET_PROJECT`

Tool to get a single project by ID or URL-encoded path.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Languages

**Slug:** `GITLAB_GET_PROJECT_LANGUAGES`

Tool to list programming languages used in a project with percentages. Use when you need the project language breakdown.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Member

**Slug:** `GITLAB_GET_PROJECT_MEMBER`

Tool to retrieve details for a specific project member. Use after confirming project and user IDs to fetch membership information for a project member.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `user_id` | integer | Yes | The user ID of the project member to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Member All

**Slug:** `GITLAB_GET_PROJECT_MEMBER_ALL`

Tool to retrieve details for a specific project member (including inherited and invited members). Use when you need the effective membership info (including invitations and inheritance).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `user_id` | integer | Yes | The user ID of the project member. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Merge Request

**Slug:** `GITLAB_GET_PROJECT_MERGE_REQUEST`

Tool to fetch full details for a single merge request when the MR IID is known. Use when you need to retrieve canonical metadata, description, state, branches, authors, and approval-related fields for a specific merge request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `render_html` | boolean | No | If true, response includes rendered HTML for title and description. |
| `merge_request_iid` | integer | Yes | Internal ID of the merge request. |
| `include_rebase_in_progress` | boolean | No | If true, response includes whether a rebase operation is in progress. |
| `include_diverged_commits_count` | boolean | No | If true, response includes the commits behind the target branch. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Merge Request Commits

**Slug:** `GITLAB_GET_PROJECT_MERGE_REQUEST_COMMITS`

Tool to get commits of a merge request. Use when you need to retrieve all commits associated with a specific merge request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `merge_request_iid` | integer | Yes | Internal ID of the merge request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Merge Requests

**Slug:** `GITLAB_GET_PROJECT_MERGE_REQUESTS`

Tool to retrieve a list of merge requests for a specific project. Use when you need to get all merge requests associated with a project, with options to filter by state, labels, milestones, and other attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `wip` | string ("yes" | "no") | No | Filter merge requests against their wip status. |
| `iids` | array | No | Returns the request having the given iid. |
| `page` | integer | No | The page of results to return. Defaults to 1. |
| `sort` | string ("asc" | "desc") | No | Returns requests sorted in the specified order. Default is desc. |
| `view` | string | No | If simple, returns the iid, URL, title, description, and basic state of merge request. |
| `scope` | string ("created_by_me" | "assigned_to_me" | "all") | No | Returns merge requests for the given scope. Defaults to created_by_me. |
| `state` | string ("opened" | "closed" | "locked" | "merged") | No | Returns merge requests filtered by state. |
| `labels` | string | No | Returns merge requests matching a comma-separated list of labels. None lists all merge requests with no labels. Any lists all merge requests with at least one label. Predefined names are case-insensitive. |
| `search` | string | No | Search merge requests against their title and description. |
| `approved` | string ("yes" | "no") | No | Filters merge requests by their approved status. Requires the mr_approved_filter feature flag, disabled by default. |
| `order_by` | string ("created_at" | "title" | "merged_at" | "updated_at") | No | Returns requests ordered by the specified field. Default is created_at. |
| `per_page` | integer | No | The number of results per page. Defaults to 20. |
| `author_id` | integer | No | Returns merge requests created by the given user id. Mutually exclusive with author_username. Combine with scope=all or scope=assigned_to_me. |
| `milestone` | string | No | Returns merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone. |
| `not_filter` | object | No | Returns merge requests that do not match the parameters supplied. Accepts: labels, milestone, author_id, author_username, assignee_id, assignee_username, reviewer_id, reviewer_username, my_reaction_emoji. |
| `assignee_id` | integer | No | Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee. |
| `environment` | string | No | Returns merge requests deployed to the given environment. |
| `reviewer_id` | integer | No | Returns merge requests which have the user as a reviewer with the given user id. None returns merge requests with no reviewers. Any returns merge requests with any reviewer. Mutually exclusive with reviewer_username. |
| `approver_ids` | array | No | Returns merge requests which have specified all the users with the given id as individual approvers. None returns merge requests without approvers. Any returns merge requests with an approver. Premium and Ultimate only. |
| `created_after` | string | No | Returns merge requests created on or after the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `merge_user_id` | integer | No | Returns the merge requests merged by the user with the given user id. Mutually exclusive with merge_user_username. Introduced in GitLab 17.0. |
| `source_branch` | string | No | Returns merge requests with the given source branch. |
| `target_branch` | string | No | Returns merge requests with the given target branch. |
| `updated_after` | string | No | Returns merge requests updated on or after the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `created_before` | string | No | Returns merge requests created on or before the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `deployed_after` | string | No | Returns merge requests deployed after the given date/time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `updated_before` | string | No | Returns merge requests updated on or before the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `approved_by_ids` | array | No | Returns merge requests approved by all the users with the given id, up to 5 users. None returns merge requests with no approvals. Any returns merge requests with an approval. Premium and Ultimate only. |
| `author_username` | string | No | Returns merge requests created by the given username. Mutually exclusive with author_id. |
| `deployed_before` | string | No | Returns merge requests deployed before the given date/time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. |
| `reviewer_username` | string | No | Returns merge requests which have the user as a reviewer with the given username. None returns merge requests with no reviewers. Any returns merge requests with any reviewer. Mutually exclusive with reviewer_id. |
| `merge_user_username` | string | No | Returns the merge requests merged by the user with the given username. Mutually exclusive with merge_user_id. Introduced in GitLab 17.0. |
| `with_labels_details` | boolean | No | If true, response returns more details for each label in labels field: :name, :color, :description, :description_html, :text_color. Default is false. |
| `with_merge_status_recheck` | boolean | No | If true, this projection requests (but does not guarantee) an asynchronous recalculation of the merge_status field. Enable the restrict_merge_status_recheck feature flag to ignore this attribute when requested by users without at least the Developer role. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Projects

**Slug:** `GITLAB_GET_PROJECTS`

Tool to list all projects accessible to the authenticated user. Supports filtering. Private or group projects may be silently omitted if the token lacks sufficient scopes or group membership.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Iterate incrementally until an empty result is returned to retrieve a complete project inventory. |
| `sort` | string ("asc" | "desc") | No | Return projects sorted in 'asc' or 'desc' order. Default is 'desc'. |
| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
| `search` | string | No | Return list of projects matching search criteria (case-insensitive substring). |
| `simple` | boolean | No | Return only limited fields for each project. |
| `starred` | boolean | No | Limit by projects starred by the current user. |
| `archived` | boolean | No | Limit by archived status. |
| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
| `order_by` | string ("id" | "name" | "path" | "created_at" | "updated_at" | "star_count" | "last_activity_at") | No | Return projects ordered by this field. Default is 'created_at'. |
| `per_page` | integer | No | Number of items per page (1-100). |
| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
| `membership` | boolean | No | Limit by projects that the current user is a member of. |
| `statistics` | boolean | No | Include project statistics. Available to Reporter role and above. |
| `visibility` | string ("private" | "internal" | "public") | No | Limit by project visibility. |
| `min_access_level` | integer | No | Limit by current user minimal role (access_level). |
| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
| `with_custom_attributes` | boolean | No | Include custom attributes in response (admin only). |
| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Merge Request Diffs

**Slug:** `GITLAB_GET_PROJECTS_ID_MERGE_REQUESTS_IID_DIFFS`

Tool to list all diff versions of a merge request. Use when you need to inspect changes across different diff versions after creating or updating a merge request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Repository Branch

**Slug:** `GITLAB_GET_REPOSITORY_BRANCH`

Tool to retrieve information about a specific branch in a project. Use when you need to get details for a single branch.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |
| `branch_name` | string | Yes | The URL-encoded name of the branch. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Repository Branches

**Slug:** `GITLAB_GET_REPOSITORY_BRANCHES`

Retrieves a list of repository branches for a project. Use this when you need to get all branches or search for specific branches within a GitLab project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `regex` | string | No | Return list of branches with names matching a re2 regular expression. |
| `search` | string | No | Return list of branches containing the search string. Use `^term` to find branches that begin with `term`, and `term$` to find branches that end with `term`. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Single Commit

**Slug:** `GITLAB_GET_SINGLE_COMMIT`

Tool to get a specific commit identified by the commit hash or name of a branch or tag. Use this when you need to retrieve detailed information about a single commit in a GitLab project repository.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `sha` | string | Yes | The commit hash or name of a repository branch or tag. |
| `stats` | boolean | No | Include commit stats. Default is true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Single Pipeline

**Slug:** `GITLAB_GET_SINGLE_PIPELINE`

Tool to retrieve details of a single pipeline by its ID within a specified project. Use when you need to get information about a specific CI/CD pipeline.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |
| `pipeline_id` | integer | Yes | The ID of the pipeline. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User

**Slug:** `GITLAB_GET_USER`

Tool to retrieve information about a specific user by their ID. Use when you need to fetch details for a single GitLab user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Preferences

**Slug:** `GITLAB_GET_USER_PREFERENCES`

Tool to get the current user's preferences. Use when you need to retrieve the user's diff display and CI identity JWT settings after authentication.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Users

**Slug:** `GITLAB_GET_USERS`

Tool to retrieve a list of users from GitLab. Use this when you need to find user information, search for specific users, or filter users based on various criteria like activity status or creation date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("asc" | "desc") | No | Return users sorted in 'asc' or 'desc' order. Default is 'desc'. (Admin only) |
| `active` | boolean | No | Filters only active users. Default is false. |
| `admins` | boolean | No | Return only administrators. Default is false. (Admin only) |
| `humans` | boolean | No | Filters only regular users that are not bot or internal users. Default is false. |
| `search` | string | No | Search for users by name, username, or public email. |
| `blocked` | boolean | No | Filters only blocked users. Default is false. |
| `auditors` | boolean | No | Return only auditor users. Default is false. If not included, it returns all users. (Admin only, Premium and Ultimate only) |
| `external` | boolean | No | Filters only external users. Default is false. |
| `order_by` | string ("id" | "name" | "username" | "created_at" | "updated_at") | No | Return users ordered by 'id', 'name', 'username', 'created_at', or 'updated_at' fields. Default is 'id'. (Admin only) |
| `per_page` | integer | No | Number of items per page for pagination. |
| `provider` | string | No | The external provider. (Admin only) |
| `username` | string | No | Get a single user with a specific username. |
| `skip_ldap` | boolean | No | Skip LDAP users. (Admin only, Premium and Ultimate only) |
| `extern_uid` | string | No | Get a single user with a specific external authentication provider UID. (Admin only) |
| `two_factor` | string ("enabled" | "disabled") | No | Filter users by Two-factor authentication. Filter values are 'enabled' or 'disabled'. (Admin only) |
| `created_after` | string | No | Return users created after specified time (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ). |
| `created_before` | string | No | Return users created before specified time (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ). |
| `exclude_active` | boolean | No | Filters only non active users. Default is false. |
| `exclude_humans` | boolean | No | Filters only bot or internal users. Default is false. |
| `exclude_external` | boolean | No | Filters only non external users. Default is false. |
| `exclude_internal` | boolean | No | Filters only non internal users. Default is false. |
| `without_projects` | boolean | No | Filter users without projects. Default is false. (Admin only) |
| `without_project_bots` | boolean | No | Filters user without project bots. Default is false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Status

**Slug:** `GITLAB_GET_USERS_ID_STATUS`

Tool to get a user's status by ID. Use when you need to retrieve a GitLab user's current status message, emoji, and availability after identifying their user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The numeric ID of the GitLab user whose status you want to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Status

**Slug:** `GITLAB_GET_USER_STATUS`

Tool to get the current user's status. Use when displaying or verifying the authenticated user's GitLab status after login.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Support PIN

**Slug:** `GITLAB_GET_USER_SUPPORT_PIN`

Tool to get details of the current user's Support PIN. Use when you need to retrieve the active support PIN and its expiration for the authenticated user.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import project members

**Slug:** `GITLAB_IMPORT_PROJECT_MEMBERS`

Tool to import members from one project to another. Use when migrating members between projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID or URL-encoded path of the target project to receive members. |
| `project_id` | string | Yes | ID or URL-encoded path of the source project to import members from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Group Members

**Slug:** `GITLAB_LIST_ALL_GROUP_MEMBERS`

Tool to list all members of a group including direct, inherited, and invited members. Use when you need a comprehensive membership list beyond direct members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the group. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of items per page for pagination. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Project Members

**Slug:** `GITLAB_LIST_ALL_PROJECT_MEMBERS`

Tool to list all members of a project (direct, inherited, invited). Use when you need the effective membership list including inherited and invited members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Filters results based on a given name, email, or username. Use partial values to widen the scope of the query. |
| `state` | string ("awaiting" | "active") | No | Filter results by member state, one of 'awaiting' or 'active'. Premium and Ultimate only. |
| `per_page` | integer | No | Number of items per page for pagination. |
| `user_ids` | array | No | Filter the results on the given user IDs. |
| `show_seat_info` | boolean | No | Show seat information for users. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Billable Group Members

**Slug:** `GITLAB_LIST_BILLABLE_GROUP_MEMBERS`

Tool to list billable members of a top-level group (including its subgroups and projects). Use when generating billing reports; requires Owner role on the group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the top-level group. Only top-level groups are supported. |
| `page` | integer | No | Page number for pagination (must be ≥ 1). |
| `sort` | string ("access_level_asc" | "access_level_desc" | "last_joined" | "name_asc" | "name_desc" | "oldest_joined" | "oldest_sign_in" | "recent_sign_in" | "last_activity_on_asc" | "last_activity_on_desc") | No | Sort order for results. Supported values: access_level_asc\|access_level_desc\|last_joined\|name_asc\|name_desc\|oldest_joined\|oldest_sign_in\|recent_sign_in\|last_activity_on_asc\|last_activity_on_desc. |
| `search` | string | No | Search string to filter members by name, username, or public email. |
| `per_page` | integer | No | Number of items per page for pagination (must be ≥ 1). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Members

**Slug:** `GITLAB_LIST_GROUP_MEMBERS`

Tool to list direct members of a group. Use when you need to retrieve or filter a group's direct membership.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the group. |
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("access_level_asc" | "access_level_desc") | No | Order results by access level, ascending or descending. |
| `query` | string | No | Filter members by name, username, or email substring. |
| `active` | boolean | No | When true, return only active users. |
| `per_page` | integer | No | Number of results per page (1–100). |
| `relations` | array | No | Membership relation types to include: direct, descendants, inherited, or shared. |
| `skip_users` | array | No | List of user IDs to exclude from the results. |
| `two_factor` | string ("enabled" | "disabled") | No | Filter users by two-factor authentication status. |
| `include_inherited` | boolean | No | Include members inherited from ancestor groups when true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Projects

**Slug:** `GITLAB_LIST_GROUP_PROJECTS`

Tool to list projects within a GitLab group by group ID or full path. Use when discovering projects under a namespace or subgroup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the group. |
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("asc" | "desc") | No | Return projects sorted in ascending or descending order. Default is 'desc'. |
| `owned` | boolean | No | Limit by projects owned by the current user. |
| `search` | string | No | Return list of projects matching the search criteria. |
| `simple` | boolean | No | Return only limited fields for each project. |
| `starred` | boolean | No | Limit by projects starred by the current user. |
| `archived` | boolean | No | Limit by archived status. |
| `order_by` | string ("id" | "name" | "path" | "created_at" | "updated_at" | "similarity" | "star_count" | "last_activity_at") | No | Return projects ordered by this field. Default is 'created_at'. |
| `per_page` | integer | No | Number of items per page (1-100). |
| `visibility` | string ("private" | "internal" | "public") | No | Limit by visibility level. |
| `with_shared` | boolean | No | Include projects shared to this group. Default is true. |
| `min_access_level` | integer | No | Limit to projects where current user has at least this access level. |
| `include_subgroups` | boolean | No | Include projects in subgroups of this group. Default is false. |
| `with_issues_enabled` | boolean | No | Limit by projects with issues feature enabled. Default is false. |
| `with_security_reports` | boolean | No | Return only projects with security reports artifacts. Default is false. |
| `with_custom_attributes` | boolean | No | Include custom attributes in response (administrators only). |
| `with_merge_requests_enabled` | boolean | No | Limit by projects with merge requests feature enabled. Default is false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pending Group Members

**Slug:** `GITLAB_LIST_PENDING_GROUP_MEMBERS`

Tool to list pending members of a group and its subgroups and projects. Use when you need to review users awaiting approval or invited without an account. Call after confirming the top-level group ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the top-level group. |
| `page` | integer | No | Page number for pagination (1-based index). |
| `per_page` | integer | No | Number of items per page for pagination (max 100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pipeline Jobs

**Slug:** `GITLAB_LIST_PIPELINE_JOBS`

Tool to retrieve a list of jobs for a specified pipeline within a project. Use this when you need to inspect the status or details of jobs associated with a particular CI/CD pipeline.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `scope` | string | No | The scope of jobs to show. Can be a single status or a list of statuses. If not provided, all jobs are returned. |
| `pipeline_id` | integer | Yes | The ID of the pipeline. |
| `include_retried` | boolean | No | Include retried jobs in the response. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Groups

**Slug:** `GITLAB_LIST_PROJECT_GROUPS`

Tool to list ancestor groups of a project. Use when you need to retrieve all groups a project belongs to or is shared with.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number of the results to retrieve. |
| `search` | string | No | Search for specific groups by name. |
| `per_page` | integer | No | Number of items to return per page. |
| `skip_groups` | array | No | Skip the group IDs passed. |
| `with_shared` | boolean | No | Include projects shared with this group. Default is false. |
| `shared_visible_only` | boolean | No | Limit to shared groups user has access to. |
| `shared_min_access_level` | integer | No | Limit to shared groups with at least this access level. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Invited Groups

**Slug:** `GITLAB_LIST_PROJECT_INVITED_GROUPS`

Tool to list groups invited to a project. Use when auditing which groups have access to a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of items to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Issues

**Slug:** `GITLAB_LIST_PROJECT_ISSUES`

Tool to list issues for a project with filtering options (state, labels, search, assignee, author, etc.). Use when you need to browse, filter, or triage project issues to confirm IIDs or decide what to update/close.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Project identifier: numeric ID (e.g., 123) or namespace path in format 'namespace/project-name' (e.g., 'my-group/my-project'). Path must use forward slash / as separator. URL-encoding is handled automatically. |
| `iids` | array | No | Return specific issues by their internal IDs. |
| `page` | integer | No | The page of results to return. Defaults to 1. |
| `sort` | string ("asc" | "desc") | No | Order direction. Default: desc. |
| `scope` | string ("created_by_me" | "assigned_to_me" | "all") | No | Filter scope. Default: all. |
| `state` | string ("all" | "opened" | "closed") | No | Filter by issue state. |
| `labels` | string | No | Comma-separated label names; issues must have all specified labels. |
| `search` | string | No | Search in title and description. |
| `weight` | integer | No | Filter by weight value. Premium/Ultimate only. |
| `epic_id` | integer | No | Issues associated with a specific epic ID. Premium/Ultimate only. |
| `due_date` | string ("0" | "any" | "today" | "tomorrow" | "overdue" | "week" | "month" | "next_month_and_previous_two_weeks") | No | Filter by due date status. |
| `order_by` | string ("created_at" | "updated_at" | "priority" | "due_date" | "relative_position" | "label_priority" | "milestone_due" | "popularity" | "weight") | No | Sort by the specified field. Default: created_at. |
| `per_page` | integer | No | The number of results per page. Defaults to 20. |
| `author_id` | integer | No | Return issues created by a specific user ID. |
| `milestone` | string | No | Filter by milestone title. |
| `issue_type` | string ("issue" | "incident" | "test_case" | "task") | No | Filter by issue type. |
| `assignee_id` | string | No | Return issues assigned to a specific user ID. Use the string 'None' for unassigned issues or 'Any' for issues assigned to someone. |
| `confidential` | boolean | No | Filter confidential or public issues. |
| `iteration_id` | integer | No | Issues assigned to a specific iteration. Premium/Ultimate only. |
| `created_after` | string | No | Issues created on or after this time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `updated_after` | string | No | Issues updated on or after this time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `created_before` | string | No | Issues created on or before this time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `updated_before` | string | No | Issues updated on or before this time. Expected in ISO 8601 format (2019-03-15T08:00:00Z). |
| `author_username` | string | No | Return issues created by a specific username. |
| `iteration_title` | string | No | Issues assigned to iteration with given title. Premium/Ultimate only. |
| `assignee_username` | array | No | Return issues assigned to given username(s). |
| `my_reaction_emoji` | string | No | Issues reacted to by authenticated user with specified emoji. |
| `with_labels_details` | boolean | No | Return detailed label information (name, color, description, HTML description, text color). Default: false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Pipelines

**Slug:** `GITLAB_LIST_PROJECT_PIPELINES`

Tool to retrieve a list of pipelines for a specified project. Use when you need to get information about CI/CD pipelines, such as their status, source, or creation/update times.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `ref` | string | No | The ref of pipelines. |
| `sha` | string | No | The SHA of pipelines. |
| `name` | string | No | Return pipelines with the specified name. |
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("asc" | "desc") | No | Sort pipelines in 'asc' or 'desc' order. |
| `scope` | string ("running" | "pending" | "finished" | "branches" | "tags") | No | The scope of pipelines, one of: 'running', 'pending', 'finished', 'branches', 'tags'. |
| `source` | string | No | The pipeline source. To return child pipelines, set to 'parent_pipeline'. |
| `status` | string ("created" | "waiting_for_resource" | "preparing" | "pending" | "running" | "success" | "failed" | "canceled" | "skipped" | "manual" | "scheduled") | No | The status of pipelines. |
| `order_by` | string ("id" | "status" | "ref" | "updated_at" | "user_id") | No | Order pipelines by 'id', 'status', 'ref', 'updated_at' or 'user_id'. |
| `per_page` | integer | No | Number of items per page for pagination. |
| `username` | string | No | The username of the user who triggered pipelines. |
| `yaml_errors` | boolean | No | Returns pipelines with invalid configurations. |
| `created_after` | string | No | Return pipelines created after the specified date (ISO 8601 format). |
| `updated_after` | string | No | Return pipelines updated after the specified date (ISO 8601 format). |
| `created_before` | string | No | Return pipelines created before the specified date (ISO 8601 format). |
| `updated_before` | string | No | Return pipelines updated before the specified date (ISO 8601 format). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Shareable Groups

**Slug:** `GITLAB_LIST_PROJECT_SHAREABLE_GROUPS`

Tool to list groups that can be shared with a project. Use before sharing a project to fetch eligible groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number for pagination. |
| `search` | string | No | Search term to filter groups by name or path. |
| `per_page` | integer | No | Number of items per page for pagination. |
| `skip_groups` | array | No | List of group IDs to exclude from the results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Repository Tags

**Slug:** `GITLAB_LIST_PROJECT_TAGS`

Tool to retrieve a list of repository tags for a specified project. Use when you need to get all tags associated with a project in GitLab.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `page` | integer | No | Page number of the results to retrieve. |
| `sort` | string ("asc" | "desc") | No | Return tags sorted in the specified order. Default is `desc`. |
| `search` | string | No | Return a list of tags matching the search criteria. You can use `^term` and `term$` to find tags that begin and end with `term`. |
| `order_by` | string ("name" | "updated" | "version") | No | Return tags ordered by the specified field. Default is `updated`. |
| `per_page` | integer | No | Number of items to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Transfer Locations

**Slug:** `GITLAB_LIST_PROJECT_TRANSFER_LOCATIONS`

Tool to list namespaces available for project transfer. Use when you need to determine which groups a project can be transferred into.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `search` | string | No | The group names to search for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List project users

**Slug:** `GITLAB_LIST_PROJECT_USERS`

Tool to list users of a project. Use after you have a project ID and want to retrieve its users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `search` | string | No | Filter users by name or username. |
| `skip_users` | array | No | List of user IDs to exclude from the result. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Repository Commits

**Slug:** `GITLAB_LIST_REPOSITORY_COMMITS`

Tool to get a list of repository commits in a project. Use when you need to retrieve commit history for a specific project, branch, or time range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `all` | boolean | No | Retrieve every commit from the repository. When set to true, the ref_name parameter is ignored. |
| `path` | string | No | The file path to filter commits by. |
| `order` | string ("default" | "topo") | No | List commits in order. Possible values: default, topo. Defaults to default, the commits are shown in reverse chronological order. |
| `since` | string | No | Only commits after or on this date are returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ. |
| `until` | string | No | Only commits before or on this date are returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ. |
| `author` | string | No | Search commits by commit author. |
| `ref_name` | string | No | The name of a repository branch, tag or revision range, or if not given the default branch. |
| `trailers` | boolean | No | Parse and include Git trailers for every commit. |
| `project_id` | string | Yes | The ID or URL-encoded path of the project. |
| `with_stats` | boolean | No | Stats about each commit are added to the response. |
| `first_parent` | boolean | No | Follow only the first parent commit upon seeing a merge commit. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Projects

**Slug:** `GITLAB_LIST_USER_PROJECTS`

Tool to list projects owned by a specific user. Use after obtaining target user identity to fetch owned projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or username of the user whose projects to list. |
| `page` | integer | No | Page number for pagination. |
| `sort` | string ("asc" | "desc") | No | Return projects sorted in asc or desc order. Default is 'desc'. |
| `owned` | boolean | No | Limit by projects explicitly owned by the specified user. |
| `search` | string | No | Return list of projects matching search criteria (case-insensitive substring). |
| `simple` | boolean | No | Return only limited fields for each project. |
| `starred` | boolean | No | Limit by projects starred by the specified user. |
| `archived` | boolean | No | Limit by archived status. |
| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
| `order_by` | string ("id" | "name" | "path" | "created_at" | "updated_at" | "star_count" | "last_activity_at") | No | Return projects ordered by this field. Default is 'created_at'. |
| `per_page` | integer | No | Number of items per page (1-100). |
| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
| `membership` | boolean | No | Limit by projects that the current user is a member of. |
| `statistics` | boolean | No | Include project statistics. Available to Reporter role and above. |
| `visibility` | string ("private" | "internal" | "public") | No | Limit by project visibility. |
| `updated_after` | string | No | Limit projects updated after given time (ISO 8601). |
| `updated_before` | string | No | Limit projects updated before given time (ISO 8601). |
| `min_access_level` | integer | No | Limit by current user minimal role (access_level). |
| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
| `with_custom_attributes` | boolean | No | Include custom attributes in response (admin only). |
| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Support PIN

**Slug:** `GITLAB_POST_USER_SUPPORT_PIN`

Tool to create a support PIN for your authenticated user. Use when GitLab Support requests a PIN to verify your identity.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User Preferences

**Slug:** `GITLAB_PUT_USER_PREFERENCES`

Tool to update the current user's preferences. Use when adjusting default diff viewing and CI identity settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view_diffs_file_by_file` | boolean | Yes | Flag indicating the user sees only one file diff per page. |
| `show_whitespace_in_diffs` | boolean | Yes | Flag indicating the user sees whitespace changes in diffs. |
| `pass_user_identities_to_ci_jwt` | boolean | Yes | Flag indicating the user passes their external identities as CI information. Internal use only; do not expose to third-party services. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set User Status

**Slug:** `GITLAB_SET_USER_STATUS`

Tool to set the current user's status. Use when you need to update availability or convey current mood on GitLab.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `emoji` | string | No | Name of the emoji to use as status. Defaults to 'speech_balloon' if omitted. |
| `message` | string | No | Status message to display. Max 100 characters; can contain emoji codes. |
| `clear_status_after` | string ("30_minutes" | "3_hours" | "8_hours" | "1_day" | "3_days" | "7_days" | "30_days") | No | Automatically clear status after the specified time interval. Allowed values: 30_minutes, 3_hours, 8_hours, 1_day, 3_days, 7_days, 30_days. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Share Project With Group

**Slug:** `GITLAB_SHARE_PROJECT_WITH_GROUP`

Tool to share a project with a group. Use when you need to grant a group specific access level to a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `group_id` | integer | Yes | The ID of the group to share with. |
| `expires_at` | string | No | Expiration date for the group share in YYYY-MM-DD format (ISO 8601). |
| `group_access` | integer | Yes | The access level to grant the group. One of GitLab's access levels, e.g., 30 for Developer, 40 for Maintainer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start Housekeeping Task

**Slug:** `GITLAB_START_PROJECT_HOUSEKEEPING`

Tool to start the housekeeping task for a project. Use when you need to trigger manual maintenance or pruning on a repository.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or URL-encoded path of the project. |
| `task` | string ("prune" | "eager") | No | Type of housekeeping task to perform. `prune` triggers a manual prune of unreachable objects; `eager` triggers eager housekeeping. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project Issue

**Slug:** `GITLAB_UPDATE_PROJECT_ISSUE`

Tool to update an existing issue in a GitLab project (title, description, labels, assignees, state, etc.). Use when you need to modify issue details, close/reopen issues, or manage labels and assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The global ID or URL-encoded path of the project. |
| `title` | string | No | The title of the issue. |
| `labels` | string | No | Comma-separated label names to replace the entire label set. Set to empty string to remove all labels. |
| `weight` | integer | No | The weight of the issue. Valid values are greater than or equal to 0. Premium and Ultimate only. |
| `epic_id` | integer | No | ID of the epic to add the issue to. Valid values are greater than or equal to 0. Premium and Ultimate only. |
| `due_date` | string | No | The due date. Date time string in the format YYYY-MM-DD. |
| `issue_iid` | integer | Yes | The internal ID of the project's issue. |
| `add_labels` | string | No | Comma-separated label names to add to the issue without affecting existing labels. |
| `issue_type` | string ("issue" | "incident" | "test_case" | "task") | No | The type of issue. One of 'issue', 'incident', 'test_case', or 'task'. |
| `updated_at` | string | No | When the issue was updated. Date time string, ISO 8601 formatted. Requires administrator or project/group owner rights. |
| `description` | string | No | The description of the issue. Limited to 1,048,576 characters. |
| `state_event` | string ("close" | "reopen") | No | State event to perform on the issue. Use 'close' to close the issue or 'reopen' to reopen it. |
| `assignee_ids` | array | No | The IDs of the users to assign the issue to. Set to [0] or provide empty array to unassign all. |
| `confidential` | boolean | No | Set an issue to be confidential. |
| `milestone_id` | integer | No | The global ID of a milestone to assign to the issue. Set to 0 to unassign milestone. |
| `remove_labels` | string | No | Comma-separated label names to remove from the issue. |
| `discussion_locked` | boolean | No | Flag indicating if the issue's discussion is locked. If the discussion is locked, only project members can add or edit comments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
