GitLab connector
OAuth 2.0Developer ToolsCollaborationConnect to GitLab to manage repositories, issues, merge requests, pipelines, CI/CD, users, groups, and DevOps workflows.
GitLab connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your GitLab credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Scalekit environment with the GitLab connector so Scalekit handles the OAuth 2.0 flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Set up auth redirects
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find GitLab and click Create.
-
Click Use your own credentials and copy the redirect URI. It looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.
-
Go to GitLab Applications settings (User Settings → Applications) and open or create your OAuth application.
-
Paste the copied URI into the Redirect URI field and click Save application.

-
Under Scopes, select the permissions your agent needs:
Scope Access granted Use when apiFull read/write access to all API endpoints Most tools — recommended for full access read_userCurrent user’s profile gitlab_current_user_getonlyread_apiRead-only access to all API endpoints Read-only agents read_repositoryRead access to repositories File and commit reads only write_repositoryPush access to repositories gitlab_file_create,gitlab_file_update,gitlab_branch_create
-
-
Get client credentials
After saving the application, GitLab shows the Application ID and Secret on the application detail page:

- Application ID — listed on the app’s main settings page
- Secret — shown only once after creation; if you lose it, regenerate it from the same page
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your credentials:
- Client ID — paste your GitLab Application ID
- Client Secret — paste your GitLab Secret

-
Click Save.
-
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'gitlab'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize GitLab:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'gitlab_current_user_get',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "gitlab"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize GitLab:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="gitlab_current_user_get",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- List wiki pages, todos, snippets — Lists all wiki pages for a project
- Update wiki page, user, snippet — Updates the title, content, or format of an existing wiki page
- Get wiki page, user status, snippet — Retrieves a specific wiki page for a project by its slug
- Delete wiki page, user, snippet — Deletes a wiki page from a project
- Create wiki page, user, snippet — Creates a new wiki page for a project
- Unblock user — Unblocks a previously-blocked user account, restoring their ability to sign in
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
gitlab_branch_create#Create a new branch in a GitLab repository.3 params
Create a new branch in a GitLab repository.
branchstringrequiredThe name of the new branch.idstringrequiredThe project ID (numeric) or URL-encoded path.refstringrequiredThe source branch, tag, or commit SHA to branch from.gitlab_branch_delete#Delete a branch from a GitLab repository.2 params
Delete a branch from a GitLab repository.
branchstringrequiredThe name of the branch to delete.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_branch_get#Get details of a specific branch in a GitLab repository.2 params
Get details of a specific branch in a GitLab repository.
branchstringrequiredThe name of the branch.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_branch_protect#Protects a repository branch, restricting who can push to or merge into it (legacy API — prefer Protected Branches for fine-grained access levels).4 params
Protects a repository branch, restricting who can push to or merge into it (legacy API — prefer Protected Branches for fine-grained access levels).
branchstringrequiredThe name of the branch to protect.idstringrequiredThe project ID (numeric) or URL-encoded path.developers_can_mergebooleanoptionalWhether developers are allowed to merge into the protected branch.developers_can_pushbooleanoptionalWhether developers are allowed to push directly to the protected branch.gitlab_branch_unprotect#Removes protection from a repository branch, allowing any member with write access to push and merge freely.2 params
Removes protection from a repository branch, allowing any member with write access to push and merge freely.
branchstringrequiredThe name of the branch to unprotect.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_branches_list#List repository branches for a GitLab project.4 params
List repository branches for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalFilter branches by name.gitlab_commit_comment_create#Add a comment to a specific commit.5 params
Add a comment to a specific commit.
idstringrequiredThe project ID (numeric) or URL-encoded path.notestringrequiredThe comment text.shastringrequiredThe commit SHA.lineintegeroptionalLine number for an inline comment.pathstringoptionalFile path for an inline comment.gitlab_commit_comments_list#List comments on a specific commit.2 params
List comments on a specific commit.
idstringrequiredThe project ID (numeric) or URL-encoded path.shastringrequiredThe commit SHA.gitlab_commit_create#Creates a new commit on a branch by combining one or more file actions (create, update, delete, move, or chmod) in a single atomic commit. Can also create the target branch from a starting ref.7 params
Creates a new commit on a branch by combining one or more file actions (create, update, delete, move, or chmod) in a single atomic commit. Can also create the target branch from a starting ref.
actionsarrayrequiredList of file actions to include in the commit. Each action has action (create/update/delete/move/chmod), file_path, and content (for create/update).branchstringrequiredThe branch name to commit to. Created from start_branch/start_sha if it does not yet exist.commit_messagestringrequiredThe commit message.idstringrequiredThe project ID (numeric) or URL-encoded path.author_emailstringoptionalEmail address to attribute the commit to.author_namestringoptionalName to attribute the commit to.start_branchstringoptionalThe branch to start the new commit from, if branch does not already exist.gitlab_commit_diff_get#Get the diff of a specific commit.2 params
Get the diff of a specific commit.
idstringrequiredThe project ID (numeric) or URL-encoded path.shastringrequiredThe commit SHA.gitlab_commit_get#Get details of a specific commit by its SHA.2 params
Get details of a specific commit by its SHA.
idstringrequiredThe project ID (numeric) or URL-encoded path.shastringrequiredThe commit SHA.gitlab_commit_merge_requests_list#Lists all merge requests associated with a specific commit SHA.4 params
Lists all merge requests associated with a specific commit SHA.
idstringrequiredThe project ID (numeric) or URL-encoded path.shastringrequiredThe commit SHA, or a branch/tag name, to find merge requests for.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_commits_list#List repository commits for a GitLab project.8 params
List repository commits for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.authorstringoptionalFilter commits by author name or email.pageintegeroptionalPage number for pagination.pathstringoptionalFilter commits by file path.per_pageintegeroptionalNumber of results per page (max 100).ref_namestringoptionalThe branch or tag name to list commits from.sincestringoptionalOnly commits after this date are returned (ISO 8601 format).untilstringoptionalOnly commits before this date are returned (ISO 8601 format).gitlab_compare_refs#Compare two refs (branches, tags, or commits) in a GitLab repository.4 params
Compare two refs (branches, tags, or commits) in a GitLab repository.
fromstringrequiredThe source branch, tag, or commit SHA to compare from.idstringrequiredThe project ID (numeric) or URL-encoded path.tostringrequiredThe target branch, tag, or commit SHA to compare to.straightstringoptionalComparison method: 'true' for straight diff, 'false' for merge base.gitlab_current_user_get#Get the currently authenticated user's profile.0 params
Get the currently authenticated user's profile.
gitlab_current_user_ssh_keys_list#List SSH keys for the currently authenticated user.0 params
List SSH keys for the currently authenticated user.
gitlab_deploy_key_create#Create a new deploy key for a GitLab project.4 params
Create a new deploy key for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.keystringrequiredThe SSH public key content.titlestringrequiredA descriptive title for the deploy key.can_pushstringoptionalIf 'true', the deploy key has write access.gitlab_deploy_key_delete#Delete a deploy key from a GitLab project.2 params
Delete a deploy key from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.key_idintegerrequiredThe numeric ID of the deploy key to delete.gitlab_deploy_keys_list#List deploy keys for a GitLab project.1 param
List deploy keys for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_file_create#Create a new file in a GitLab repository.8 params
Create a new file in a GitLab repository.
branchstringrequiredThe branch to create the file on.commit_messagestringrequiredThe commit message for creating this file.contentstringrequiredThe file content (plain text or base64 encoded).file_pathstringrequiredURL-encoded file path in the repository.idstringrequiredThe project ID (numeric) or URL-encoded path.author_emailstringoptionalThe author's email for the commit.author_namestringoptionalThe author's name for the commit.encodingstringoptionalThe encoding type: 'text' or 'base64'.gitlab_file_delete#Delete a file from a GitLab repository.4 params
Delete a file from a GitLab repository.
branchstringrequiredThe branch to delete the file from.commit_messagestringrequiredThe commit message for deleting this file.file_pathstringrequiredURL-encoded file path in the repository.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_file_get#Get a file's content and metadata from a GitLab repository.3 params
Get a file's content and metadata from a GitLab repository.
file_pathstringrequiredURL-encoded file path in the repository.idstringrequiredThe project ID (numeric) or URL-encoded path.refstringrequiredThe branch, tag, or commit SHA to get the file from.gitlab_file_update#Update an existing file in a GitLab repository.6 params
Update an existing file in a GitLab repository.
branchstringrequiredThe branch to update the file on.commit_messagestringrequiredThe commit message for updating this file.contentstringrequiredThe new file content.file_pathstringrequiredURL-encoded file path in the repository.idstringrequiredThe project ID (numeric) or URL-encoded path.last_commit_idstringoptionalLast known file commit ID (for conflict detection).gitlab_global_search#Search globally across GitLab for projects, issues, merge requests, and more.4 params
Search globally across GitLab for projects, issues, merge requests, and more.
scopestringrequiredThe scope to search in.searchstringrequiredThe search query string.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_group_create#Create a new GitLab group or subgroup.5 params
Create a new GitLab group or subgroup.
namestringrequiredThe name of the group.pathstringrequiredURL-friendly path slug for the group.descriptionstringoptionalOptional group description.parent_idintegeroptionalID of the parent group (for subgroups).visibilitystringoptionalVisibility level: private, internal, or public.gitlab_group_delete#Delete a GitLab group. This is an asynchronous operation (returns 202 Accepted).1 param
Delete a GitLab group. This is an asynchronous operation (returns 202 Accepted).
idstringrequiredThe group ID (numeric) or URL-encoded path.gitlab_group_get#Get a specific group by numeric ID or URL-encoded path.1 param
Get a specific group by numeric ID or URL-encoded path.
idstringrequiredThe group ID (numeric) or URL-encoded path.gitlab_group_member_add#Add a member to a GitLab group.3 params
Add a member to a GitLab group.
access_levelintegerrequiredAccess level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.idstringrequiredThe group ID (numeric) or URL-encoded path.user_idintegerrequiredThe numeric ID of the user to add.gitlab_group_member_remove#Remove a member from a GitLab group.2 params
Remove a member from a GitLab group.
idstringrequiredThe group ID (numeric) or URL-encoded path.user_idintegerrequiredThe numeric ID of the user to remove.gitlab_group_members_list#List members of a GitLab group.4 params
List members of a GitLab group.
idstringrequiredThe group ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).querystringoptionalFilter members by name.gitlab_group_packages_list#Lists all packages published across all projects within a group's package registries.6 params
Lists all packages published across all projects within a group's package registries.
idstringrequiredThe ID or URL-encoded path of the group.exclude_subgroupsbooleanoptionalWhether to exclude packages from subgroups.package_namestringoptionalFilter packages by exact name.package_typestringoptionalFilter packages by format/type.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_group_projects_list#List projects belonging to a GitLab group.5 params
List projects belonging to a GitLab group.
idstringrequiredThe group ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalFilter projects by name.visibilitystringoptionalFilter by visibility level: public, internal, or private.gitlab_group_subgroups_list#Lists all subgroups nested directly or indirectly under a specified group.5 params
Lists all subgroups nested directly or indirectly under a specified group.
idstringrequiredThe ID or URL-encoded path of the parent group.all_availablebooleanoptionalWhen true, returns all accessible groups; when false, only groups the user is a member of.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch for a specific subgroup by name.gitlab_group_transfer#Transfers a group to another parent group, or promotes a subgroup to a top-level group when no target is given.2 params
Transfers a group to another parent group, or promotes a subgroup to a top-level group when no target is given.
idstringrequiredThe ID or URL-encoded path of the group to transfer.group_idintegeroptionalThe ID of the destination parent group. Omit to promote this group to top-level.gitlab_group_update#Update a GitLab group's settings.4 params
Update a GitLab group's settings.
idstringrequiredThe group ID (numeric) or URL-encoded path.descriptionstringoptionalUpdated group description.namestringoptionalNew name for the group.visibilitystringoptionalNew visibility level: private, internal, or public.gitlab_groups_list#List groups accessible to the authenticated user.5 params
List groups accessible to the authenticated user.
min_access_levelintegeroptionalMinimum access level filter (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner).ownedstringoptionalIf 'true', limits to groups explicitly owned by the current user.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch groups by name.gitlab_issue_create#Create a new issue in a GitLab project.7 params
Create a new issue in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.titlestringrequiredThe title of the issue.assignee_idsstringoptionalComma-separated list of user IDs to assign.descriptionstringoptionalDetailed description of the issue (Markdown supported).due_datestringoptionalDue date for the issue in YYYY-MM-DD format.labelsstringoptionalComma-separated list of label names to apply.milestone_idintegeroptionalThe ID of the milestone to assign.gitlab_issue_delete#Delete an issue from a GitLab project (admin only).2 params
Delete an issue from a GitLab project (admin only).
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue within the project.gitlab_issue_get#Get a specific issue by its internal ID (IID).2 params
Get a specific issue by its internal ID (IID).
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue within the project.gitlab_issue_labels_list#List labels for a GitLab project.3 params
List labels for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_issue_link_create#Creates a two-way relationship (relates_to, blocks, or is_blocked_by) between two issues. The user must be able to update both issues.5 params
Creates a two-way relationship (relates_to, blocks, or is_blocked_by) between two issues. The user must be able to update both issues.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the source issue.target_issue_iidstringrequiredThe internal ID of the target issue to link to.target_project_idstringrequiredThe ID of the project containing the target issue.link_typestringoptionalThe type of relation: relates_to, blocks, or is_blocked_by. Defaults to relates_to.gitlab_issue_link_delete#Deletes a specified issue link, removing the two-way relationship between the two issues.3 params
Deletes a specified issue link, removing the two-way relationship between the two issues.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.issue_link_idintegerrequiredThe ID of the issue link to delete.gitlab_issue_links_list#Lists all issues linked to a specified issue, sorted by relationship creation time.2 params
Lists all issues linked to a specified issue, sorted by relationship creation time.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_move#Moves an issue to a different project. Fails if the target project is the same as the source, or if the user lacks sufficient permissions.3 params
Moves an issue to a different project. Fails if the target project is the same as the source, or if the user lacks sufficient permissions.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue to move.to_project_idintegerrequiredThe ID of the destination project.gitlab_issue_note_create#Add a comment to a specific issue.3 params
Add a comment to a specific issue.
bodystringrequiredThe comment text (Markdown supported).idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_note_delete#Delete a comment on a specific issue.3 params
Delete a comment on a specific issue.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.note_idintegerrequiredThe ID of the note to delete.gitlab_issue_note_update#Update a comment on a specific issue.4 params
Update a comment on a specific issue.
bodystringrequiredThe updated comment text (Markdown supported).idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.note_idintegerrequiredThe ID of the note to update.gitlab_issue_notes_list#List comments (notes) on a specific issue.4 params
List comments (notes) on a specific issue.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_issue_subscribe#Subscribes the currently authenticated user to an issue so they receive notifications on future changes.2 params
Subscribes the currently authenticated user to an issue so they receive notifications on future changes.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_time_estimate_set#Sets an estimated amount of work for an issue, using GitLab's human-readable duration format (e.g. 3h30m).3 params
Sets an estimated amount of work for an issue, using GitLab's human-readable duration format (e.g. 3h30m).
durationstringrequiredThe estimated duration in human-readable format, e.g. 3h30m.idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_time_stats_get#Retrieves time tracking statistics for an issue, including time estimate and total time spent, in both seconds and human-readable format.2 params
Retrieves time tracking statistics for an issue, including time estimate and total time spent, in both seconds and human-readable format.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_unsubscribe#Unsubscribes the currently authenticated user from an issue, stopping future change notifications.2 params
Unsubscribes the currently authenticated user from an issue, stopping future change notifications.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue.gitlab_issue_update#Update an existing issue in a GitLab project.7 params
Update an existing issue in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.issue_iidintegerrequiredThe internal ID of the issue within the project.assignee_idsstringoptionalComma-separated list of user IDs to assign.descriptionstringoptionalUpdated description of the issue.labelsstringoptionalComma-separated list of label names.state_eventstringoptionalState transition: 'close' to close, 'reopen' to reopen.titlestringoptionalNew title for the issue.gitlab_issues_list#List issues for a GitLab project.10 params
List issues for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.assignee_idintegeroptionalFilter issues by assignee user ID.labelsstringoptionalFilter issues by comma-separated label names.milestonestringoptionalFilter issues by milestone title.order_bystringoptionalOrder issues by field (created_at, updated_at, priority).pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch issues by title or description.sortstringoptionalSort order: asc or desc.statestringoptionalFilter issues by state: opened, closed, or all.gitlab_job_artifacts_download#Download the artifacts archive of a specific CI/CD job.2 params
Download the artifacts archive of a specific CI/CD job.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe numeric ID of the job.gitlab_job_artifacts_keep#Marks a job's artifacts to be retained indefinitely, preventing them from being automatically deleted when they reach their expiration date.2 params
Marks a job's artifacts to be retained indefinitely, preventing them from being automatically deleted when they reach their expiration date.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe ID of the job whose artifacts should be retained.gitlab_job_cancel#Cancel a specific CI/CD job.2 params
Cancel a specific CI/CD job.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe numeric ID of the job to cancel.gitlab_job_erase#Erases a job, permanently removing its artifacts and job log. This cannot be undone.2 params
Erases a job, permanently removing its artifacts and job log. This cannot be undone.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe ID of the job to erase.gitlab_job_get#Get details of a specific CI/CD job.2 params
Get details of a specific CI/CD job.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe numeric ID of the job.gitlab_job_log_get#Get the log (trace) output of a specific CI/CD job.2 params
Get the log (trace) output of a specific CI/CD job.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe numeric ID of the job.gitlab_job_play#Triggers a job that is in the manual status, starting its execution.2 params
Triggers a job that is in the manual status, starting its execution.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe ID of the manual job to run.gitlab_job_retry#Retry a specific CI/CD job.2 params
Retry a specific CI/CD job.
idstringrequiredThe project ID (numeric) or URL-encoded path.job_idintegerrequiredThe numeric ID of the job to retry.gitlab_jobs_list#List all jobs for a GitLab project.4 params
List all jobs for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).scopestringoptionalFilter jobs by scope/status.gitlab_label_create#Create a new label in a GitLab project.4 params
Create a new label in a GitLab project.
colorstringrequiredThe color for the label in hex format (e.g. #FF0000).idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredThe name of the label.descriptionstringoptionalOptional description for the label.gitlab_merge_request_approvals_get#Get the approval state of a specific merge request.2 params
Get the approval state of a specific merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_approve#Approve a merge request.2 params
Approve a merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_changes_get#Retrieves the file changes (diff) for a merge request.3 params
Retrieves the file changes (diff) for a merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.unidiffbooleanoptionalReturn the diff in Unified diff format instead of GitLab's default format.gitlab_merge_request_closes_issues_list#Lists all issues that will be closed automatically when a merge request is merged.4 params
Lists all issues that will be closed automatically when a merge request is merged.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_merge_request_commits_list#List commits in a specific merge request.2 params
List commits in a specific merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_create#Create a new merge request in a GitLab project.9 params
Create a new merge request in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.source_branchstringrequiredThe source branch name.target_branchstringrequiredThe target branch name.titlestringrequiredThe title of the merge request.assignee_idintegeroptionalThe numeric ID of the user to assign.descriptionstringoptionalDescription for the merge request (Markdown supported).labelsstringoptionalComma-separated list of label names.remove_source_branchstringoptionalIf 'true', removes the source branch after merging.squashstringoptionalIf 'true', squashes all commits into one on merge.gitlab_merge_request_delete#Deletes a merge request. Restricted to administrators and project Owners.2 params
Deletes a merge request. Restricted to administrators and project Owners.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_diff_get#Get the diffs of a specific merge request.2 params
Get the diffs of a specific merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_discussion_resolve#Resolve or reopen an entire merge-request review thread — a common code-review action with no equivalent among existing note/approval tools.4 params
Resolve or reopen an entire merge-request review thread — a common code-review action with no equivalent among existing note/approval tools.
discussion_idstringrequiredThe ID of the discussion (thread) to resolve or reopen.idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.resolvedbooleanrequiredIf true, resolves the discussion. If false, reopens it.gitlab_merge_request_discussions_list#List threaded discussions on a merge request via the Discussions API, including each thread's individual_note flag and note-level resolvable/resolved state. Existing tools (gitlab_merge_request_notes_list) only cover flat notes, not this threaded structure.4 params
List threaded discussions on a merge request via the Discussions API, including each thread's individual_note flag and note-level resolvable/resolved state. Existing tools (gitlab_merge_request_notes_list) only cover flat notes, not this threaded structure.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_merge_request_get#Get a specific merge request by its internal ID (IID).2 params
Get a specific merge request by its internal ID (IID).
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request within the project.gitlab_merge_request_merge#Merge an approved merge request in a GitLab project.5 params
Merge an approved merge request in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.merge_commit_messagestringoptionalCustom merge commit message.should_remove_source_branchstringoptionalIf 'true', removes the source branch after merging.squashstringoptionalIf 'true', squashes all commits into one.gitlab_merge_request_note_create#Add a comment to a specific merge request.3 params
Add a comment to a specific merge request.
bodystringrequiredThe comment text (Markdown supported).idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_notes_list#List comments on a specific merge request.4 params
List comments on a specific merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_merge_request_pipelines_list#Lists all CI/CD pipelines that have run for a merge request.2 params
Lists all CI/CD pipelines that have run for a merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_rebase#Automatically rebases the source branch of a merge request against its target branch. This is an asynchronous operation.3 params
Automatically rebases the source branch of a merge request against its target branch. This is an asynchronous operation.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.skip_cibooleanoptionalSet to true to rebase without creating a new CI pipeline.gitlab_merge_request_reviewers_list#Retrieves the reviewers assigned to a merge request.2 params
Retrieves the reviewers assigned to a merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_subscribe#Subscribes the currently authenticated user to a merge request so they receive notifications on future changes.2 params
Subscribes the currently authenticated user to a merge request so they receive notifications on future changes.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_time_estimate_set#Sets an estimated amount of work for a merge request, using GitLab's human-readable duration format.3 params
Sets an estimated amount of work for a merge request, using GitLab's human-readable duration format.
durationstringrequiredThe estimated duration in human-readable format, e.g. 3h30m.idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_time_stats_get#Retrieves time tracking statistics for a merge request, including time estimate and total time spent.2 params
Retrieves time tracking statistics for a merge request, including time estimate and total time spent.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_unapprove#Removes the currently authenticated user's approval from a merge request.2 params
Removes the currently authenticated user's approval from a merge request.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_unsubscribe#Unsubscribes the currently authenticated user from a merge request, stopping future change notifications.2 params
Unsubscribes the currently authenticated user from a merge request, stopping future change notifications.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.gitlab_merge_request_update#Update an existing merge request in a GitLab project.8 params
Update an existing merge request in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.merge_request_iidintegerrequiredThe internal ID of the merge request.assignee_idintegeroptionalThe numeric ID of the user to assign.descriptionstringoptionalUpdated description for the merge request.labelsstringoptionalComma-separated list of label names.state_eventstringoptionalState transition: 'close' to close, 'reopen' to reopen.target_branchstringoptionalNew target branch name.titlestringoptionalNew title for the merge request.gitlab_merge_requests_list#List merge requests for a GitLab project.10 params
List merge requests for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.labelsstringoptionalFilter by comma-separated label names.order_bystringoptionalOrder MRs by field (created_at, updated_at, title).pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch MRs by title or description.sortstringoptionalSort order: asc or desc.source_branchstringoptionalFilter by source branch name.statestringoptionalFilter by state: opened, closed, locked, merged, or all.target_branchstringoptionalFilter by target branch name.gitlab_milestone_create#Create a new milestone in a GitLab project.5 params
Create a new milestone in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.titlestringrequiredThe title of the milestone.descriptionstringoptionalOptional description for the milestone.due_datestringoptionalDue date for the milestone in YYYY-MM-DD format.start_datestringoptionalStart date for the milestone in YYYY-MM-DD format.gitlab_milestone_delete#Delete a milestone from a GitLab project.2 params
Delete a milestone from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.milestone_idintegerrequiredThe numeric ID of the milestone.gitlab_milestone_get#Get a specific project milestone.2 params
Get a specific project milestone.
idstringrequiredThe project ID (numeric) or URL-encoded path.milestone_idintegerrequiredThe numeric ID of the milestone.gitlab_milestone_update#Update an existing milestone in a GitLab project.6 params
Update an existing milestone in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.milestone_idintegerrequiredThe numeric ID of the milestone.descriptionstringoptionalUpdated description for the milestone.due_datestringoptionalUpdated due date in YYYY-MM-DD format.state_eventstringoptionalState transition: 'close' to close, 'activate' to reopen.titlestringoptionalNew title for the milestone.gitlab_milestones_list#List milestones for a GitLab project.5 params
List milestones for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalFilter milestones by title.statestringoptionalFilter milestones by state: active or closed.gitlab_namespaces_list#List namespaces available to the current user (personal namespaces and groups).3 params
List namespaces available to the current user (personal namespaces and groups).
pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalFilter namespaces by name.gitlab_package_pipelines_list#Lists the CI/CD pipelines that published a specific package, sorted by pipeline ID descending.4 params
Lists the CI/CD pipelines that published a specific package, sorted by pipeline ID descending.
idstringrequiredThe project ID (numeric) or URL-encoded path.package_idintegerrequiredThe ID of the package.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_pipeline_cancel#Cancel a running pipeline.2 params
Cancel a running pipeline.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe 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.3 params
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.
idstringrequiredThe project ID (numeric) or URL-encoded path.refstringrequiredThe branch or tag name to run the pipeline on.variablesstringoptionalJSON array of pipeline variables, each with 'key' and 'value' fields.gitlab_pipeline_delete#Delete a pipeline from a GitLab project.2 params
Delete a pipeline from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe numeric ID of the pipeline to delete.gitlab_pipeline_get#Get details of a specific pipeline.2 params
Get details of a specific pipeline.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe numeric ID of the pipeline.gitlab_pipeline_jobs_list#List jobs for a specific pipeline.5 params
List jobs for a specific pipeline.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe numeric ID of the pipeline.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).scopestringoptionalFilter jobs by scope.gitlab_pipeline_latest_get#Retrieves the most recent pipeline for a given ref (branch or tag). Uses the project's default branch if no ref is specified.2 params
Retrieves the most recent pipeline for a given ref (branch or tag). Uses the project's default branch if no ref is specified.
idstringrequiredThe project ID (numeric) or URL-encoded path.refstringoptionalThe branch or tag to find the latest pipeline for. Defaults to the project's default branch.gitlab_pipeline_retry#Retry a failed pipeline.2 params
Retry a failed pipeline.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe numeric ID of the pipeline to retry.gitlab_pipeline_schedule_create#Creates a scheduled pipeline that runs automatically on a cron-style schedule against a given branch or tag.6 params
Creates a scheduled pipeline that runs automatically on a cron-style schedule against a given branch or tag.
cronstringrequiredA cron expression describing when the pipeline should run.descriptionstringrequiredA description of the pipeline schedule.idstringrequiredThe project ID (numeric) or URL-encoded path.refstringrequiredThe branch or tag name the scheduled pipeline runs against.activebooleanoptionalWhether the pipeline schedule is active.cron_timezonestringoptionalThe timezone the cron expression is evaluated in.gitlab_pipeline_schedule_delete#Deletes a pipeline schedule from a project.2 params
Deletes a pipeline schedule from a project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_schedule_idintegerrequiredThe ID of the pipeline schedule to delete.gitlab_pipeline_schedule_get#Retrieves the details of a specific pipeline schedule.2 params
Retrieves the details of a specific pipeline schedule.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_schedule_idintegerrequiredThe ID of the pipeline schedule.gitlab_pipeline_schedule_update#Updates an existing pipeline schedule. The schedule is automatically re-registered with the new cron settings after the update.7 params
Updates an existing pipeline schedule. The schedule is automatically re-registered with the new cron settings after the update.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_schedule_idintegerrequiredThe ID of the pipeline schedule to update.activebooleanoptionalWhether the pipeline schedule is active.cronstringoptionalA cron expression describing when the pipeline should run.cron_timezonestringoptionalThe timezone the cron expression is evaluated in.descriptionstringoptionalA description of the pipeline schedule.refstringoptionalThe branch or tag name the scheduled pipeline runs against.gitlab_pipeline_schedules_list#Lists all scheduled (cron-triggered) pipelines configured for a project.1 param
Lists all scheduled (cron-triggered) pipelines configured for a project.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_pipeline_test_report_get#Retrieves the full JUnit test report for a pipeline, including individual test case results.2 params
Retrieves the full JUnit test report for a pipeline, including individual test case results.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe ID of the pipeline.gitlab_pipeline_test_report_summary_get#Retrieves a summarized test report for a pipeline, including pass/fail/error counts without full test case detail.2 params
Retrieves a summarized test report for a pipeline, including pass/fail/error counts without full test case detail.
idstringrequiredThe project ID (numeric) or URL-encoded path.pipeline_idintegerrequiredThe ID of the pipeline.gitlab_pipelines_list#List pipelines for a GitLab project.6 params
List pipelines for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).refstringoptionalFilter pipelines by branch or tag name.shastringoptionalFilter pipelines by commit SHA.statusstringoptionalFilter by pipeline status.gitlab_project_access_token_create#Create a project access token with specified scopes, access level, and expiry — for provisioning CI or automation credentials. The token secret is only returned once, in the create response.6 params
Create a project access token with specified scopes, access level, and expiry — for provisioning CI or automation credentials. The token secret is only returned once, in the create response.
expires_atstringrequiredExpiration date of the token in ISO format (YYYY-MM-DD).idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredName of the access token.scopesarrayrequiredList of scopes granted to the token.access_levelintegeroptionalAccess level for the token. 10=Guest, 15=Planner, 20=Reporter, 25=Reporter+, 30=Developer, 40=Maintainer, 50=Owner. Defaults to 40.descriptionstringoptionalOptional description for the token, up to 255 characters.gitlab_project_access_tokens_list#List existing project access tokens, with filters for state, search, expiry/creation/last-used windows, and sort order. Never returns token secrets — those are only shown once, at creation.13 params
List existing project access tokens, with filters for state, search, expiry/creation/last-used windows, and sort order. Never returns token secrets — those are only shown once, at creation.
idstringrequiredThe project ID (numeric) or URL-encoded path.created_afterstringoptionalOnly return tokens created after this datetime (ISO 8601).created_beforestringoptionalOnly return tokens created before this datetime (ISO 8601).expires_afterstringoptionalOnly return tokens expiring after this date (ISO 8601).expires_beforestringoptionalOnly return tokens expiring before this date (ISO 8601).last_used_afterstringoptionalOnly return tokens last used after this datetime (ISO 8601).last_used_beforestringoptionalOnly return tokens last used before this datetime (ISO 8601).pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).revokedbooleanoptionalFilter by whether the token has been revoked.searchstringoptionalSearch by token name.sortstringoptionalSort order for the results.statestringoptionalFilter tokens by state.gitlab_project_archive#Archives a project, making it read-only throughout the UI and API. Requires the Owner role or administrator access.1 param
Archives a project, making it read-only throughout the UI and API. Requires the Owner role or administrator access.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_create#Create a new GitLab project.4 params
Create a new GitLab project.
namestringrequiredThe name of the project.descriptionstringoptionalA short description of the project.initialize_with_readmestringoptionalIf 'true', initializes the repository with a README.visibilitystringoptionalVisibility level: private, internal, or public. Defaults to private.gitlab_project_delete#Delete a GitLab project. This is an asynchronous operation (returns 202 Accepted).1 param
Delete a GitLab project. This is an asynchronous operation (returns 202 Accepted).
idstringrequiredThe project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').gitlab_project_fork#Fork a GitLab project into a namespace.4 params
Fork a GitLab project into a namespace.
idstringrequiredThe project ID (numeric) or URL-encoded path to fork.namestringoptionalThe name for the forked project.namespace_idintegeroptionalThe ID of the namespace to fork the project into.pathstringoptionalThe 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.3 params
List forks of a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_project_get#Get a specific project by numeric ID or URL-encoded namespace/project path.1 param
Get a specific project by numeric ID or URL-encoded namespace/project path.
idstringrequiredThe project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').gitlab_project_languages_get#Retrieves the programming languages used in a project's repository, along with the percentage of the codebase each language represents.1 param
Retrieves the programming languages used in a project's repository, along with the percentage of the codebase each language represents.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_member_add#Add a member to a GitLab project with a specified access level.3 params
Add a member to a GitLab project with a specified access level.
access_levelintegerrequiredAccess level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.idstringrequiredThe project ID (numeric) or URL-encoded path.user_idintegerrequiredThe numeric ID of the user to add.gitlab_project_member_remove#Remove a member from a GitLab project.2 params
Remove a member from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.user_idintegerrequiredThe numeric ID of the user to remove.gitlab_project_members_list#List members of a GitLab project.4 params
List members of a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).querystringoptionalFilter members by name.gitlab_project_package_delete#Deletes a package and all of its files from a project's package registry.2 params
Deletes a package and all of its files from a project's package registry.
idstringrequiredThe project ID (numeric) or URL-encoded path.package_idintegerrequiredThe ID of the package to delete.gitlab_project_package_get#Retrieves a specific package published to a project's package registry.2 params
Retrieves a specific package published to a project's package registry.
idstringrequiredThe project ID (numeric) or URL-encoded path.package_idintegerrequiredThe ID of the package.gitlab_project_packages_list#Lists all packages published to a project's package registry, across all package formats.7 params
Lists all packages published to a project's package registry, across all package formats.
idstringrequiredThe project ID (numeric) or URL-encoded path.order_bystringoptionalField to order results by: created_at, name, version, or type.package_namestringoptionalFilter packages by exact name.package_typestringoptionalFilter packages by format/type.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).sortstringoptionalSort direction: asc or desc.gitlab_project_search#Search within a specific GitLab project for issues, merge requests, commits, code, and more.6 params
Search within a specific GitLab project for issues, merge requests, commits, code, and more.
idstringrequiredThe project ID (numeric) or URL-encoded path.scopestringrequiredThe scope to search in within the project.searchstringrequiredThe search query string.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).refstringoptionalThe branch or tag name to search (for blobs or commits scope).gitlab_project_snippet_create#Create a new snippet in a GitLab project.6 params
Create a new snippet in a GitLab project.
contentstringrequiredThe content of the snippet.file_namestringrequiredThe filename for the snippet.idstringrequiredThe project ID (numeric) or URL-encoded path.titlestringrequiredThe title of the snippet.descriptionstringoptionalOptional description for the snippet.visibilitystringoptionalVisibility level: private, internal, or public.gitlab_project_snippet_delete#Deletes a project snippet.2 params
Deletes a project snippet.
idstringrequiredThe project ID (numeric) or URL-encoded path.snippet_idintegerrequiredThe ID of the project snippet to delete.gitlab_project_snippet_get#Get a specific snippet from a GitLab project.2 params
Get a specific snippet from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.snippet_idintegerrequiredThe numeric ID of the snippet.gitlab_project_snippet_update#Updates an existing project snippet's title, description, visibility, or content.7 params
Updates an existing project snippet's title, description, visibility, or content.
idstringrequiredThe project ID (numeric) or URL-encoded path.snippet_idintegerrequiredThe ID of the project snippet to update.contentstringoptionalThe content of the snippet.descriptionstringoptionalOptional description for the snippet.file_namestringoptionalThe filename for the snippet.titlestringoptionalThe title of the snippet.visibilitystringoptionalVisibility level: private, internal, or public.gitlab_project_snippets_list#List all snippets in a GitLab project.3 params
List all snippets in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_project_star#Star a GitLab project.1 param
Star a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_transfer#Transfers a project to a different namespace (user or group).2 params
Transfers a project to a different namespace (user or group).
idstringrequiredThe project ID (numeric) or URL-encoded path.namespacestringrequiredThe ID or path of the destination namespace.gitlab_project_unarchive#Unarchives a previously-archived project, restoring normal read/write access. Requires the Owner role or administrator access.1 param
Unarchives a previously-archived project, restoring normal read/write access. Requires the Owner role or administrator access.
idstringrequiredThe 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.1 param
Unstar a GitLab project. Returns 200 with project data if successfully unstarred, or 304 if the project was not starred.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_update#Update an existing GitLab project's settings.5 params
Update an existing GitLab project's settings.
idstringrequiredThe project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').default_branchstringoptionalThe default branch name for the project.descriptionstringoptionalA short description of the project.namestringoptionalNew name for the project.visibilitystringoptionalNew visibility level: private, internal, or public.gitlab_project_variable_create#Create a new CI/CD variable for a GitLab project.7 params
Create a new CI/CD variable for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.keystringrequiredThe variable key name.valuestringrequiredThe value of the variable.environment_scopestringoptionalThe environment scope for this variable (default '*').maskedstringoptionalIf 'true', masks the variable in job logs.protectedstringoptionalIf 'true', the variable is only available on protected branches/tags.variable_typestringoptionalThe variable type: env_var (default) or file.gitlab_project_variable_delete#Delete a CI/CD variable from a GitLab project.2 params
Delete a CI/CD variable from a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.keystringrequiredThe variable key name to delete.gitlab_project_variable_get#Get a specific CI/CD variable for a GitLab project.2 params
Get a specific CI/CD variable for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.keystringrequiredThe variable key name.gitlab_project_variable_update#Update an existing CI/CD variable for a GitLab project.5 params
Update an existing CI/CD variable for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.keystringrequiredThe variable key name to update.valuestringrequiredThe new value of the variable.maskedstringoptionalIf 'true', masks the variable in job logs.protectedstringoptionalIf 'true', the variable is only available on protected branches/tags.gitlab_project_variables_list#List all CI/CD variables for a GitLab project.1 param
List all CI/CD variables for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_webhook_create#Create a new webhook for a GitLab project.7 params
Create a new webhook for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.urlstringrequiredThe URL to send webhook payloads to.issues_eventsstringoptionalIf 'true', trigger the webhook on issue events.merge_requests_eventsstringoptionalIf 'true', trigger on merge request events.pipeline_eventsstringoptionalIf 'true', trigger on pipeline events.push_eventsstringoptionalIf 'true', trigger the webhook on push events.tokenstringoptionalSecret token to validate webhook payloads.gitlab_project_webhook_delete#Delete a webhook from a GitLab project.2 params
Delete a webhook from a GitLab project.
hook_idintegerrequiredThe numeric ID of the webhook to delete.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_webhook_get#Get a specific webhook for a GitLab project.2 params
Get a specific webhook for a GitLab project.
hook_idintegerrequiredThe numeric ID of the webhook.idstringrequiredThe project ID (numeric) or URL-encoded path.gitlab_project_webhook_update#Update an existing webhook for a GitLab project.6 params
Update an existing webhook for a GitLab project.
hook_idintegerrequiredThe numeric ID of the webhook to update.idstringrequiredThe project ID (numeric) or URL-encoded path.urlstringrequiredThe new URL to send webhook payloads to.merge_requests_eventsstringoptionalIf 'true', trigger on merge request events.pipeline_eventsstringoptionalIf 'true', trigger on pipeline events.push_eventsstringoptionalIf 'true', trigger on push events.gitlab_project_webhooks_list#List all webhooks configured for a GitLab project.1 param
List all webhooks configured for a GitLab project.
idstringrequiredThe 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.8 params
List all projects accessible to the authenticated user. Supports filtering by search, ownership, membership, and visibility.
membershipstringoptionalIf 'true', limits by projects where the user is a member.order_bystringoptionalOrder projects by a field (e.g. id, name, created_at).ownedstringoptionalIf 'true', limits by projects explicitly owned by the current user.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch query to filter projects by name.sortstringoptionalSort order: 'asc' or 'desc'.visibilitystringoptionalFilter by visibility level: public, internal, or private.gitlab_protected_branch_create#Protect a branch or wildcard pattern via the modern Protected Branches API, with fine-grained push/merge/unprotect access levels. Distinct from gitlab_branch_protect, which only supports the legacy developers_can_push/developers_can_merge toggle.10 params
Protect a branch or wildcard pattern via the modern Protected Branches API, with fine-grained push/merge/unprotect access levels. Distinct from gitlab_branch_protect, which only supports the legacy developers_can_push/developers_can_merge toggle.
idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredThe name or wildcard pattern of the branch to protect.allow_force_pushbooleanoptionalIf true, members allowed to push to this branch can also force push. Defaults to false.allowed_to_mergearrayoptionalArray of access descriptors granting merge access, each an object with exactly one of user_id, group_id, member_role_id, or access_level.allowed_to_pusharrayoptionalArray of access descriptors granting push access, each an object with exactly one of user_id, group_id, member_role_id, deploy_key_id, or access_level.allowed_to_unprotectarrayoptionalArray of access descriptors granting unprotect access, each an object with exactly one of user_id, group_id, member_role_id, or access_level.code_owner_approval_requiredbooleanoptionalIf true, merges into this branch require approval from a matching CODEOWNERS entry. Defaults to false.merge_access_levelintegeroptionalAccess level allowed to merge into the branch. 0=No access, 30=Developer, 40=Maintainer, 60=Admin. Defaults to 40.push_access_levelintegeroptionalAccess level allowed to push to the branch. 0=No access, 30=Developer, 40=Maintainer, 60=Admin. Defaults to 40.unprotect_access_levelintegeroptionalAccess level allowed to unprotect the branch. 0=No access, 30=Developer, 40=Maintainer, 60=Admin. Defaults to 40.gitlab_protected_branch_delete#Remove a protected-branch rule created via the modern Protected Branches API (unprotects the branch or wildcard pattern entirely).2 params
Remove a protected-branch rule created via the modern Protected Branches API (unprotects the branch or wildcard pattern entirely).
idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredThe name or wildcard pattern of the protected branch rule to remove.gitlab_protected_branches_list#List protected branches for a project via the modern Protected Branches API, including each branch's push/merge/unprotect access levels. Distinct from gitlab_branch_protect/gitlab_branch_unprotect, which use the legacy protect toggle and don't expose per-role access levels.4 params
List protected branches for a project via the modern Protected Branches API, including each branch's push/merge/unprotect access levels. Distinct from gitlab_branch_protect/gitlab_branch_unprotect, which use the legacy protect toggle and don't expose per-role access levels.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalName or part of the name of protected branches to search for.gitlab_registry_repositories_list#List container registry repositories for a project. The entire Container Registry API is otherwise uncovered by existing tools.5 params
List container registry repositories for a project. The entire Container Registry API is otherwise uncovered by existing tools.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).tagsbooleanoptionalIf true, each repository includes an array of its tags in the response.tags_countbooleanoptionalIf true, each repository includes a tags_count field in the response.gitlab_registry_repository_tags_list#List image tags in a project's container registry repository. Use gitlab_registry_repositories_list first to find the repository_id.4 params
List image tags in a project's container registry repository. Use gitlab_registry_repositories_list first to find the repository_id.
idstringrequiredThe project ID (numeric) or URL-encoded path.repository_idintegerrequiredThe ID of the registry repository.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_release_create#Create a new release in a GitLab project.5 params
Create a new release in a GitLab project.
descriptionstringrequiredRelease notes in Markdown format.idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredThe release name.tag_namestringrequiredThe tag name for the release.refstringoptionalThe branch or commit to create the tag from (only if tag does not exist).gitlab_release_delete#Delete a release from a GitLab project. Returns the deleted release object.2 params
Delete a release from a GitLab project. Returns the deleted release object.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe tag name of the release to delete.gitlab_release_get#Get a specific release by tag name.2 params
Get a specific release by tag name.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe tag name for the release.gitlab_release_link_create#Creates an asset link (a downloadable file or external URL) attached to a release.6 params
Creates an asset link (a downloadable file or external URL) attached to a release.
idstringrequiredThe project ID (numeric) or URL-encoded path.namestringrequiredThe name of the link. Must be unique within the release.tag_namestringrequiredThe tag associated with the release.urlstringrequiredThe URL of the link. Must be unique within the release.direct_asset_pathstringoptionalOptional path used to build a direct, permanent asset URL.link_typestringoptionalThe type of the link: other, runbook, image, or package. Defaults to other.gitlab_release_link_delete#Deletes an asset link from a release.3 params
Deletes an asset link from a release.
idstringrequiredThe project ID (numeric) or URL-encoded path.link_idintegerrequiredThe ID of the release link to delete.tag_namestringrequiredThe tag associated with the release.gitlab_release_link_get#Retrieves a specific asset link from a release.3 params
Retrieves a specific asset link from a release.
idstringrequiredThe project ID (numeric) or URL-encoded path.link_idintegerrequiredThe ID of the release link.tag_namestringrequiredThe tag associated with the release.gitlab_release_link_update#Updates the name, URL, or type of an existing release asset link.6 params
Updates the name, URL, or type of an existing release asset link.
idstringrequiredThe project ID (numeric) or URL-encoded path.link_idintegerrequiredThe ID of the release link to update.tag_namestringrequiredThe tag associated with the release.link_typestringoptionalThe type of the link: other, runbook, image, or package.namestringoptionalThe name of the link.urlstringoptionalThe URL of the link.gitlab_release_links_list#Lists all asset links attached to a release.4 params
Lists all asset links attached to a release.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe tag associated with the release.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_release_update#Update an existing release in a GitLab project.4 params
Update an existing release in a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe tag name of the release to update.descriptionstringoptionalUpdated release notes in Markdown format.namestringoptionalUpdated release name.gitlab_releases_list#List releases for a GitLab project.3 params
List releases for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_repository_tree_list#List files and directories in a GitLab repository.6 params
List files and directories in a GitLab repository.
idstringrequiredThe project ID (numeric) or URL-encoded path.pageintegeroptionalPage number for pagination.pathstringoptionalFolder path to list files from.per_pageintegeroptionalNumber of results per page (max 100).recursivestringoptionalIf 'true', lists files recursively.refstringoptionalThe branch, tag, or commit SHA to list files from.gitlab_snippet_create#Creates a personal snippet, not tied to any project, owned by the currently authenticated user.5 params
Creates a personal snippet, not tied to any project, owned by the currently authenticated user.
contentstringrequiredThe content of the snippet.file_namestringrequiredThe filename for the snippet.titlestringrequiredThe title of the snippet.descriptionstringoptionalOptional description for the snippet.visibilitystringoptionalVisibility level: private, internal, or public.gitlab_snippet_delete#Deletes a personal snippet.1 param
Deletes a personal snippet.
snippet_idintegerrequiredThe ID of the snippet to delete.gitlab_snippet_get#Retrieves a personal snippet by ID.1 param
Retrieves a personal snippet by ID.
snippet_idintegerrequiredThe ID of the snippet to retrieve.gitlab_snippet_update#Updates an existing personal snippet's title, description, visibility, or content.6 params
Updates an existing personal snippet's title, description, visibility, or content.
snippet_idintegerrequiredThe ID of the snippet to update.contentstringoptionalThe content of the snippet.descriptionstringoptionalOptional description for the snippet.file_namestringoptionalThe filename for the snippet.titlestringoptionalThe title of the snippet.visibilitystringoptionalVisibility level: private, internal, or public.gitlab_snippets_list#Lists all personal snippets owned by the currently authenticated user.4 params
Lists all personal snippets owned by the currently authenticated user.
created_afterstringoptionalOnly return snippets created after this timestamp.created_beforestringoptionalOnly return snippets created before this timestamp.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_ssh_key_add#Add an SSH key for the currently authenticated user.2 params
Add an SSH key for the currently authenticated user.
keystringrequiredThe SSH public key content.titlestringrequiredA descriptive title for the SSH key.gitlab_tag_create#Create a new tag in a GitLab repository.5 params
Create a new tag in a GitLab repository.
idstringrequiredThe project ID (numeric) or URL-encoded path.refstringrequiredThe commit SHA, branch name, or another tag name to create the tag from.tag_namestringrequiredThe name of the new tag.messagestringoptionalMessage for an annotated tag.release_descriptionstringoptionalRelease notes for the tag.gitlab_tag_delete#Delete a tag from a GitLab repository.2 params
Delete a tag from a GitLab repository.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe name of the tag to delete.gitlab_tag_get#Get details of a specific repository tag.2 params
Get details of a specific repository tag.
idstringrequiredThe project ID (numeric) or URL-encoded path.tag_namestringrequiredThe name of the tag.gitlab_tags_list#List repository tags for a GitLab project.6 params
List repository tags for a GitLab project.
idstringrequiredThe project ID (numeric) or URL-encoded path.order_bystringoptionalOrder tags by field (name, updated, version).pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalFilter tags by name.sortstringoptionalSort order: asc or desc.gitlab_todo_mark_done#Mark a single pending to-do item as done.1 param
Mark a single pending to-do item as done.
idintegerrequiredThe ID of the to-do item to mark as done.gitlab_todos_list#List the authenticated user's GitLab to-do items, with filters for action/author/project/group/state/type.8 params
List the authenticated user's GitLab to-do items, with filters for action/author/project/group/state/type.
actionstringoptionalFilter by the action that generated the to-do.author_idintegeroptionalFilter by the numeric ID of the user who triggered the to-do.group_idintegeroptionalFilter by the numeric ID of the group associated with the to-do.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).project_idintegeroptionalFilter by the numeric ID of the project associated with the to-do.statestringoptionalFilter by to-do state.typestringoptionalFilter by the type of resource the to-do is about.gitlab_user_block#Blocks a user account, preventing them from signing in. Administrators only.1 param
Blocks a user account, preventing them from signing in. Administrators only.
user_idintegerrequiredThe ID of the user to block.gitlab_user_create#Creates a new user account. Administrators only.11 params
Creates a new user account. Administrators only.
emailstringrequiredThe email address of the new user.namestringrequiredThe display name of the new user.usernamestringrequiredThe username of the new user.adminbooleanoptionalWhether the new user should be a GitLab administrator.biostringoptionalA short biography for the user's profile.can_create_groupbooleanoptionalWhether the user can create top-level groups.externalbooleanoptionalWhether the user is marked as an external user with restricted internal visibility.passwordstringoptionalThe password for the new user.projects_limitintegeroptionalThe maximum number of projects this user can create.reset_passwordbooleanoptionalWhether to send the user a password-reset token by email instead of setting a password.skip_confirmationbooleanoptionalWhether to mark the account as confirmed immediately, skipping the email confirmation step.gitlab_user_delete#Deletes a user account. Administrators only.2 params
Deletes a user account. Administrators only.
user_idintegerrequiredThe ID of the user to delete.hard_deletebooleanoptionalWhether to also remove all of the user's contributions (issues, comments, etc).gitlab_user_get#Get a specific user by ID.1 param
Get a specific user by ID.
idintegerrequiredThe ID of the user.gitlab_user_projects_list#List projects owned by a specific user.3 params
List projects owned by a specific user.
user_idintegerrequiredThe numeric ID of the user whose projects to list.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).gitlab_user_status_get#Retrieves the status message and emoji of a user. Does not require authentication.1 param
Retrieves the status message and emoji of a user. Does not require authentication.
user_idstringrequiredThe ID or username of the user.gitlab_user_unblock#Unblocks a previously-blocked user account, restoring their ability to sign in. Administrators only.1 param
Unblocks a previously-blocked user account, restoring their ability to sign in. Administrators only.
user_idintegerrequiredThe ID of the user to unblock.gitlab_user_update#Updates the details of an existing user account. Administrators only.9 params
Updates the details of an existing user account. Administrators only.
user_idintegerrequiredThe ID of the user to update.adminbooleanoptionalWhether the user should be a GitLab administrator.biostringoptionalA short biography for the user's profile.can_create_groupbooleanoptionalWhether the user can create top-level groups.emailstringoptionalThe email address of the user.externalbooleanoptionalWhether the user is marked as an external user with restricted internal visibility.namestringoptionalThe display name of the user.projects_limitintegeroptionalThe maximum number of projects this user can create.usernamestringoptionalThe username of the user.gitlab_users_list#List users. Supports filtering by search term, username, and active status.5 params
List users. Supports filtering by search term, username, and active status.
activestringoptionalFilter by active status. Use 'true' or 'false'.pageintegeroptionalPage number for pagination.per_pageintegeroptionalNumber of results per page (max 100).searchstringoptionalSearch users by name or email.usernamestringoptionalFilter by exact username.gitlab_wiki_page_create#Creates a new wiki page for a project.4 params
Creates a new wiki page for a project.
contentstringrequiredThe content of the wiki page.idstringrequiredThe project ID (numeric) or URL-encoded path.titlestringrequiredThe title of the wiki page.formatstringoptionalThe markup format of the wiki page. One of markdown, rdoc, asciidoc, or org.gitlab_wiki_page_delete#Deletes a wiki page from a project.2 params
Deletes a wiki page from a project.
idstringrequiredThe project ID (numeric) or URL-encoded path.slugstringrequiredThe slug of the wiki page to delete.gitlab_wiki_page_get#Retrieves a specific wiki page for a project by its slug.4 params
Retrieves a specific wiki page for a project by its slug.
idstringrequiredThe project ID (numeric) or URL-encoded path.slugstringrequiredThe slug of the wiki page to retrieve.render_htmlbooleanoptionalWhether to render the page content to HTML in the response.versionstringoptionalA specific version hash of the wiki page to retrieve.gitlab_wiki_page_update#Updates the title, content, or format of an existing wiki page.5 params
Updates the title, content, or format of an existing wiki page.
idstringrequiredThe project ID (numeric) or URL-encoded path.slugstringrequiredThe slug of the wiki page to update.contentstringoptionalThe content of the wiki page.formatstringoptionalThe markup format of the wiki page.titlestringoptionalThe title of the wiki page.gitlab_wiki_pages_list#Lists all wiki pages for a project.2 params
Lists all wiki pages for a project.
idstringrequiredThe project ID (numeric) or URL-encoded path.with_contentbooleanoptionalWhether to include each page's rendered content in the response.