> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agent-auth`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# GitLab

<div class="grid grid-cols-5 gap-4 items-center">
 <div class="col-span-4">
  Connect to GitLab to manage repositories, issues, merge requests, pipelines, CI/CD, users, groups, and DevOps workflows.
 </div>
 <div class="flex justify-center">
  <img src="https://cdn.scalekit.com/sk-connect/assets/provider-icons/gitlab.svg" width="64" height="64" alt="GitLab logo" />
 </div>
</div>

Supports authentication: OAuth 2.0

## Set up the agent connector

<SetupGitlabSection />

## Tool list

## `gitlab_branch_create`

Create a new branch in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `branch` | string | Yes | The name of the new branch. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `ref` | string | Yes | The source branch, tag, or commit SHA to branch from. |

## `gitlab_branch_delete`

Delete a branch from a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `branch` | string | Yes | The name of the branch to delete. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_branch_get`

Get details of a specific branch in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `branch` | string | Yes | The name of the branch. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_branches_list`

List repository branches for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Filter branches by name. |

## `gitlab_commit_comment_create`

Add a comment to a specific commit.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `line` | integer | No | Line number for an inline comment. |
| `note` | string | Yes | The comment text. |
| `path` | string | No | File path for an inline comment. |
| `sha` | string | Yes | The commit SHA. |

## `gitlab_commit_comments_list`

List comments on a specific commit.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `sha` | string | Yes | The commit SHA. |

## `gitlab_commit_diff_get`

Get the diff of a specific commit.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `sha` | string | Yes | The commit SHA. |

## `gitlab_commit_get`

Get details of a specific commit by its SHA.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `sha` | string | Yes | The commit SHA. |

## `gitlab_commits_list`

List repository commits for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `author` | string | No | Filter commits by author name or email. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `path` | string | No | Filter commits by file path. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `ref_name` | string | No | The branch or tag name to list commits from. |
| `since` | string | No | Only commits after this date are returned (ISO 8601 format). |
| `until` | string | No | Only commits before this date are returned (ISO 8601 format). |

## `gitlab_compare_refs`

Compare two refs (branches, tags, or commits) in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `from` | string | Yes | The source branch, tag, or commit SHA to compare from. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `straight` | string | No | Comparison method: 'true' for straight diff, 'false' for merge base. |
| `to` | string | Yes | The target branch, tag, or commit SHA to compare to. |

## `gitlab_current_user_get`

Get the currently authenticated user's profile.

## `gitlab_current_user_ssh_keys_list`

List SSH keys for the currently authenticated user.

## `gitlab_deploy_key_create`

Create a new deploy key for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `can_push` | string | No | If 'true', the deploy key has write access. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key` | string | Yes | The SSH public key content. |
| `title` | string | Yes | A descriptive title for the deploy key. |

## `gitlab_deploy_key_delete`

Delete a deploy key from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key_id` | integer | Yes | The numeric ID of the deploy key to delete. |

## `gitlab_deploy_keys_list`

List deploy keys for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_file_create`

Create a new file in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `author_email` | string | No | The author's email for the commit. |
| `author_name` | string | No | The author's name for the commit. |
| `branch` | string | Yes | The branch to create the file on. |
| `commit_message` | string | Yes | The commit message for creating this file. |
| `content` | string | Yes | The file content (plain text or base64 encoded). |
| `encoding` | string | No | The encoding type: 'text' or 'base64'. |
| `file_path` | string | Yes | URL-encoded file path in the repository. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_file_delete`

Delete a file from a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `branch` | string | Yes | The branch to delete the file from. |
| `commit_message` | string | Yes | The commit message for deleting this file. |
| `file_path` | string | Yes | URL-encoded file path in the repository. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_file_get`

Get a file's content and metadata from a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `file_path` | string | Yes | URL-encoded file path in the repository. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `ref` | string | Yes | The branch, tag, or commit SHA to get the file from. |

## `gitlab_file_update`

Update an existing file in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `branch` | string | Yes | The branch to update the file on. |
| `commit_message` | string | Yes | The commit message for updating this file. |
| `content` | string | Yes | The new file content. |
| `file_path` | string | Yes | URL-encoded file path in the repository. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `last_commit_id` | string | No | Last known file commit ID (for conflict detection). |

## `gitlab_global_search`

Search globally across GitLab for projects, issues, merge requests, and more.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `scope` | string | Yes | The scope to search in. |
| `search` | string | Yes | The search query string. |

## `gitlab_group_create`

Create a new GitLab group or subgroup.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Optional group description. |
| `name` | string | Yes | The name of the group. |
| `parent_id` | integer | No | ID of the parent group (for subgroups). |
| `path` | string | Yes | URL-friendly path slug for the group. |
| `visibility` | string | No | Visibility level: private, internal, or public. |

## `gitlab_group_delete`

Delete a GitLab group. This is an asynchronous operation (returns 202 Accepted).

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |

## `gitlab_group_get`

Get a specific group by numeric ID or URL-encoded path.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |

## `gitlab_group_member_add`

Add a member to a GitLab group.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `access_level` | integer | Yes | Access level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner. |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |
| `user_id` | integer | Yes | The numeric ID of the user to add. |

## `gitlab_group_member_remove`

Remove a member from a GitLab group.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |
| `user_id` | integer | Yes | The numeric ID of the user to remove. |

## `gitlab_group_members_list`

List members of a GitLab group.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `query` | string | No | Filter members by name. |

## `gitlab_group_projects_list`

List projects belonging to a GitLab group.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Filter projects by name. |
| `visibility` | string | No | Filter by visibility level: public, internal, or private. |

## `gitlab_group_update`

Update a GitLab group's settings.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated group description. |
| `id` | string | Yes | The group ID (numeric) or URL-encoded path. |
| `name` | string | No | New name for the group. |
| `visibility` | string | No | New visibility level: private, internal, or public. |

## `gitlab_groups_list`

List groups accessible to the authenticated user.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `min_access_level` | integer | No | Minimum access level filter (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner). |
| `owned` | string | No | If 'true', limits to groups explicitly owned by the current user. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Search groups by name. |

## `gitlab_issue_create`

Create a new issue in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_ids` | string | No | Comma-separated list of user IDs to assign. |
| `description` | string | No | Detailed description of the issue (Markdown supported). |
| `due_date` | string | No | Due date for the issue in YYYY-MM-DD format. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `labels` | string | No | Comma-separated list of label names to apply. |
| `milestone_id` | integer | No | The ID of the milestone to assign. |
| `title` | string | Yes | The title of the issue. |

## `gitlab_issue_delete`

Delete an issue from a GitLab project (admin only).

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue within the project. |

## `gitlab_issue_get`

Get a specific issue by its internal ID (IID).

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue within the project. |

## `gitlab_issue_labels_list`

List labels for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_issue_note_create`

Add a comment to a specific issue.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | string | Yes | The comment text (Markdown supported). |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue. |

## `gitlab_issue_note_delete`

Delete a comment on a specific issue.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue. |
| `note_id` | integer | Yes | The ID of the note to delete. |

## `gitlab_issue_note_update`

Update a comment on a specific issue.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | string | Yes | The updated comment text (Markdown supported). |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue. |
| `note_id` | integer | Yes | The ID of the note to update. |

## `gitlab_issue_notes_list`

List comments (notes) on a specific issue.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_issue_update`

Update an existing issue in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_ids` | string | No | Comma-separated list of user IDs to assign. |
| `description` | string | No | Updated description of the issue. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issue_iid` | integer | Yes | The internal ID of the issue within the project. |
| `labels` | string | No | Comma-separated list of label names. |
| `state_event` | string | No | State transition: 'close' to close, 'reopen' to reopen. |
| `title` | string | No | New title for the issue. |

## `gitlab_issues_list`

List issues for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | integer | No | Filter issues by assignee user ID. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `labels` | string | No | Filter issues by comma-separated label names. |
| `milestone` | string | No | Filter issues by milestone title. |
| `order_by` | string | No | Order issues by field (created_at, updated_at, priority). |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Search issues by title or description. |
| `sort` | string | No | Sort order: asc or desc. |
| `state` | string | No | Filter issues by state: opened, closed, or all. |

## `gitlab_job_artifacts_download`

Download the artifacts archive of a specific CI/CD job.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `job_id` | integer | Yes | The numeric ID of the job. |

## `gitlab_job_cancel`

Cancel a specific CI/CD job.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `job_id` | integer | Yes | The numeric ID of the job to cancel. |

## `gitlab_job_get`

Get details of a specific CI/CD job.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `job_id` | integer | Yes | The numeric ID of the job. |

## `gitlab_job_log_get`

Get the log (trace) output of a specific CI/CD job.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `job_id` | integer | Yes | The numeric ID of the job. |

## `gitlab_job_retry`

Retry a specific CI/CD job.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `job_id` | integer | Yes | The numeric ID of the job to retry. |

## `gitlab_jobs_list`

List all jobs for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `scope` | string | No | Filter jobs by scope/status. |

## `gitlab_label_create`

Create a new label in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | Yes | The color for the label in hex format (e.g. #FF0000). |
| `description` | string | No | Optional description for the label. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `name` | string | Yes | The name of the label. |

## `gitlab_merge_request_approvals_get`

Get the approval state of a specific merge request.

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

## `gitlab_merge_request_approve`

Approve a merge request.

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

## `gitlab_merge_request_commits_list`

List commits in a specific merge request.

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

## `gitlab_merge_request_create`

Create a new merge request in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | integer | No | The numeric ID of the user to assign. |
| `description` | string | No | Description for the merge request (Markdown supported). |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `labels` | string | No | Comma-separated list of label names. |
| `remove_source_branch` | string | No | If 'true', removes the source branch after merging. |
| `source_branch` | string | Yes | The source branch name. |
| `squash` | string | No | If 'true', squashes all commits into one on merge. |
| `target_branch` | string | Yes | The target branch name. |
| `title` | string | Yes | The title of the merge request. |

## `gitlab_merge_request_diff_get`

Get the diffs of a specific merge request.

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

## `gitlab_merge_request_get`

Get a specific merge request by its internal ID (IID).

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

## `gitlab_merge_request_merge`

Merge an approved merge request in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `merge_commit_message` | string | No | Custom merge commit message. |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |
| `should_remove_source_branch` | string | No | If 'true', removes the source branch after merging. |
| `squash` | string | No | If 'true', squashes all commits into one. |

## `gitlab_merge_request_note_create`

Add a comment to a specific merge request.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | string | Yes | The comment text (Markdown supported). |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |

## `gitlab_merge_request_notes_list`

List comments on a specific merge request.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_merge_request_update`

Update an existing merge request in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | integer | No | The numeric ID of the user to assign. |
| `description` | string | No | Updated description for the merge request. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `labels` | string | No | Comma-separated list of label names. |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |
| `state_event` | string | No | State transition: 'close' to close, 'reopen' to reopen. |
| `target_branch` | string | No | New target branch name. |
| `title` | string | No | New title for the merge request. |

## `gitlab_merge_requests_list`

List merge requests for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `labels` | string | No | Filter by comma-separated label names. |
| `order_by` | string | No | Order MRs by field (created_at, updated_at, title). |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Search MRs by title or description. |
| `sort` | string | No | Sort order: asc or desc. |
| `source_branch` | string | No | Filter by source branch name. |
| `state` | string | No | Filter by state: opened, closed, locked, merged, or all. |
| `target_branch` | string | No | Filter by target branch name. |

## `gitlab_milestone_create`

Create a new milestone in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Optional description for the milestone. |
| `due_date` | string | No | Due date for the milestone in YYYY-MM-DD format. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `start_date` | string | No | Start date for the milestone in YYYY-MM-DD format. |
| `title` | string | Yes | The title of the milestone. |

## `gitlab_milestone_delete`

Delete a milestone from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `milestone_id` | integer | Yes | The numeric ID of the milestone. |

## `gitlab_milestone_get`

Get a specific project milestone.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `milestone_id` | integer | Yes | The numeric ID of the milestone. |

## `gitlab_milestone_update`

Update an existing milestone in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated description for the milestone. |
| `due_date` | string | No | Updated due date in YYYY-MM-DD format. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `milestone_id` | integer | Yes | The numeric ID of the milestone. |
| `state_event` | string | No | State transition: 'close' to close, 'activate' to reopen. |
| `title` | string | No | New title for the milestone. |

## `gitlab_milestones_list`

List milestones for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Filter milestones by title. |
| `state` | string | No | Filter milestones by state: active or closed. |

## `gitlab_namespaces_list`

List namespaces available to the current user (personal namespaces and groups).

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Filter namespaces by name. |

## `gitlab_pipeline_cancel`

Cancel a running pipeline.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `pipeline_id` | integer | Yes | The numeric ID of the pipeline to cancel. |

## `gitlab_pipeline_create`

Trigger a new CI/CD pipeline for a specific branch or tag. Note: GitLab.com requires identity verification on the account before pipelines can be triggered via API. Ensure the authenticated user has verified their identity at gitlab.com/-/profile/verify.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `ref` | string | Yes | The branch or tag name to run the pipeline on. |
| `variables` | string | No | JSON array of pipeline variables, each with 'key' and 'value' fields. |

## `gitlab_pipeline_delete`

Delete a pipeline from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `pipeline_id` | integer | Yes | The numeric ID of the pipeline to delete. |

## `gitlab_pipeline_get`

Get details of a specific pipeline.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `pipeline_id` | integer | Yes | The numeric ID of the pipeline. |

## `gitlab_pipeline_jobs_list`

List jobs for a specific pipeline.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `pipeline_id` | integer | Yes | The numeric ID of the pipeline. |
| `scope` | string | No | Filter jobs by scope. |

## `gitlab_pipeline_retry`

Retry a failed pipeline.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `pipeline_id` | integer | Yes | The numeric ID of the pipeline to retry. |

## `gitlab_pipelines_list`

List pipelines for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `ref` | string | No | Filter pipelines by branch or tag name. |
| `sha` | string | No | Filter pipelines by commit SHA. |
| `status` | string | No | Filter by pipeline status. |

## `gitlab_project_create`

Create a new GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | A short description of the project. |
| `initialize_with_readme` | string | No | If 'true', initializes the repository with a README. |
| `name` | string | Yes | The name of the project. |
| `visibility` | string | No | Visibility level: private, internal, or public. Defaults to private. |

## `gitlab_project_delete`

Delete a GitLab project. This is an asynchronous operation (returns 202 Accepted).

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject'). |

## `gitlab_project_fork`

Fork a GitLab project into a namespace.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path to fork. |
| `name` | string | No | The name for the forked project. |
| `namespace_id` | integer | No | The ID of the namespace to fork the project into. |
| `path` | string | No | The URL path (slug) for the forked project. Must be unique in the target namespace. If omitted, GitLab uses the source project path which may already be taken. |

## `gitlab_project_forks_list`

List forks of a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_project_get`

Get a specific project by numeric ID or URL-encoded namespace/project path.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject'). |

## `gitlab_project_member_add`

Add a member to a GitLab project with a specified access level.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `access_level` | integer | Yes | Access level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `user_id` | integer | Yes | The numeric ID of the user to add. |

## `gitlab_project_member_remove`

Remove a member from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `user_id` | integer | Yes | The numeric ID of the user to remove. |

## `gitlab_project_members_list`

List members of a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `query` | string | No | Filter members by name. |

## `gitlab_project_search`

Search within a specific GitLab project for issues, merge requests, commits, code, and more.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `ref` | string | No | The branch or tag name to search (for blobs or commits scope). |
| `scope` | string | Yes | The scope to search in within the project. |
| `search` | string | Yes | The search query string. |

## `gitlab_project_snippet_create`

Create a new snippet in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | Yes | The content of the snippet. |
| `description` | string | No | Optional description for the snippet. |
| `file_name` | string | Yes | The filename for the snippet. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `title` | string | Yes | The title of the snippet. |
| `visibility` | string | No | Visibility level: private, internal, or public. |

## `gitlab_project_snippet_get`

Get a specific snippet from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `snippet_id` | integer | Yes | The numeric ID of the snippet. |

## `gitlab_project_snippets_list`

List all snippets in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_project_star`

Star a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_project_unstar`

Unstar a GitLab project. Returns 200 with project data if successfully unstarred, or 304 if the project was not starred.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_project_update`

Update an existing GitLab project's settings.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `default_branch` | string | No | The default branch name for the project. |
| `description` | string | No | A short description of the project. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject'). |
| `name` | string | No | New name for the project. |
| `visibility` | string | No | New visibility level: private, internal, or public. |

## `gitlab_project_variable_create`

Create a new CI/CD variable for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `environment_scope` | string | No | The environment scope for this variable (default '*'). |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key` | string | Yes | The variable key name. |
| `masked` | string | No | If 'true', masks the variable in job logs. |
| `protected` | string | No | If 'true', the variable is only available on protected branches/tags. |
| `value` | string | Yes | The value of the variable. |
| `variable_type` | string | No | The variable type: env_var (default) or file. |

## `gitlab_project_variable_delete`

Delete a CI/CD variable from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key` | string | Yes | The variable key name to delete. |

## `gitlab_project_variable_get`

Get a specific CI/CD variable for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key` | string | Yes | The variable key name. |

## `gitlab_project_variable_update`

Update an existing CI/CD variable for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `key` | string | Yes | The variable key name to update. |
| `masked` | string | No | If 'true', masks the variable in job logs. |
| `protected` | string | No | If 'true', the variable is only available on protected branches/tags. |
| `value` | string | Yes | The new value of the variable. |

## `gitlab_project_variables_list`

List all CI/CD variables for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_project_webhook_create`

Create a new webhook for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `issues_events` | string | No | If 'true', trigger the webhook on issue events. |
| `merge_requests_events` | string | No | If 'true', trigger on merge request events. |
| `pipeline_events` | string | No | If 'true', trigger on pipeline events. |
| `push_events` | string | No | If 'true', trigger the webhook on push events. |
| `token` | string | No | Secret token to validate webhook payloads. |
| `url` | string | Yes | The URL to send webhook payloads to. |

## `gitlab_project_webhook_delete`

Delete a webhook from a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `hook_id` | integer | Yes | The numeric ID of the webhook to delete. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_project_webhook_get`

Get a specific webhook for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `hook_id` | integer | Yes | The numeric ID of the webhook. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_project_webhook_update`

Update an existing webhook for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `hook_id` | integer | Yes | The numeric ID of the webhook to update. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `merge_requests_events` | string | No | If 'true', trigger on merge request events. |
| `pipeline_events` | string | No | If 'true', trigger on pipeline events. |
| `push_events` | string | No | If 'true', trigger on push events. |
| `url` | string | Yes | The new URL to send webhook payloads to. |

## `gitlab_project_webhooks_list`

List all webhooks configured for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |

## `gitlab_projects_list`

List all projects accessible to the authenticated user. Supports filtering by search, ownership, membership, and visibility.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `membership` | string | No | If 'true', limits by projects where the user is a member. |
| `order_by` | string | No | Order projects by a field (e.g. id, name, created_at). |
| `owned` | string | No | If 'true', limits by projects explicitly owned by the current user. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Search query to filter projects by name. |
| `sort` | string | No | Sort order: 'asc' or 'desc'. |
| `visibility` | string | No | Filter by visibility level: public, internal, or private. |

## `gitlab_release_create`

Create a new release in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | Yes | Release notes in Markdown format. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `name` | string | Yes | The release name. |
| `ref` | string | No | The branch or commit to create the tag from (only if tag does not exist). |
| `tag_name` | string | Yes | The tag name for the release. |

## `gitlab_release_delete`

Delete a release from a GitLab project. Returns the deleted release object.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `tag_name` | string | Yes | The tag name of the release to delete. |

## `gitlab_release_get`

Get a specific release by tag name.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `tag_name` | string | Yes | The tag name for the release. |

## `gitlab_release_update`

Update an existing release in a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated release notes in Markdown format. |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `name` | string | No | Updated release name. |
| `tag_name` | string | Yes | The tag name of the release to update. |

## `gitlab_releases_list`

List releases for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |

## `gitlab_repository_tree_list`

List files and directories in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `page` | integer | No | Page number for pagination. |
| `path` | string | No | Folder path to list files from. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `recursive` | string | No | If 'true', lists files recursively. |
| `ref` | string | No | The branch, tag, or commit SHA to list files from. |

## `gitlab_ssh_key_add`

Add an SSH key for the currently authenticated user.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | Yes | The SSH public key content. |
| `title` | string | Yes | A descriptive title for the SSH key. |

## `gitlab_tag_create`

Create a new tag in a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `message` | string | No | Message for an annotated tag. |
| `ref` | string | Yes | The commit SHA, branch name, or another tag name to create the tag from. |
| `release_description` | string | No | Release notes for the tag. |
| `tag_name` | string | Yes | The name of the new tag. |

## `gitlab_tag_delete`

Delete a tag from a GitLab repository.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `tag_name` | string | Yes | The name of the tag to delete. |

## `gitlab_tag_get`

Get details of a specific repository tag.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `tag_name` | string | Yes | The name of the tag. |

## `gitlab_tags_list`

List repository tags for a GitLab project.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The project ID (numeric) or URL-encoded path. |
| `order_by` | string | No | Order tags by field (name, updated, version). |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Filter tags by name. |
| `sort` | string | No | Sort order: asc or desc. |

## `gitlab_user_get`

Get a specific user by ID.

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

## `gitlab_user_projects_list`

List projects owned by a specific user.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `user_id` | integer | Yes | The numeric ID of the user whose projects to list. |

## `gitlab_users_list`

List users. Supports filtering by search term, username, and active status.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `active` | string | No | Filter by active status. Use 'true' or 'false'. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of results per page (max 100). |
| `search` | string | No | Search users by name or email. |
| `username` | string | No | Filter by exact username. |

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
