# gitlab-mcp-server — Full Reference > Version 2.6.1 | up to 1071 tools | 32 base meta-tools; 49 self-managed enterprise meta-tools; 50 GitLab.com Enterprise meta-tools | 2 dynamic tools | 45 resources | 37 prompts ## Dynamic Toolset Dynamic mode is the default when `TOOL_SURFACE` is unset or set to `dynamic`. It exposes `gitlab_find_action` and `gitlab_execute_action` over the same canonical action catalog used by the meta-tool catalog. Models should find candidate actions with exact input schemas and safety metadata, then execute the canonical `domain.action` ID. Set `TOOL_SURFACE=meta` to use consolidated domain meta-tools instead. ### gitlab_find_action **GitLab Find Action** Search the local GitLab action catalog; read-only and no GitLab API call. Use when the action ID or params are unclear; returns schemas, hints, destructive flags, and execute examples. **Parameters:** - `explain` (boolean): When true, include deterministic scoring reasons for each returned action. Defaults to false to keep responses compact. - `limit` (integer): Maximum number of matches to return. Defaults to 20 and is capped at 50. - `query` (string) (required): Search terms combining a GitLab domain or resource with a verb, filter, or object name, such as project create, merge request approve, pipeline retry, issue delete, or ci variable. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### gitlab_execute_action **GitLab Execute Action** Execute one GitLab catalog action by canonical ID or alias. Always pass params as an object; destructive actions require top-level confirm=true. Use find first only when action or params are unclear. **Parameters:** - `action` (string) (required): Canonical action ID returned by gitlab_find_action, or a supported compatibility alias, such as project.list, issue.update, or issue.close. - `confirm` (boolean): Set top-level confirm=true to explicitly approve destructive actions; do not put confirm inside params for gitlab_execute_action. - `params` (object) (required): Required action-specific parameters object validated by the selected action schema. Use an empty object for actions with no parameters. Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true ## Meta-Tools Meta-tools are enabled with `TOOL_SURFACE=meta`. Each groups related operations under a single tool with an `action` parameter. ### gitlab_access **Access** Use {"action":"approve_group","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_access.. Action guidance: - approve_group: Approve a user group access request. Use after listing pending group requests and selecting the user_id to approve. - approve_project: Approve a user project access request. Use after listing pending requests and selecting the user_id to approve. - deny_group: Deny a pending group access request. Use only after confirming the user and scope to avoid rejecting the wrong request. - deny_project: Deny a pending project access request. Use only after confirming the user and scope to avoid rejecting the wrong request. - deploy_key_add: Use for SSH deploy keys that grant repository access to projects. - deploy_key_add_instance: Use for SSH deploy keys that grant repository access to projects. - deploy_key_delete: Use deploy_key_id returned by deploy key list/add/get operations. Do not use deploy_token_id; deploy tokens are a different resource. - deploy_key_enable: Use deploy_key_id returned by deploy key list/add/get operations. Do not use deploy_token_id; deploy tokens are a different resource. - deploy_key_get: Use deploy_key_id returned by deploy key list/add/get operations. Do not use deploy_token_id; deploy tokens are a different resource. - deploy_key_list_all: List ALL instance-level SSH deploy keys in one call (admin only). Use this instead of deploy_key_list_project when you need every key on the instance, not just those enabled for a single project. - deploy_key_list_project: Lists SSH deploy keys, not deploy tokens; use access.deploy_token_list_project when credentials/tokens are requested. - deploy_key_list_user_project: Use for SSH deploy keys that grant repository access to projects. - deploy_key_update: Use deploy_key_id returned by deploy key list/add/get operations. Do not use deploy_token_id; deploy tokens are a different resource. - deploy_token_create_group: Create a deploy token for a group so its projects share one set of pull/push credentials. Provide name, scopes, and optional expires_at; the secret token value is returned only once. - deploy_token_create_project: Create a deploy token for a project so CI or external clients can pull/push the registry or repository. Provide name, scopes, and optional expires_at; the secret token value is returned only once. - deploy_token_delete_group: Delete (revoke) a group deploy token by deploy_token_id. Use this to immediately invalidate leaked or unused group pull/push credentials. - deploy_token_delete_project: Delete (revoke) a project deploy token by deploy_token_id. Use this to immediately invalidate leaked or unused project pull/push credentials; pass the deploy token ID, not another token type. - deploy_token_get_group: Get one group deploy token by its deploy_token_id. Use this after listing to inspect a single token's scopes, expiry, and revoked state. - deploy_token_get_project: Get one project deploy token by its deploy_token_id. Use this after listing to inspect a single token's scopes, expiry, and revoked state. - deploy_token_list_all: List ALL deploy tokens across the whole GitLab instance in one call (admin only). Use this instead of deploy_token_list_project or deploy_token_list_group when you need every instance-wide token, not just those owned by a single project or group. - deploy_token_list_group: List the deploy tokens owned by one group. Use this to inventory a group's shared deploy credentials across its projects. - deploy_token_list_project: List the deploy tokens owned by one project. Use this to inventory a project's registry/repository deploy credentials before creating or revoking one. - invite_group: Invite a user to a group by email address or user_id with a chosen access_level. Use when adding someone who is not yet a group member, including external users invited by email; for users who already have an account prefer group.group_member_add. - invite_list_group: List the pending (not yet accepted) invitations for a group. Use to audit outstanding email invitations before resending or revoking them; this lists invitations, not current members. - invite_list_project: List the pending (not yet accepted) invitations for a project. Use to audit outstanding email invitations before resending or revoking them; this lists invitations, not current members. - invite_project: Invite a user to a project by email address or user_id with a chosen access_level. Use when adding someone who is not yet a project member, including external users invited by email; for users who already have an account prefer project.member_add. - request_group: Request membership access to a group for the authenticated user. Use to self-request joining a group; an owner must later approve or deny the request. - request_list_group: List pending group access requests. Use before approving or denying user access requests at group scope. Supports order_by, sort, and keyset pagination. - request_list_project: List pending project access requests. Use before approving or denying user access requests at project scope. Supports order_by, sort, and keyset pagination. - request_project: Request membership access to a project for the authenticated user. Use to self-request joining a project; a maintainer must later approve or deny the request. - token_group_create: Use for GitLab group access tokens; this action creates a group-scoped API token. - token_group_get: Use for GitLab group access tokens; this action gets a group-scoped API token. - token_group_list: Use for GitLab group access tokens; this action lists group-scoped API tokens. - token_group_revoke: Use for GitLab group access tokens; this action revokes a group-scoped API token. - token_group_rotate: Use for GitLab group access tokens; this action rotates a group-scoped API token. - token_group_rotate_self: Use for GitLab group access tokens; this action rotates a group-scoped API token. - token_personal_get: Use for GitLab personal access tokens; this action gets a personal-scoped API token. - token_personal_list: Use for GitLab personal access tokens; this action lists personal-scoped API tokens. - token_personal_revoke: Use for GitLab personal access tokens; this action revokes a personal-scoped API token. - token_personal_revoke_self: Use for GitLab personal access tokens; this action revokes a personal-scoped API token. - token_personal_rotate: Use for GitLab personal access tokens; this action rotates a personal-scoped API token. - token_personal_rotate_self: Use for GitLab personal access tokens; this action rotates a personal-scoped API token. - token_project_create: Use for GitLab project access tokens; this action creates a project-scoped API token. - token_project_get: Use for GitLab project access tokens; this action gets a project-scoped API token. - token_project_list: Use for GitLab project access tokens; this action lists project-scoped API tokens. - token_project_revoke: Use for GitLab project access tokens; this action revokes a project-scoped API token. - token_project_rotate: Use for GitLab project access tokens; this action rotates a project-scoped API token. - token_project_rotate_self: Use for GitLab project access tokens; this action rotates a project-scoped API token. Parameter guidance: - approve_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - approve_group.user_id: user_id; source: User ID from request_list_group output. - approve_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - approve_project.user_id: user_id; source: User ID from request_list_project output. - deny_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - deny_group.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - deny_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deny_project.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - deploy_key_add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_key_delete.deploy_key_id: deploy_key; source: Deploy key ID returned by deploy_key_add, deploy_key_get, deploy_key_list_project, or deploy_key_list_all.; avoid: Do not send deploy_token_id; deploy keys and deploy tokens are separate access resources., Do not use token_id for deploy key get/update/delete operations. - deploy_key_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_key_enable.deploy_key_id: deploy_key; source: Deploy key ID returned by deploy_key_add, deploy_key_get, deploy_key_list_project, or deploy_key_list_all.; avoid: Do not send deploy_token_id; deploy keys and deploy tokens are separate access resources., Do not use token_id for deploy key get/update/delete operations. - deploy_key_enable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_key_get.deploy_key_id: deploy_key; source: Deploy key ID returned by deploy_key_add, deploy_key_get, deploy_key_list_project, or deploy_key_list_all.; avoid: Do not send deploy_token_id; deploy keys and deploy tokens are separate access resources., Do not use token_id for deploy key get/update/delete operations. - deploy_key_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_key_list_all.page: page_offset; source: Optional 1-based page index. Combine with per_page to iterate the full instance key set. - deploy_key_list_all.per_page: page_size; source: Items per page (1-100). For bulk enumeration prefer keyset pagination via order_by+sort+page_token instead of repeated offset pages. - deploy_key_list_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_key_list_user_project.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - deploy_key_update.deploy_key_id: deploy_key; source: Deploy key ID returned by deploy_key_add, deploy_key_get, deploy_key_list_project, or deploy_key_list_all.; avoid: Do not send deploy_token_id; deploy keys and deploy tokens are separate access resources., Do not use token_id for deploy key get/update/delete operations. - deploy_key_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deploy_token_create_group.group_id: scope_group; source: Group ID or path owning the deploy token. - deploy_token_create_project.project_id: scope_project; source: Project ID or path owning the deploy token. - deploy_token_delete_group.deploy_token_id: deploy_token; source: Deploy token ID returned by deploy token list/get actions.; avoid: Do not use deploy_key_id; deploy keys are a different access resource. - deploy_token_delete_group.group_id: scope_group; source: Group ID or path owning the deploy token. - deploy_token_delete_project.deploy_token_id: deploy_token; source: Deploy token ID, not a project, deploy key, personal token, or runner ID.; avoid: Do not use deploy_key_id or token_id for project deploy token deletion. - deploy_token_delete_project.project_id: scope_owner_project; source: Project that owns the deploy token. - deploy_token_get_group.deploy_token_id: deploy_token; source: Deploy token ID returned by deploy token list/get actions.; avoid: Do not use deploy_key_id; deploy keys are a different access resource. - deploy_token_get_group.group_id: scope_group; source: Group ID or path owning the deploy token. - deploy_token_get_project.deploy_token_id: deploy_token; source: Deploy token ID returned by deploy token list/get actions.; avoid: Do not use deploy_key_id; deploy keys are a different access resource. - deploy_token_get_project.project_id: scope_project; source: Project ID or path owning the deploy token. - deploy_token_list_group.group_id: scope_group; source: Group ID or path owning the deploy token. - deploy_token_list_project.project_id: scope_project; source: Project ID or path owning the deploy token. - invite_group.access_level: access_level; source: Role to grant: 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.; avoid: Pass the numeric access level, not a role name like 'developer'. - invite_group.email: invite_email; source: Email address of the person to invite when they may not have an account yet.; avoid: Provide either email or user_id; supply email for people who are not yet GitLab users. - invite_group.expires_at: calendar_date; source: Date the invitation should expire, when the user requests one.; avoid: Use YYYY-MM-DD date only; this invitation field is not an RFC3339 timestamp. - invite_group.group_id: scope_group; source: Group ID or full group path the user is being invited to.; avoid: Use group_id for the group scope; use project_id only with project.invite_project. - invite_group.user_id: user_id; source: Numeric user ID when inviting an existing GitLab user.; avoid: Use user_id for existing accounts and email otherwise; do not pass a username here. - invite_list_group.group_id: scope_group; source: Group ID or full group path whose pending invitations should be listed.; avoid: Lists pending invitations, not accepted members; use group.members for current members. - invite_list_group.query; source: Substring to filter pending invitations by invite email or name.; avoid: query filters within this group's pending invitations; it does not replace group_id. - invite_list_project.project_id: scope_project; source: Project ID or full namespace path whose pending invitations should be listed.; avoid: Lists pending invitations, not accepted members; use project.members for current members. - invite_list_project.query; source: Substring to filter pending invitations by invite email or name.; avoid: query filters within this project's pending invitations; it does not replace project_id. - invite_project.access_level: access_level; source: Role to grant: 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.; avoid: Pass the numeric access level, not a role name like 'developer'. - invite_project.email: invite_email; source: Email address of the person to invite when they may not have an account yet.; avoid: Provide either email or user_id; supply email for people who are not yet GitLab users. - invite_project.expires_at: calendar_date; source: Date the invitation should expire, when the user requests one.; avoid: Use YYYY-MM-DD date only; this invitation field is not an RFC3339 timestamp. - invite_project.project_id: scope_project; source: Project ID or full namespace path the user is being invited to.; avoid: Use the target project here; use group_id only with group.invite_group. - invite_project.user_id: user_id; source: Numeric user ID when inviting an existing GitLab user.; avoid: Use user_id for existing accounts and email otherwise; do not pass a username here. - request_group.group_id: scope_group; source: Group numeric ID or full path to request access to. - request_list_group.group_id: scope_group; source: Group numeric ID or full path where requests are pending. - request_list_group.order_by; source: Column to order keyset-paginated results by (e.g. id).; avoid: Combine order_by with sort (asc/desc); do not pass natural-language phrases as the field value. - request_list_project.order_by; source: Column to order keyset-paginated results by (e.g. id).; avoid: Combine order_by with sort (asc/desc); do not pass natural-language phrases as the field value. - request_list_project.project_id: scope_project; source: Project numeric ID or path where access requests are pending. - request_project.project_id: scope_project; source: Project numeric ID or path to request access to. - token_group_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_group_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_group_get.token_id: access_token; source: Access token ID returned by token_group_list or token_group_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_group_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_group_revoke.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_group_revoke.token_id: access_token; source: Access token ID returned by token_group_list or token_group_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_group_rotate.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_group_rotate.token_id: access_token; source: Access token ID returned by token_group_list or token_group_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_group_rotate_self.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - token_personal_get.token_id: access_token; source: Access token ID returned by token_personal_list or token_personal_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_personal_list.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - token_personal_revoke.token_id: access_token; source: Access token ID returned by token_personal_list or token_personal_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_personal_rotate.token_id: access_token; source: Access token ID returned by token_personal_list or token_personal_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_project_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_project_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_project_get.token_id: access_token; source: Access token ID returned by token_project_list or token_project_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_project_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_project_revoke.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_project_revoke.token_id: access_token; source: Access token ID returned by token_project_list or token_project_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_project_rotate.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_project_rotate.token_id: access_token; source: Access token ID returned by token_project_list or token_project_get.; avoid: Do not use project_id, group_id, or user_id as token_id; token_id identifies the access token itself. - token_project_rotate_self.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab access credentials: access tokens (project/group/personal), deploy tokens, deploy keys, access requests, and invitations. Revoke/delete actions are destructive and irreversible. When to use: provision and audit who/what can access a project or group; rotate (not revoke+create) to roll a token without invalidating CI configurations. NOT for: SSH/GPG keys or impersonation tokens (use gitlab_user), PAT creation (use gitlab_user create_personal_access_token / create_current_user_pat — gitlab_access exposes token_personal_* for list/get/rotate/revoke only), instance admin operations (use gitlab_admin), project membership/permissions (use gitlab_project member_*), 2FA/MFA flows. Returns: - token_*_list / deploy_token_list_* / deploy_key_list_* / request_list_* / invite_list_*: arrays with pagination. - token_*_get / token_*_create / token_*_rotate / deploy_token_get_* / deploy_token_create_* / deploy_key_get / deploy_key_add / deploy_key_update / deploy_key_enable / approve_* / request_*: token / key / request / invitation object. Create / rotate include the cleartext token only ONCE — store it securely; subsequent reads return only the metadata. - token_*_revoke / deploy_token_delete_* / deploy_key_delete / deny_* : {success, message}. Errors: 401/403 (hint: requires Maintainer+ to manage project tokens, Owner for group, admin for instance / deploy_token_list_all / deploy_key_list_all / deploy_key_add_instance), 404 (hint: token_id and deploy_key_id are scoped to the project/group), 400 (hint: scopes must be a subset of {api, read_api, read_repository, write_repository, read_registry, write_registry}; expires_at must be a future ISO date). Param conventions: * = required. List actions accept page, per_page. Project/group token actions use project_id* or group_id*; personal token actions use user_id where documented, and self actions take no scope ID. Deploy token/key delete and token revoke are irreversible. Access tokens (token_*) — project, group, and personal scopes. Rotate generates a new token and invalidates the old one: - token_project_list / token_group_list: project_id* or group_id* - token_project_get / token_group_get: project_id* or group_id*, token_id* - token_project_create / token_group_create: project_id* or group_id*, name*, scopes*, expires_at, access_level - token_project_rotate / token_group_rotate: project_id* or group_id*, token_id*, expires_at - token_project_rotate_self / token_group_rotate_self: project_id* or group_id*, expires_at - token_project_revoke / token_group_revoke: project_id* or group_id*, token_id* - token_personal_list: user_id - token_personal_get: token_id* - token_personal_rotate: token_id*, expires_at - token_personal_rotate_self: expires_at - token_personal_revoke: token_id* - token_personal_revoke_self: (no params) Deploy tokens (deploy_token_*) — scoped to project or group, used for CI/CD registry access: - deploy_token_list_all: (admin only) - deploy_token_list_project / deploy_token_list_group: project_id* or group_id* - deploy_token_get_project / deploy_token_get_group: project_id* or group_id*, deploy_token_id* - deploy_token_create_project / deploy_token_create_group: project_id* or group_id*, name*, scopes*, expires_at - deploy_token_delete_project / deploy_token_delete_group: project_id* or group_id*, deploy_token_id* Deploy keys (deploy_key_*) — SSH keys for read/write repo access without a user account. For deploy-key wording, add/create maps to deploy_key_add, fetch/get maps to deploy_key_get, update maps to deploy_key_update, and delete/remove maps to deploy_key_delete. - deploy_key_list_project / deploy_key_list_user_project: project_id* - deploy_key_list_all: (admin only) - deploy_key_get: project_id*, deploy_key_id*. If a workflow says add/create, then fetch/get, then update/delete, call deploy_key_get with the id returned by deploy_key_add before updating. - deploy_key_add: project_id*, title*, key*, can_push - deploy_key_update: project_id*, deploy_key_id*, title, can_push - deploy_key_delete: project_id*, deploy_key_id* - deploy_key_enable: project_id*, deploy_key_id* - deploy_key_add_instance: title*, key* Access requests (request_*, approve_*, deny_*): - request_list_project / request_list_group: project_id* or group_id* - request_project / request_group: project_id* or group_id* - approve_project / approve_group: project_id* or group_id*, user_id*, access_level - deny_project / deny_group: project_id* or group_id*, user_id* Invitations (invite_*): - invite_list_project / invite_list_group: project_id* or group_id* - invite_project / invite_group: project_id* or group_id*, email*, access_level*, expires_at See also: gitlab_user (SSH/GPG keys, user PATs), gitlab_admin (instance admin), gitlab_project (project settings) Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
approve_group ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"} ```
approve_project ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"} ```
deny_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deny_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deploy_key_add ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"} ```
deploy_key_add_instance ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"projects_with_readonly_access":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":"object"},"type":["null","array"]},"projects_with_write_access":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":"object"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
deploy_key_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deploy_key_enable ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"} ```
deploy_key_get ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"} ```
deploy_key_list_all ```json {"additionalProperties":false,"properties":{"deploy_keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"projects_with_readonly_access":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":"object"},"type":["null","array"]},"projects_with_write_access":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":"object"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_keys","pagination"],"type":"object"} ```
deploy_key_list_project ```json {"additionalProperties":false,"properties":{"deploy_keys":{"items":{"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_keys","pagination"],"type":"object"} ```
deploy_key_list_user_project ```json {"additionalProperties":false,"properties":{"deploy_keys":{"items":{"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_keys","pagination"],"type":"object"} ```
deploy_key_update ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"fingerprint":{"type":"string"},"fingerprint_sha256":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key","can_push"],"type":"object"} ```
deploy_token_create_group ```json {"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"} ```
deploy_token_create_project ```json {"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"} ```
deploy_token_delete_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deploy_token_delete_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deploy_token_get_group ```json {"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"} ```
deploy_token_get_project ```json {"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"} ```
deploy_token_list_all ```json {"additionalProperties":false,"properties":{"deploy_tokens":{"items":{"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_tokens","pagination"],"type":"object"} ```
deploy_token_list_group ```json {"additionalProperties":false,"properties":{"deploy_tokens":{"items":{"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_tokens","pagination"],"type":"object"} ```
deploy_token_list_project ```json {"additionalProperties":false,"properties":{"deploy_tokens":{"items":{"additionalProperties":false,"properties":{"expired":{"type":"boolean"},"expires_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","revoked","expired","scopes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deploy_tokens","pagination"],"type":"object"} ```
invite_group ```json {"additionalProperties":false,"properties":{"message":{"additionalProperties":{"type":"string"},"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status"],"type":"object"} ```
invite_list_group ```json {"additionalProperties":false,"properties":{"invitations":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"created_by_name":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"invite_email":{"type":"string"},"user_name":{"type":"string"}},"required":["id","invite_email","access_level"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["invitations","pagination"],"type":"object"} ```
invite_list_project ```json {"additionalProperties":false,"properties":{"invitations":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"created_by_name":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"invite_email":{"type":"string"},"user_name":{"type":"string"}},"required":["id","invite_email","access_level"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["invitations","pagination"],"type":"object"} ```
invite_project ```json {"additionalProperties":false,"properties":{"message":{"additionalProperties":{"type":"string"},"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status"],"type":"object"} ```
request_group ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"} ```
request_list_group ```json {"additionalProperties":false,"properties":{"access_requests":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["access_requests","pagination"],"type":"object"} ```
request_list_project ```json {"additionalProperties":false,"properties":{"access_requests":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["access_requests","pagination"],"type":"object"} ```
request_project ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"requested_at":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name","state","access_level"],"type":"object"} ```
token_group_create ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_group_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_group_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
token_group_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_group_rotate ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_group_rotate_self ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_personal_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_personal_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
token_personal_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_personal_revoke_self ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_personal_rotate ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_personal_rotate_self ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_project_create ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_project_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_project_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
token_project_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_project_rotate ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
token_project_rotate_self ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","active"],"type":"object"} ```
### gitlab_admin **Admin** Use {"action":"alert_metric_image_delete","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_admin.. Action guidance: - alert_metric_image_delete: Delete a metric image from an alert. Provide project_id, alert_iid, and image id. - alert_metric_image_list: List the metric images attached to an alert in a project's incident/alert management. Provide project_id and alert_iid. - alert_metric_image_update: Update the url or url_text of an existing alert metric image. Provide project_id, alert_iid, and image id. - alert_metric_image_upload: Upload a metric image to an alert in a project. Provide project_id, alert_iid, and the image file; optionally a url and url_text. - app_statistics_get: Read GitLab instance-wide application statistics such as totals for users, groups, projects, issues, and merge requests. Requires administrator access. - appearance_get: Read the current GitLab application appearance and branding settings. Use this for logos, banners, PWA labels, and instance message colors rather than general application settings or version metadata. - appearance_update: Update GitLab application appearance and branding settings such as title, messages, colors, PWA labels, and profile guidance text. Requires administrator access and changes the instance UI immediately. - application_create: Create an instance-level OAuth application (admin only). Provide name, redirect_uri, and scopes; optionally mark it confidential or trusted. - application_delete: Delete an instance-level OAuth application by id (admin only), revoking its credentials. - application_list: List instance-level OAuth applications registered for the GitLab instance (admin only). - application_renew_secret: Renew (rotate) the secret of an instance-level OAuth application by id (admin only). The previous secret is invalidated immediately, so update every client that uses it with the new value returned. - broadcast_message_create: Create a broadcast message banner or notification (admin only). Provide message text and optionally theme, target_path, broadcast_type, dismissable, starts_at, and ends_at. - broadcast_message_delete: Delete a broadcast message by id (admin only), removing the banner or notification from the instance. - broadcast_message_get: Get one broadcast message by id. - broadcast_message_list: List all broadcast messages shown to users across the instance, including active and scheduled banners and notifications. - broadcast_message_update: Update a broadcast message by id (admin only). Send only the fields to change such as message, theme, schedule, or target. - bulk_import_cancel: Cancel an in-progress bulk import (direct-transfer migration) by id. - bulk_import_entity_failures: List the failures recorded for one bulk import entity, useful for diagnosing partial migrations. Provide import id and entity id. - bulk_import_entity_get: Get one entity (group or project) within a bulk import by import id and entity id to inspect its migration status. - bulk_import_entity_list: List the entities (groups and projects) being migrated within a bulk import, with per-entity status. Provide the bulk import id. - bulk_import_get: Get one bulk import (direct-transfer migration) by id to inspect its overall status. - bulk_import_list: List bulk imports (direct-transfer migrations) started by the authenticated user, with their status. - bulk_import_start: Start a group/project migration by direct transfer from another GitLab instance (admin/maintainer). Provide the source instance URL, access token, and entities to import. - cluster_agent_delete: Delete a GitLab Agent for Kubernetes from a project by project_id and agent id. - cluster_agent_get: Get one GitLab Agent for Kubernetes by project_id and agent id. - cluster_agent_list: List the GitLab Agents for Kubernetes registered in a project. Provide project_id. - cluster_agent_register: Register a new GitLab Agent for Kubernetes in a project. Provide project_id and the agent name. - cluster_agent_token_create: Create a token for a GitLab Agent for Kubernetes. Provide project_id, agent id, and a token name. - cluster_agent_token_get: Get one cluster agent token by project_id, agent id, and token id. - cluster_agent_token_list: List the tokens for a GitLab Agent for Kubernetes. Provide project_id and agent id. - cluster_agent_token_revoke: Revoke a cluster agent token by project_id, agent id, and token id, immediately invalidating it. - custom_attr_delete: Delete a custom attribute by key from a user, group, or project (admin only). - custom_attr_get: Get one custom attribute by key for a user, group, or project (admin only). - custom_attr_list: List custom attributes set on a user, group, or project (admin only). Custom attributes are admin-only key/value metadata. - custom_attr_set: Set (create or update) a custom attribute by key on a user, group, or project (admin only). Provide key and value. - db_migration_mark: Mark a background database migration as successfully completed (admin only). Provide the database name and migration version. Use with care; intended for recovering stuck migrations. - dependency_proxy_delete: Purge the dependency proxy cache for a group, freeing storage used by cached upstream images. Provide the group id. - error_tracking_create: Create an error-tracking client key for a project's integrated error tracking. Provide project_id. - error_tracking_delete: Delete an error-tracking client key from a project by project_id and key id. - error_tracking_get_settings: Get the integrated error-tracking settings for a project, including whether it is enabled. Provide project_id. - error_tracking_list: List the error-tracking client keys configured for a project (used by the integrated error tracking feature). Provide project_id. - error_tracking_update_settings: Enable or disable integrated error tracking for a project. Provide project_id and the active flag (and integrated mode where applicable). - feature_delete: Delete a feature flag by name (admin only), removing all of its gates and resetting it to its default state. - feature_list: List all defined feature flags and their current gate state on the instance. Use list_feature_definitions for the flag catalog with metadata. - feature_list_definitions: List feature flag definitions (the catalog) with metadata such as type, group, default state, and introduction milestone. - feature_set: Set or update a feature flag's gate (admin only). Provide name and a value such as true/false, a percentage, or scope it to feature_group, user, group, project, or namespace. - import_bitbucket: Import a repository from Bitbucket Cloud into GitLab. Provide Bitbucket credentials, the source repo, and the target namespace. - import_bitbucket_server: Import a repository from a self-hosted Bitbucket Server into GitLab. Provide the Bitbucket Server URL, credentials, the source project/repo, and the target namespace. - import_cancel_github: Cancel an in-progress GitHub import for a project. Provide the project_id of the importing project. - import_gists: Import the authenticated user's GitHub gists into GitLab snippets. Provide a GitHub personal access token. - import_github: Import a repository from GitHub into GitLab. Provide a GitHub personal access token, the repo_id, and the target namespace. - license_add: Install a new GitLab Enterprise license (admin only). Provide the license key string. Replaces the active license entitlements. - license_delete: Delete an installed license by id (admin only). Removing the active license downgrades the instance to Community/Free features. - license_get: Get the currently installed GitLab Enterprise license, including plan, expiration, user limits, and add-on entitlements. Requires administrator access. - metadata_get: Read GitLab instance metadata such as version and revision. Do not use this for application settings. - plan_limits_change: Change plan limits for a plan (admin only). Provide plan_name and only the limit keys to change, such as ci_pipeline_size or import file sizes. - plan_limits_get: Get the configured plan limits for a plan (admin only). Provide plan_name (e.g. default, free, premium) to read its resource caps. - secure_file_create: Upload a CI/CD secure file to a project. Provide project_id, the name, and the file content. - secure_file_delete: Remove a CI/CD secure file from a project by project_id and secure file id. - secure_file_get: Get metadata for one CI/CD secure file by project_id and secure file id. - secure_file_list: List the CI/CD secure files stored for a project (certificates, provisioning profiles, and similar). Provide project_id. - settings_get: Read current GitLab application settings. Use this for instance or application settings, not for server metadata or version information. - settings_update: Update GitLab application (instance) settings such as sign-up restrictions, default visibility, CI/CD defaults, rate limits, and feature toggles. Send only the keys to change. Requires administrator access. - sidekiq_compound_metrics: Get all Sidekiq metrics in one call: queue, process, and job statistics combined. - sidekiq_job_stats: Get aggregate Sidekiq job statistics for the instance such as processed, failed, and enqueued counts. - sidekiq_process_metrics: Get Sidekiq process metrics for the instance, listing running Sidekiq processes and their state. - sidekiq_queue_metrics: Get Sidekiq background-job queue metrics for the instance, including per-queue backlog and latency. - system_hook_add: Add an instance system hook (admin only). Provide url and optionally a token, SSL verification flag, and which event triggers to enable. - system_hook_delete: Delete an instance system hook by id (admin only), stopping it from receiving global event notifications. - system_hook_delete_url_variable: Delete one URL variable from an instance system hook (admin only). Provide the hook id and variable key. - system_hook_edit: Edit an instance system hook by id (admin only). Send only the fields to change: url, token, event triggers, or SSL verification. - system_hook_get: Get one instance system hook by its numeric hook id. - system_hook_list: List instance-wide system hooks that fire on global events such as project, group, user, and key changes. Distinct from per-project webhooks. - system_hook_set_url_variable: Create or update one URL variable for an instance system hook (admin only). Provide the hook id, variable key, and value. - system_hook_test: Fire a test event against an instance system hook by id to verify it is reachable and configured correctly. - terraform_state_delete: Delete a Terraform state by project_id and state name (admin/maintainer). Removes all versions of the state. - terraform_state_get: Get one Terraform state by project_id and state name, including its lock status. - terraform_state_list: List the Terraform states stored in a project's Terraform state backend. Provide project_id. - terraform_state_lock: Lock a Terraform state to prevent concurrent applies. Provide project_id and the state name. - terraform_state_unlock: Unlock a GitLab Terraform state by project_id and state name. Use params.name for the Terraform state name; do not send the state name as id. - terraform_version_delete: Delete a single version of a Terraform state by project_id, state name, and serial/version number. - topic_create: Create a new instance project topic (admin only). Provide name and optionally title, description, and avatar. - topic_delete: Delete a project topic by id (admin only). Projects keep their other topics; this only removes the topic definition. - topic_get: Get one instance project topic by its numeric topic id. - topic_list: List instance project topics, optionally filtered by a search term. Topics group related projects across the instance. - topic_update: Update an existing project topic by id (admin only). Send only the fields to change: name, title, description, or avatar. - usage_data_metric_definitions: Get the Service Ping metric definitions (the dictionary describing each usage metric, its category, and data type). - usage_data_non_sql_metrics: Get the non-SQL Service Ping metrics for the instance (metrics not derived from database queries). - usage_data_queries: Get the SQL queries that GitLab uses to build Service Ping metrics, useful for auditing what usage data is collected. - usage_data_service_ping: Get the latest Service Ping (usage data) payload that GitLab reports for the instance. - usage_data_track_event: Track a single internal usage event (admin only). Provide the event name and optional context for usage analytics. - usage_data_track_events: Track multiple internal usage events in one call (admin only). Provide an array of events with names and context. Parameter guidance: - alert_metric_image_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - alert_metric_image_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - alert_metric_image_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - alert_metric_image_upload.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - appearance_update.message_background_color: hex_color; source: Hex color string such as #e75e40 for the appearance banner background.; avoid: Provide a CSS-style hex color such as #ffffff; do not send color names or RGB tuples. - appearance_update.message_font_color: hex_color; source: Hex color string such as #ffffff for the appearance banner text.; avoid: Provide a CSS-style hex color such as #000000; do not send color names or RGB tuples. - cluster_agent_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_register.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_token_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_token_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_token_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - cluster_agent_token_revoke.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - dependency_proxy_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - error_tracking_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - error_tracking_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - error_tracking_get_settings.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - error_tracking_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - error_tracking_update_settings.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - import_cancel_github.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - secure_file_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - secure_file_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - secure_file_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - secure_file_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - terraform_state_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - terraform_state_lock.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - terraform_state_unlock.name: terraform_state_name; source: Terraform state name from the prompt or admin.terraform_state_list output.; avoid: Do not send the state name as id; use params.name. - terraform_state_unlock.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - terraform_version_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - usage_data_track_event.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - usage_data_track_event.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). GitLab self-managed instance administration: settings, license, broadcast messages, system hooks, Sidekiq monitoring, plan limits, OAuth applications, secure files, Terraform states, cluster agents, dependency proxy cache, plus bulk imports (GitLab→GitLab migrations) and external imports (GitHub/Bitbucket). Most actions require admin privileges. Delete/purge/revoke actions are destructive. When to use: instance-level admin tasks on a self-managed GitLab (settings, license, features, system hooks, Sidekiq monitoring, bulk imports between GitLab instances, external imports from GitHub/Bitbucket). NOT for: user CRUD (use gitlab_user), group/project administration (use gitlab_group / gitlab_project), MCP server itself (use gitlab_server), runtime feature flags per project (use gitlab_feature_flags), CI variables (use gitlab_ci_variable). Behavior: - Idempotent reads: settings_get / appearance_get / *_list / *_get / sidekiq_* / app_statistics_get / metadata_get / usage_data_service_ping / usage_data_non_sql_metrics / usage_data_queries / usage_data_metric_definitions / plan_limits_get / feature_list / feature_list_definitions. - settings_update / appearance_update / feature_set / plan_limits_change / custom_attr_set / error_tracking_update_settings are idempotent (same input → same state). license_add / system_hook_add / system_hook_test / broadcast_message_create / application_create / bulk_import_start / import_github / import_bitbucket / import_bitbucket_server / import_gists are NON-idempotent (re-invocation creates duplicates or new background jobs). - Side effects: license_add / system_hook_add / broadcast_message_create / settings_update / feature_set apply instance-wide IMMEDIATELY (all sessions affected); bulk_import_* and import_* queue long-running async migrations — poll bulk_import_get / bulk_import_entity_* until status='finished'; usage_data_track_event posts to Snowplow when send_to_snowplow=true; application_create returns the OAuth secret only ONCE. - Destructive: *_delete, license_delete, system_hook_delete, feature_delete, application_delete, broadcast_message_delete, custom_attr_delete, cluster_agent_delete, dependency_proxy_delete, secure_file_delete, terraform_state_delete / terraform_state_unlock, db_migration_mark, bulk_import_cancel and import_cancel_github are irreversible. db_migration_mark may corrupt the schema if used incorrectly. Returns: resource object for *_get/*_create/*_update/*_set/*_add; metrics object for Sidekiq/usage_data/app_statistics/metadata; paginated array for *_list / feature_list_definitions; {success, message} for *_delete/*_revoke/*_purge/*_unlock. Errors: 401/403 forbidden (hint: most actions require admin token), 404 not found, 400 invalid params (hint: license must be base64-encoded; system hook url must be https). Param conventions: * = required. List actions accept page, per_page. Topics: - topic_list: search - topic_get / topic_delete: topic_id* - topic_create: name*, title, description - topic_update: topic_id*, name, title, description Settings & appearance: - settings_get / appearance_get: (no params). If the task says "read current instance settings" or "get instance settings", call settings_get, not broadcast_message_list. - settings_update: settings (map of setting_name to value) - appearance_update: title, description, header_message, footer_message, message_background_color, message_font_color, email_header_and_footer_enabled, pwa_name, pwa_short_name, pwa_description, member_guidelines, new_project_guidelines, profile_image_guidelines Broadcast messages: - broadcast_message_list: (no params) lists existing broadcast messages only; it does not read instance settings. - broadcast_message_get / broadcast_message_delete: id* - broadcast_message_create: message*, starts_at, ends_at, broadcast_type, theme, dismissable (bool), target_path, target_access_levels - broadcast_message_update: id*, message, starts_at, ends_at, broadcast_type, theme, dismissable Instance feature flags: - feature_list / feature_list_definitions: (no params) - feature_set: name*, value*, key, feature_group, user, group, namespace, project, repository, force (bool) - feature_delete: name* License: - license_get: (no params) - license_add: license* (Base64-encoded) - license_delete: id* System hooks: - system_hook_list: (no params) - system_hook_get / system_hook_test / system_hook_delete: id* - system_hook_add: url*, token, signing_token, push_events, push_events_branch_filter, branch_filter_strategy, tag_push_events, merge_requests_events, repository_update_events, enable_ssl_verification - system_hook_edit: id*, url, name, description, token, signing_token, push_events, push_events_branch_filter, branch_filter_strategy, tag_push_events, merge_requests_events, repository_update_events, enable_ssl_verification - system_hook_set_url_variable: id*, key*, value* - system_hook_delete_url_variable: id*, key* Sidekiq metrics: sidekiq_queue_metrics / sidekiq_process_metrics / sidekiq_job_stats / sidekiq_compound_metrics (no params). Plan limits: - plan_limits_get: plan_name - plan_limits_change: plan_name*, conan_max_file_size, generic_packages_max_file_size, helm_max_file_size, maven_max_file_size, npm_max_file_size, nuget_max_file_size, pypi_max_file_size, terraform_module_max_file_size Usage data: - usage_data_service_ping / usage_data_non_sql_metrics / usage_data_queries / usage_data_metric_definitions: (no params) - usage_data_track_event: event*, send_to_snowplow (bool), namespace_id, project_id - usage_data_track_events: events* (array) OAuth applications: - application_list: (no params) - application_create: name*, redirect_uri*, scopes*, confidential (bool) - application_delete: id* Misc: - db_migration_mark: version*, database - app_statistics_get / metadata_get: (no params) Custom attributes: - custom_attr_list: resource_type* (user/group/project), resource_id* - custom_attr_get / custom_attr_delete: resource_type*, resource_id*, key* - custom_attr_set: resource_type*, resource_id*, key*, value* Bulk import: - bulk_import_start: url*, access_token*, entities* (array of {source_type, source_full_path, destination_slug, destination_namespace, migrate_projects (bool), migrate_memberships (bool)}) - bulk_import_list: status, page, per_page - bulk_import_get: id* - bulk_import_cancel: id* - bulk_import_entity_list: bulk_import_id, status, page, per_page - bulk_import_entity_get: bulk_import_id*, entity_id* - bulk_import_entity_failures: bulk_import_id*, entity_id* Error tracking: - error_tracking_list: project_id* - error_tracking_create: project_id* - error_tracking_delete: project_id*, key_id* - error_tracking_get_settings: project_id* - error_tracking_update_settings: project_id*, active (bool), integrated (bool) Alert metric images: - alert_metric_image_list: project_id*, alert_iid* - alert_metric_image_upload: project_id*, alert_iid*, url*, url_text - alert_metric_image_update: project_id*, alert_iid*, image_id*, url, url_text - alert_metric_image_delete: project_id*, alert_iid*, image_id* Secure files: - secure_file_list: project_id* - secure_file_get / secure_file_delete: project_id*, file_id* - secure_file_create: project_id*, name*, content* (base64-encoded) Terraform states: - terraform_state_list: project_path* - terraform_state_get: project_path*, name* - terraform_state_delete / terraform_state_lock / terraform_state_unlock: project_id*, name* - terraform_version_delete: project_id*, name*, serial* Cluster agents: - cluster_agent_list: project_id* - cluster_agent_get / cluster_agent_delete: project_id*, agent_id* - cluster_agent_register: project_id*, name* - cluster_agent_token_list: project_id*, agent_id* - cluster_agent_token_get / cluster_agent_token_revoke: project_id*, agent_id*, token_id* - cluster_agent_token_create: project_id*, agent_id*, name* Imports: - import_github: personal_access_token*, repo_id*, target_namespace*, new_name - import_bitbucket: bitbucket_username*, bitbucket_app_password*, repo_path*, target_namespace*, new_name - import_bitbucket_server: bitbucket_server_url*, bitbucket_server_username*, personal_access_token*, bitbucket_server_project*, bitbucket_server_repo*, new_namespace, new_name - import_cancel_github: project_id* - import_gists: personal_access_token* - dependency_proxy_delete: group_id* — purges the group's dependency proxy cache Parameter constraints (beyond schema): - broadcast_message_create.broadcast_type ∈ {banner, notification}; theme is a CSS hex color (e.g. '#E75E40'); target_access_levels uses GitLab numeric levels [10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner]; starts_at/ends_at are ISO 8601 timestamps and ends_at MUST be > starts_at. - feature_set.value accepts 'true' / 'false' / a 0–100 integer (percentage of time/actors) / 'actor:'; the optional key disambiguates 'percentage_of_time' vs 'percentage_of_actors'; user/group/namespace/project/repository scope the gate and are mutually-exclusive with each other. - plan_limits_change.*_max_file_size are sizes in BYTES; 0 disables the limit. Omitted fields keep their current value (partial update). - license_add.license is the Base64 of the raw .gitlab-license file (not the file path). - system_hook_add.url MUST be https when enable_ssl_verification=true; token is sent as X-Gitlab-Token on every delivery. - application_create.scopes is a SPACE-separated string of OAuth scopes (e.g. 'api read_user'); confidential=false enables PKCE for public clients. The client_secret is returned ONCE on creation and cannot be retrieved later. - cluster_agent_token_create returns the token ONCE; revoke + re-create to rotate. - secure_file_create.content is Base64-encoded; max size 5 MiB. - custom_attr_set.resource_type ∈ {user, group, project} and (resource_type, resource_id, key) is a unique upsert key. - bulk_import_start.entities[].source_type ∈ {group_entity, project_entity}; migrate_projects and migrate_memberships apply only to group_entity. destination_namespace must already exist on the target instance. - import_bitbucket_server.bitbucket_server_project is the project KEY (usually uppercase, from the Bitbucket URL), not the display name. - usage_data_track_event: namespace_id and project_id are mutually-exclusive context refs (provide at most one); send_to_snowplow=false keeps the event internal to GitLab. - db_migration_mark.database ∈ {main, ci}; defaults to 'main'. Marking a non-applied migration corrupts schema_migrations — verify first via metadata_get. - terraform_state_lock fails if the state is already locked; unlock breaks any active client session holding the lock. - topic_create.name must be globally unique (slug); title is the display name shown in the UI. - List actions: page defaults to 1, per_page defaults to 20 (GitLab cap is 100). See also: gitlab_user (user CRUD), gitlab_server (MCP server health and updates), gitlab_group / gitlab_project (group/project admin), gitlab_access (tokens, deploy keys, access requests). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
alert_metric_image_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
alert_metric_image_list ```json {"additionalProperties":false,"properties":{"images":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_path":{"type":"string"},"filename":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"},"url_text":{"type":"string"}},"required":["id","filename","file_path","url","url_text"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["images","pagination"],"type":"object"} ```
alert_metric_image_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_path":{"type":"string"},"filename":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"},"url_text":{"type":"string"}},"required":["id","filename","file_path","url","url_text"],"type":"object"} ```
alert_metric_image_upload ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_path":{"type":"string"},"filename":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"},"url_text":{"type":"string"}},"required":["id","filename","file_path","url","url_text"],"type":"object"} ```
app_statistics_get ```json {"additionalProperties":false,"properties":{"active_users":{"type":"integer"},"forks":{"type":"integer"},"groups":{"type":"integer"},"issues":{"type":"integer"},"merge_requests":{"type":"integer"},"milestones":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"type":"integer"},"projects":{"type":"integer"},"snippets":{"type":"integer"},"ssh_keys":{"type":"integer"},"users":{"type":"integer"}},"required":["forks","issues","merge_requests","notes","snippets","ssh_keys","milestones","users","groups","projects","active_users"],"type":"object"} ```
appearance_get ```json {"additionalProperties":false,"properties":{"appearance":{"additionalProperties":false,"properties":{"description":{"type":"string"},"email_header_and_footer_enabled":{"type":"boolean"},"favicon":{"type":"string"},"footer_message":{"type":"string"},"header_logo":{"type":"string"},"header_message":{"type":"string"},"logo":{"type":"string"},"member_guidelines":{"type":"string"},"message_background_color":{"type":"string"},"message_font_color":{"type":"string"},"new_project_guidelines":{"type":"string"},"profile_image_guidelines":{"type":"string"},"pwa_description":{"type":"string"},"pwa_icon":{"type":"string"},"pwa_name":{"type":"string"},"pwa_short_name":{"type":"string"},"title":{"type":"string"}},"required":["title","email_header_and_footer_enabled"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["appearance"],"type":"object"} ```
appearance_update ```json {"additionalProperties":false,"properties":{"appearance":{"additionalProperties":false,"properties":{"description":{"type":"string"},"email_header_and_footer_enabled":{"type":"boolean"},"favicon":{"type":"string"},"footer_message":{"type":"string"},"header_logo":{"type":"string"},"header_message":{"type":"string"},"logo":{"type":"string"},"member_guidelines":{"type":"string"},"message_background_color":{"type":"string"},"message_font_color":{"type":"string"},"new_project_guidelines":{"type":"string"},"profile_image_guidelines":{"type":"string"},"pwa_description":{"type":"string"},"pwa_icon":{"type":"string"},"pwa_name":{"type":"string"},"pwa_short_name":{"type":"string"},"title":{"type":"string"}},"required":["title","email_header_and_footer_enabled"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["appearance"],"type":"object"} ```
application_create ```json {"additionalProperties":false,"properties":{"application_id":{"type":"string"},"application_name":{"type":"string"},"callback_url":{"type":"string"},"confidential":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"type":"string"},"type":["null","array"]},"secret":{"type":"string"}},"required":["id","application_id","application_name","secret","callback_url","confidential"],"type":"object"} ```
application_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
application_list ```json {"additionalProperties":false,"properties":{"applications":{"items":{"additionalProperties":false,"properties":{"application_id":{"type":"string"},"application_name":{"type":"string"},"callback_url":{"type":"string"},"confidential":{"type":"boolean"},"id":{"type":"integer"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"secret":{"type":"string"}},"required":["id","application_id","application_name","secret","callback_url","confidential"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["applications","pagination"],"type":"object"} ```
application_renew_secret ```json {"additionalProperties":false,"properties":{"application_id":{"type":"string"},"application_name":{"type":"string"},"callback_url":{"type":"string"},"confidential":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"type":"string"},"type":["null","array"]},"secret":{"type":"string"}},"required":["id","application_id","application_name","secret","callback_url","confidential"],"type":"object"} ```
broadcast_message_create ```json {"additionalProperties":false,"properties":{"message":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"broadcast_type":{"type":"string"},"dismissable":{"type":"boolean"},"ends_at":{"type":"string"},"font":{"type":"string"},"id":{"type":"integer"},"message":{"type":"string"},"starts_at":{"type":"string"},"target_access_levels":{"items":{"type":"integer"},"type":["null","array"]},"target_path":{"type":"string"},"theme":{"type":"string"}},"required":["id","message","active","dismissable"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
broadcast_message_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
broadcast_message_get ```json {"additionalProperties":false,"properties":{"message":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"broadcast_type":{"type":"string"},"dismissable":{"type":"boolean"},"ends_at":{"type":"string"},"font":{"type":"string"},"id":{"type":"integer"},"message":{"type":"string"},"starts_at":{"type":"string"},"target_access_levels":{"items":{"type":"integer"},"type":["null","array"]},"target_path":{"type":"string"},"theme":{"type":"string"}},"required":["id","message","active","dismissable"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
broadcast_message_list ```json {"additionalProperties":false,"properties":{"messages":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"broadcast_type":{"type":"string"},"dismissable":{"type":"boolean"},"ends_at":{"type":"string"},"font":{"type":"string"},"id":{"type":"integer"},"message":{"type":"string"},"starts_at":{"type":"string"},"target_access_levels":{"items":{"type":"integer"},"type":["null","array"]},"target_path":{"type":"string"},"theme":{"type":"string"}},"required":["id","message","active","dismissable"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["messages","pagination"],"type":"object"} ```
broadcast_message_update ```json {"additionalProperties":false,"properties":{"message":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"broadcast_type":{"type":"string"},"dismissable":{"type":"boolean"},"ends_at":{"type":"string"},"font":{"type":"string"},"id":{"type":"integer"},"message":{"type":"string"},"starts_at":{"type":"string"},"target_access_levels":{"items":{"type":"integer"},"type":["null","array"]},"target_path":{"type":"string"},"theme":{"type":"string"}},"required":["id","message","active","dismissable"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
bulk_import_cancel ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"source_type":{"type":"string"},"source_url":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","status","source_type","source_url","created_at","updated_at","has_failures"],"type":"object"} ```
bulk_import_entity_failures ```json {"additionalProperties":false,"properties":{"bulk_import_id":{"type":"integer"},"entity_id":{"type":"integer"},"failures":{"items":{"additionalProperties":false,"properties":{"correlation_id_value":{"type":"string"},"created_at":{"type":"string"},"exception_class":{"type":"string"},"exception_message":{"type":"string"},"pipeline_class":{"type":"string"},"pipeline_step":{"type":"string"},"relation":{"type":"string"},"source_title":{"type":"string"},"source_url":{"type":"string"},"step":{"type":"string"}},"required":["relation","exception_message","exception_class","correlation_id_value","source_url","source_title","step","created_at","pipeline_class","pipeline_step"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["bulk_import_id","entity_id","failures"],"type":"object"} ```
bulk_import_entity_get ```json {"additionalProperties":false,"properties":{"bulk_import_id":{"type":"integer"},"created_at":{"type":"string"},"destination_full_path":{"type":"string"},"destination_name":{"type":"string"},"destination_namespace":{"type":"string"},"destination_slug":{"type":"string"},"entity_type":{"type":"string"},"failures":{"items":{"additionalProperties":false,"properties":{"correlation_id_value":{"type":"string"},"created_at":{"type":"string"},"exception_class":{"type":"string"},"exception_message":{"type":"string"},"pipeline_class":{"type":"string"},"pipeline_step":{"type":"string"},"relation":{"type":"string"},"source_title":{"type":"string"},"source_url":{"type":"string"},"step":{"type":"string"}},"required":["relation","exception_message","exception_class","correlation_id_value","source_url","source_title","step","created_at","pipeline_class","pipeline_step"],"type":"object"},"type":["null","array"]},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"migrate_memberships":{"type":"boolean"},"migrate_projects":{"type":"boolean"},"namespace_id":{"type":["null","integer"]},"parent_id":{"type":["null","integer"]},"project_id":{"type":["null","integer"]},"source_full_path":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"labels":{"additionalProperties":false,"properties":{"fetched":{"type":"integer"},"imported":{"type":"integer"},"source":{"type":"integer"}},"required":["source","fetched","imported"],"type":"object"},"milestones":{"additionalProperties":false,"properties":{"fetched":{"type":"integer"},"imported":{"type":"integer"},"source":{"type":"integer"}},"required":["source","fetched","imported"],"type":"object"}},"required":["labels","milestones"],"type":"object"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","bulk_import_id","status","entity_type","source_full_path","destination_full_path","destination_name","destination_slug","destination_namespace","created_at","updated_at","migrate_projects","migrate_memberships","has_failures","stats"],"type":"object"} ```
bulk_import_entity_list ```json {"additionalProperties":false,"properties":{"entities":{"items":{"additionalProperties":false,"properties":{"bulk_import_id":{"type":"integer"},"created_at":{"type":"string"},"destination_full_path":{"type":"string"},"destination_name":{"type":"string"},"destination_namespace":{"type":"string"},"destination_slug":{"type":"string"},"entity_type":{"type":"string"},"failures":{"items":{"additionalProperties":false,"properties":{"correlation_id_value":{"type":"string"},"created_at":{"type":"string"},"exception_class":{"type":"string"},"exception_message":{"type":"string"},"pipeline_class":{"type":"string"},"pipeline_step":{"type":"string"},"relation":{"type":"string"},"source_title":{"type":"string"},"source_url":{"type":"string"},"step":{"type":"string"}},"required":["relation","exception_message","exception_class","correlation_id_value","source_url","source_title","step","created_at","pipeline_class","pipeline_step"],"type":"object"},"type":["null","array"]},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"migrate_memberships":{"type":"boolean"},"migrate_projects":{"type":"boolean"},"namespace_id":{"type":["null","integer"]},"parent_id":{"type":["null","integer"]},"project_id":{"type":["null","integer"]},"source_full_path":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"labels":{"additionalProperties":false,"properties":{"fetched":{"type":"integer"},"imported":{"type":"integer"},"source":{"type":"integer"}},"required":["source","fetched","imported"],"type":"object"},"milestones":{"additionalProperties":false,"properties":{"fetched":{"type":"integer"},"imported":{"type":"integer"},"source":{"type":"integer"}},"required":["source","fetched","imported"],"type":"object"}},"required":["labels","milestones"],"type":"object"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","bulk_import_id","status","entity_type","source_full_path","destination_full_path","destination_name","destination_slug","destination_namespace","created_at","updated_at","migrate_projects","migrate_memberships","has_failures","stats"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["entities","pagination"],"type":"object"} ```
bulk_import_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"source_type":{"type":"string"},"source_url":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","status","source_type","source_url","created_at","updated_at","has_failures"],"type":"object"} ```
bulk_import_list ```json {"additionalProperties":false,"properties":{"migrations":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"source_type":{"type":"string"},"source_url":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","status","source_type","source_url","created_at","updated_at","has_failures"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["migrations","pagination"],"type":"object"} ```
bulk_import_start ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"has_failures":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_type":{"type":"string"},"source_url":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","status","source_type","source_url","created_at","updated_at","has_failures"],"type":"object"} ```
cluster_agent_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
cluster_agent_get ```json {"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name"],"type":"object"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","config_project"],"type":"object"} ```
cluster_agent_list ```json {"additionalProperties":false,"properties":{"agents":{"items":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name"],"type":"object"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","config_project"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["agents","pagination"],"type":"object"} ```
cluster_agent_register ```json {"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name"],"type":"object"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","config_project"],"type":"object"} ```
cluster_agent_token_create ```json {"additionalProperties":false,"properties":{"agent_id":{"type":"integer"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"token":{"type":"string"}},"required":["id","name","agent_id","status"],"type":"object"} ```
cluster_agent_token_get ```json {"additionalProperties":false,"properties":{"agent_id":{"type":"integer"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"token":{"type":"string"}},"required":["id","name","agent_id","status"],"type":"object"} ```
cluster_agent_token_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"agent_id":{"type":"integer"},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"token":{"type":"string"}},"required":["id","name","agent_id","status"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
cluster_agent_token_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
custom_attr_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
custom_attr_get ```json {"additionalProperties":false,"properties":{"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"value":{"type":"string"}},"required":["key","value"],"type":"object"} ```
custom_attr_list ```json {"additionalProperties":false,"properties":{"attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["attributes"],"type":"object"} ```
custom_attr_set ```json {"additionalProperties":false,"properties":{"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"value":{"type":"string"}},"required":["key","value"],"type":"object"} ```
db_migration_mark ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"version":{"type":"integer"}},"required":["status","version"],"type":"object"} ```
dependency_proxy_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
error_tracking_create ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_key":{"type":"string"},"sentry_dsn":{"type":"string"}},"required":["id","active","public_key","sentry_dsn"],"type":"object"} ```
error_tracking_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
error_tracking_get_settings ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"api_url":{"type":"string"},"integrated":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_name":{"type":"string"},"sentry_external_url":{"type":"string"}},"required":["active","project_name","integrated"],"type":"object"} ```
error_tracking_list ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_key":{"type":"string"},"sentry_dsn":{"type":"string"}},"required":["id","active","public_key","sentry_dsn"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["keys","pagination"],"type":"object"} ```
error_tracking_update_settings ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"api_url":{"type":"string"},"integrated":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_name":{"type":"string"},"sentry_external_url":{"type":"string"}},"required":["active","project_name","integrated"],"type":"object"} ```
feature_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
feature_list ```json {"additionalProperties":false,"properties":{"features":{"items":{"additionalProperties":false,"properties":{"definition":{"additionalProperties":false,"properties":{"default_enabled":{"type":"boolean"},"group":{"type":"string"},"introduced_by_url":{"type":"string"},"log_state_changes":{"type":"boolean"},"milestone":{"type":"string"},"name":{"type":"string"},"rollout_issue_url":{"type":"string"},"type":{"type":"string"}},"required":["name","log_state_changes","default_enabled"],"type":["null","object"]},"gates":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":true},"required":["key","value"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"state":{"type":"string"}},"required":["name","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["features"],"type":"object"} ```
feature_list_definitions ```json {"additionalProperties":false,"properties":{"definitions":{"items":{"additionalProperties":false,"properties":{"default_enabled":{"type":"boolean"},"group":{"type":"string"},"introduced_by_url":{"type":"string"},"log_state_changes":{"type":"boolean"},"milestone":{"type":"string"},"name":{"type":"string"},"rollout_issue_url":{"type":"string"},"type":{"type":"string"}},"required":["name","log_state_changes","default_enabled"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["definitions"],"type":"object"} ```
feature_set ```json {"additionalProperties":false,"properties":{"feature":{"additionalProperties":false,"properties":{"definition":{"additionalProperties":false,"properties":{"default_enabled":{"type":"boolean"},"group":{"type":"string"},"introduced_by_url":{"type":"string"},"log_state_changes":{"type":"boolean"},"milestone":{"type":"string"},"name":{"type":"string"},"rollout_issue_url":{"type":"string"},"type":{"type":"string"}},"required":["name","log_state_changes","default_enabled"],"type":["null","object"]},"gates":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":true},"required":["key","value"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"state":{"type":"string"}},"required":["name","state"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["feature"],"type":"object"} ```
import_bitbucket ```json {"additionalProperties":false,"properties":{"full_name":{"type":"string"},"full_path":{"type":"string"},"human_import_status_name":{"type":"string"},"id":{"type":"integer"},"import_source":{"type":"string"},"import_status":{"type":"string"},"name":{"type":"string"},"provider_link":{"type":"string"}},"required":["id","name","full_path","full_name","import_source","import_status"],"type":"object"} ```
import_bitbucket_server ```json {"additionalProperties":false,"properties":{"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","full_path","full_name"],"type":"object"} ```
import_cancel_github ```json {"additionalProperties":false,"properties":{"full_name":{"type":"string"},"full_path":{"type":"string"},"human_import_status_name":{"type":"string"},"id":{"type":"integer"},"import_source":{"type":"string"},"import_status":{"type":"string"},"name":{"type":"string"},"provider_link":{"type":"string"}},"required":["id","name","full_path","full_name","import_source","import_status"],"type":"object"} ```
import_gists ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
import_github ```json {"additionalProperties":false,"properties":{"full_name":{"type":"string"},"full_path":{"type":"string"},"human_import_status_name":{"type":"string"},"id":{"type":"integer"},"import_source":{"type":"string"},"import_status":{"type":"string"},"import_warning":{"type":"string"},"name":{"type":"string"},"provider_link":{"type":"string"},"refs_url":{"type":"string"},"relation_type":{"type":"string"}},"required":["id","name","full_path","full_name","import_source","import_status"],"type":"object"} ```
license_add ```json {"additionalProperties":false,"properties":{"license":{"additionalProperties":false,"properties":{"active_users":{"type":"integer"},"add_ons":{"additionalProperties":false,"properties":{"gitlab_auditor_user":{"type":"integer"},"gitlab_deploy_board":{"type":"integer"},"gitlab_file_locks":{"type":"integer"},"gitlab_geo":{"type":"integer"},"gitlab_service_desk":{"type":"integer"}},"required":["gitlab_auditor_user","gitlab_deploy_board","gitlab_file_locks","gitlab_geo","gitlab_service_desk"],"type":"object"},"created_at":{"type":"string"},"expired":{"type":"boolean"},"expires_at":{"type":"string"},"historical_max":{"type":"integer"},"id":{"type":"integer"},"licensee":{"additionalProperties":false,"properties":{"company":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"}},"required":["name","company","email"],"type":"object"},"maximum_user_count":{"type":"integer"},"overage":{"type":"integer"},"plan":{"type":"string"},"starts_at":{"type":"string"},"user_limit":{"type":"integer"}},"required":["id","plan","historical_max","maximum_user_count","expired","overage","user_limit","active_users","licensee","add_ons"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["license"],"type":"object"} ```
license_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
license_get ```json {"additionalProperties":false,"properties":{"license":{"additionalProperties":false,"properties":{"active_users":{"type":"integer"},"add_ons":{"additionalProperties":false,"properties":{"gitlab_auditor_user":{"type":"integer"},"gitlab_deploy_board":{"type":"integer"},"gitlab_file_locks":{"type":"integer"},"gitlab_geo":{"type":"integer"},"gitlab_service_desk":{"type":"integer"}},"required":["gitlab_auditor_user","gitlab_deploy_board","gitlab_file_locks","gitlab_geo","gitlab_service_desk"],"type":"object"},"created_at":{"type":"string"},"expired":{"type":"boolean"},"expires_at":{"type":"string"},"historical_max":{"type":"integer"},"id":{"type":"integer"},"licensee":{"additionalProperties":false,"properties":{"company":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"}},"required":["name","company","email"],"type":"object"},"maximum_user_count":{"type":"integer"},"overage":{"type":"integer"},"plan":{"type":"string"},"starts_at":{"type":"string"},"user_limit":{"type":"integer"}},"required":["id","plan","historical_max","maximum_user_count","expired","overage","user_limit","active_users","licensee","add_ons"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["license"],"type":"object"} ```
metadata_get ```json {"additionalProperties":false,"properties":{"enterprise":{"type":"boolean"},"kas":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"external_k8s_proxy_url":{"type":"string"},"external_url":{"type":"string"},"version":{"type":"string"}},"required":["enabled","external_url","external_k8s_proxy_url","version"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revision":{"type":"string"},"version":{"type":"string"}},"required":["version","revision","kas","enterprise"],"type":"object"} ```
plan_limits_change ```json {"additionalProperties":false,"properties":{"conan_max_file_size":{"type":"integer"},"generic_packages_max_file_size":{"type":"integer"},"helm_max_file_size":{"type":"integer"},"maven_max_file_size":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"npm_max_file_size":{"type":"integer"},"nuget_max_file_size":{"type":"integer"},"pypi_max_file_size":{"type":"integer"},"terraform_module_max_file_size":{"type":"integer"}},"required":["conan_max_file_size","generic_packages_max_file_size","helm_max_file_size","maven_max_file_size","npm_max_file_size","nuget_max_file_size","pypi_max_file_size","terraform_module_max_file_size"],"type":"object"} ```
plan_limits_get ```json {"additionalProperties":false,"properties":{"conan_max_file_size":{"type":"integer"},"generic_packages_max_file_size":{"type":"integer"},"helm_max_file_size":{"type":"integer"},"maven_max_file_size":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"npm_max_file_size":{"type":"integer"},"nuget_max_file_size":{"type":"integer"},"pypi_max_file_size":{"type":"integer"},"terraform_module_max_file_size":{"type":"integer"}},"required":["conan_max_file_size","generic_packages_max_file_size","helm_max_file_size","maven_max_file_size","npm_max_file_size","nuget_max_file_size","pypi_max_file_size","terraform_module_max_file_size"],"type":"object"} ```
secure_file_create ```json {"additionalProperties":false,"properties":{"checksum":{"type":"string"},"checksum_algorithm":{"type":"string"},"created_at":{"type":["null","string"]},"expires_at":{"type":["null","string"]},"id":{"type":"integer"},"metadata":{"additionalProperties":false,"properties":{"expires_at":{"type":["null","string"]},"id":{"type":"string"},"issuer":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"}},"required":["C","O","CN","OU"],"type":"object"},"subject":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"},"UID":{"type":"string"}},"required":["C","O","CN","OU","UID"],"type":"object"}},"required":["id","issuer","subject","expires_at"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","checksum","checksum_algorithm","created_at","expires_at","metadata"],"type":"object"} ```
secure_file_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
secure_file_get ```json {"additionalProperties":false,"properties":{"checksum":{"type":"string"},"checksum_algorithm":{"type":"string"},"created_at":{"type":["null","string"]},"expires_at":{"type":["null","string"]},"id":{"type":"integer"},"metadata":{"additionalProperties":false,"properties":{"expires_at":{"type":["null","string"]},"id":{"type":"string"},"issuer":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"}},"required":["C","O","CN","OU"],"type":"object"},"subject":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"},"UID":{"type":"string"}},"required":["C","O","CN","OU","UID"],"type":"object"}},"required":["id","issuer","subject","expires_at"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","checksum","checksum_algorithm","created_at","expires_at","metadata"],"type":"object"} ```
secure_file_list ```json {"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"checksum":{"type":"string"},"checksum_algorithm":{"type":"string"},"created_at":{"type":["null","string"]},"expires_at":{"type":["null","string"]},"id":{"type":"integer"},"metadata":{"additionalProperties":false,"properties":{"expires_at":{"type":["null","string"]},"id":{"type":"string"},"issuer":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"}},"required":["C","O","CN","OU"],"type":"object"},"subject":{"additionalProperties":false,"properties":{"C":{"type":"string"},"CN":{"type":"string"},"O":{"type":"string"},"OU":{"type":"string"},"UID":{"type":"string"}},"required":["C","O","CN","OU","UID"],"type":"object"}},"required":["id","issuer","subject","expires_at"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","checksum","checksum_algorithm","created_at","expires_at","metadata"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["files","pagination"],"type":"object"} ```
settings_get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"settings":{"additionalProperties":true,"type":"object"}},"required":["settings"],"type":"object"} ```
settings_update ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"settings":{"additionalProperties":true,"type":"object"}},"required":["settings"],"type":"object"} ```
sidekiq_compound_metrics ```json {"additionalProperties":false,"properties":{"jobs":{"additionalProperties":false,"properties":{"enqueued":{"type":"integer"},"failed":{"type":"integer"},"processed":{"type":"integer"}},"required":["processed","failed","enqueued"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"processes":{"items":{"additionalProperties":false,"properties":{"busy":{"type":"integer"},"concurrency":{"type":"integer"},"hostname":{"type":"string"},"labels":{"items":{"type":"string"},"type":["null","array"]},"pid":{"type":"integer"},"queues":{"items":{"type":"string"},"type":["null","array"]},"started_at":{"type":"string"},"tag":{"type":"string"}},"required":["hostname","pid","tag","started_at","queues","labels","concurrency","busy"],"type":"object"},"type":["null","array"]},"queues":{"items":{"additionalProperties":false,"properties":{"backlog":{"type":"integer"},"latency":{"type":"integer"},"name":{"type":"string"}},"required":["name","backlog","latency"],"type":"object"},"type":["null","array"]}},"required":["queues","processes","jobs"],"type":"object"} ```
sidekiq_job_stats ```json {"additionalProperties":false,"properties":{"jobs":{"additionalProperties":false,"properties":{"enqueued":{"type":"integer"},"failed":{"type":"integer"},"processed":{"type":"integer"}},"required":["processed","failed","enqueued"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["jobs"],"type":"object"} ```
sidekiq_process_metrics ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"processes":{"items":{"additionalProperties":false,"properties":{"busy":{"type":"integer"},"concurrency":{"type":"integer"},"hostname":{"type":"string"},"labels":{"items":{"type":"string"},"type":["null","array"]},"pid":{"type":"integer"},"queues":{"items":{"type":"string"},"type":["null","array"]},"started_at":{"type":"string"},"tag":{"type":"string"}},"required":["hostname","pid","tag","started_at","queues","labels","concurrency","busy"],"type":"object"},"type":["null","array"]}},"required":["processes"],"type":"object"} ```
sidekiq_queue_metrics ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"queues":{"items":{"additionalProperties":false,"properties":{"backlog":{"type":"integer"},"latency":{"type":"integer"},"name":{"type":"string"}},"required":["name","backlog","latency"],"type":"object"},"type":["null","array"]}},"required":["queues"],"type":"object"} ```
system_hook_add ```json {"additionalProperties":false,"properties":{"hook":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"enable_ssl_verification":{"type":"boolean"},"id":{"type":"integer"},"merge_requests_events":{"type":"boolean"},"name":{"type":"string"},"push_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]}},"required":["id","url","push_events","tag_push_events","merge_requests_events","repository_update_events","enable_ssl_verification","token_present","signing_token_present"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["hook"],"type":"object"} ```
system_hook_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
system_hook_delete_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
system_hook_edit ```json {"additionalProperties":false,"properties":{"hook":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"enable_ssl_verification":{"type":"boolean"},"id":{"type":"integer"},"merge_requests_events":{"type":"boolean"},"name":{"type":"string"},"push_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]}},"required":["id","url","push_events","tag_push_events","merge_requests_events","repository_update_events","enable_ssl_verification","token_present","signing_token_present"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["hook"],"type":"object"} ```
system_hook_get ```json {"additionalProperties":false,"properties":{"hook":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"enable_ssl_verification":{"type":"boolean"},"id":{"type":"integer"},"merge_requests_events":{"type":"boolean"},"name":{"type":"string"},"push_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]}},"required":["id","url","push_events","tag_push_events","merge_requests_events","repository_update_events","enable_ssl_verification","token_present","signing_token_present"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["hook"],"type":"object"} ```
system_hook_list ```json {"additionalProperties":false,"properties":{"hooks":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"enable_ssl_verification":{"type":"boolean"},"id":{"type":"integer"},"merge_requests_events":{"type":"boolean"},"name":{"type":"string"},"push_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]}},"required":["id","url","push_events","tag_push_events","merge_requests_events","repository_update_events","enable_ssl_verification","token_present","signing_token_present"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["hooks"],"type":"object"} ```
system_hook_set_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
system_hook_test ```json {"additionalProperties":false,"properties":{"event":{"additionalProperties":false,"properties":{"event_name":{"type":"string"},"name":{"type":"string"},"owner_email":{"type":"string"},"owner_name":{"type":"string"},"path":{"type":"string"},"project_id":{"type":"integer"}},"required":["event_name","name","path","project_id","owner_name","owner_email"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["event"],"type":"object"} ```
terraform_state_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
terraform_state_get ```json {"additionalProperties":false,"properties":{"download_path":{"type":"string"},"latest_serial":{"minimum":0,"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name"],"type":"object"} ```
terraform_state_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"states":{"items":{"additionalProperties":false,"properties":{"download_path":{"type":"string"},"latest_serial":{"minimum":0,"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name"],"type":"object"},"type":["null","array"]}},"required":["states"],"type":"object"} ```
terraform_state_lock ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"success":{"type":"boolean"}},"required":["success","message"],"type":"object"} ```
terraform_state_unlock ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"success":{"type":"boolean"}},"required":["success","message"],"type":"object"} ```
terraform_version_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
topic_create ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"topic":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"},"total_projects_count":{"minimum":0,"type":"integer"}},"required":["id","name","title","total_projects_count"],"type":"object"}},"required":["topic"],"type":"object"} ```
topic_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
topic_get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"topic":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"},"total_projects_count":{"minimum":0,"type":"integer"}},"required":["id","name","title","total_projects_count"],"type":"object"}},"required":["topic"],"type":"object"} ```
topic_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"topics":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"},"total_projects_count":{"minimum":0,"type":"integer"}},"required":["id","name","title","total_projects_count"],"type":"object"},"type":["null","array"]}},"required":["topics","pagination"],"type":"object"} ```
topic_update ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"topic":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"},"total_projects_count":{"minimum":0,"type":"integer"}},"required":["id","name","title","total_projects_count"],"type":"object"}},"required":["topic"],"type":"object"} ```
usage_data_metric_definitions ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"yaml":{"type":"string"}},"required":["yaml"],"type":"object"} ```
usage_data_non_sql_metrics ```json {"additionalProperties":false,"properties":{"active_user_count":{"type":"integer"},"edition":{"type":"string"},"historical_max_users":{"type":"integer"},"hostname":{"type":"string"},"installation_type":{"type":"string"},"license":{"additionalProperties":{"type":"string"},"type":"object"},"license_add_ons":{"additionalProperties":{"type":"integer"},"type":"object"},"license_expires_at":{"type":"string"},"license_id":{"type":"string"},"license_md5":{"type":"string"},"license_plan":{"type":"string"},"license_sha256":{"type":"string"},"license_starts_at":{"type":"string"},"license_subscription_id":{"type":"string"},"license_trial":{"type":"string"},"license_user_count":{"type":"integer"},"licensee":{"additionalProperties":{"type":"string"},"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"recorded_at":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"uuid":{"type":"string"},"version":{"type":"string"}},"required":["recorded_at","uuid","hostname","version","installation_type","active_user_count","edition","license_md5","license_sha256","license_id","historical_max_users","licensee","license_user_count","license_starts_at","license_expires_at","license_plan","license_add_ons","license_trial","license_subscription_id","license","settings"],"type":"object"} ```
usage_data_queries ```json {"additionalProperties":false,"properties":{"active_user_count":{"type":"string"},"counts":{"additionalProperties":{"type":"string"},"type":"object"},"edition":{"type":"string"},"historical_max_users":{"type":"integer"},"hostname":{"type":"string"},"installation_type":{"type":"string"},"license":{"additionalProperties":{"type":"string"},"type":"object"},"license_add_ons":{"additionalProperties":{"type":"integer"},"type":"object"},"license_expires_at":{"type":"string"},"license_id":{"type":"string"},"license_md5":{"type":"string"},"license_plan":{"type":"string"},"license_sha256":{"type":"string"},"license_starts_at":{"type":"string"},"license_subscription_id":{"type":"string"},"license_trial":{"type":"string"},"license_user_count":{"type":"integer"},"licensee":{"additionalProperties":{"type":"string"},"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"recorded_at":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"uuid":{"type":"string"},"version":{"type":"string"}},"required":["recorded_at","uuid","hostname","version","installation_type","active_user_count","edition","license_md5","license_sha256","license_id","historical_max_users","licensee","license_user_count","license_starts_at","license_expires_at","license_plan","license_add_ons","license_trial","license_subscription_id","license","settings","counts"],"type":"object"} ```
usage_data_service_ping ```json {"additionalProperties":false,"properties":{"counts":{"additionalProperties":{"type":"integer"},"type":"object"},"license":{"additionalProperties":{"type":"string"},"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"recorded_at":{"type":"string"}},"required":["recorded_at","license","counts"],"type":"object"} ```
usage_data_track_event ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status"],"type":"object"} ```
usage_data_track_events ```json {"additionalProperties":false,"properties":{"count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","count"],"type":"object"} ```
### gitlab_branch **Branch** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_branch.. Action guidance: - create: Create a branch from a source ref (branch/tag/commit). Use when preparing feature branches or release branches. - delete: Delete one branch by name. Use only for confirmed cleanup tasks when the branch is no longer needed. - delete_merged: Delete merged branches in a project. Use with caution for branch hygiene after confirming merge status requirements. - get: Get one branch by project_id and branch_name. Use when a specific branch is referenced and exact branch protection/default metadata is needed. - get_protected: Get one protected branch (or wildcard rule) by project_id and branch_name. Use to inspect current push/merge/unprotect access levels before updating or unprotecting. - list: List repository branches for one project with optional search and pagination. Use this before branch-level operations and when selecting refs for compare/MR flows. - list_protected: List protected branches (and wildcard rules) for one project with optional search and pagination. Use to audit branch protection coverage before changing rules. - protect: Protect a branch and set branch protection access levels. Use numeric integers for access levels: 0 means No access, 30 means Developer, and 40 means Maintainer. - rule_list: Audit a project's aggregated branch protection rules in one call: each rule's matched branch pattern, default/protected flags, matching branch count, allow-force-push and code-owner-approval settings, approval rules, and external status checks. Use this when reviewing branch protection posture across a project; for the protected-branch REST records (allowed-to-push/merge access levels) use branch.list_protected or branch.get_protected instead. - unprotect: Remove protection from a branch by project_id and branch_name. Use before deleting a protected branch or when relaxing branch protection rules. Idempotent: succeeds when the branch is already unprotected. - update_protected: Update an existing protected branch rule by project_id and branch_name. Use to change allow-force-push, CODEOWNERS approval, rename the rule, or replace fine-grained push/merge/unprotect access entries. Parameter guidance: - create.branch_name: git_branch; source: Name for the new branch to create. - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.ref: git_ref; source: Existing branch/tag/commit used as creation source. - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete_merged.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.branch_name: git_branch; source: Branch name from task context or branch list output. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get_protected.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.project_id: scope_project; source: Project numeric ID or full path containing branches. - list_protected.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protect.merge_access_level: branch_protection_merge_access_level; source: Use integer access levels only: 0 for No access, 30 for Developer, 40 for Maintainer.; avoid: Do not send labels such as maintainer or developers when an integer is possible. - protect.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protect.push_access_level: branch_protection_push_access_level; source: Use integer access levels only: 0 for No access, 30 for Developer, 40 for Maintainer.; avoid: Do not send labels such as maintainer or developers when an integer is possible. - rule_list.project_path: scope_project; source: Full project path used by GraphQL branch rule query. - unprotect.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update_protected.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage Git branches and branch protections in a project, plus aggregated branch rules (GraphQL). Delete and unprotect are destructive and irreversible. When to use: create/list/delete branches, protect or update protection on branches, audit aggregated branch rules (push/merge access, approval rules, status checks). NOT for: file contents on a branch (use gitlab_repository file_get/file_create/...), commit operations (use gitlab_repository commit_*), tags (use gitlab_tag), opening MRs against a branch (use gitlab_merge_request). Returns: - list / list_protected: array of {name, default, protected, merged, commit, ...} with pagination. - get / get_protected / create / protect / update_protected: branch or protection object. - delete / delete_merged / unprotect: {success: bool, message: string}. - rule_list: GraphQL aggregated view {nodes: [{name, branch_protection, approval_rules, external_status_checks}], page_info}. Errors: 404 not found, 403 forbidden (hint: requires Maintainer+ to protect/unprotect), 400 invalid params (hint: cannot delete default or protected branches — unprotect first). Param conventions: * = required. All actions need project_id* (numeric or url-encoded path) except rule_list which uses project_path*. Access levels: 0 = no one, 30 = Developer, 40 = Maintainer. - create: project_id*, branch_name*, ref* (branch/tag/SHA) - get / delete: project_id*, branch_name* - list: project_id*, search, page, per_page - delete_merged: project_id* — deletes all merged branches except default/protected - protect: project_id*, branch_name*, push_access_level (0/30/40), merge_access_level (0/30/40), allow_force_push (bool) - unprotect: project_id*, branch_name* - list_protected: project_id* - get_protected: project_id*, branch_name* - update_protected: project_id*, branch_name*, allow_force_push (bool), code_owner_approval_required (bool) - rule_list: project_path* (e.g. my-group/my-project), first (max 100), after (cursor) See also: gitlab_repository (file/commit operations on a branch), gitlab_merge_request (open MRs against a branch), gitlab_tag (tag CRUD/protection). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","web_url"],"type":["null","object"]},"default":{"type":"boolean"},"developers_can_merge":{"type":"boolean"},"developers_can_push":{"type":"boolean"},"merged":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"web_url":{"type":"string"}},"required":["name","merged","protected","default","web_url","can_push","developers_can_push","developers_can_merge"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete_merged ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","web_url"],"type":["null","object"]},"default":{"type":"boolean"},"developers_can_merge":{"type":"boolean"},"developers_can_push":{"type":"boolean"},"merged":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"web_url":{"type":"string"}},"required":["name","merged","protected","default","web_url","can_push","developers_can_push","developers_can_merge"],"type":"object"} ```
get_protected ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"branches":{"items":{"additionalProperties":false,"properties":{"can_push":{"type":"boolean"},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","web_url"],"type":["null","object"]},"default":{"type":"boolean"},"developers_can_merge":{"type":"boolean"},"developers_can_push":{"type":"boolean"},"merged":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"web_url":{"type":"string"}},"required":["name","merged","protected","default","web_url","can_push","developers_can_push","developers_can_merge"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["branches","pagination"],"type":"object"} ```
list_protected ```json {"additionalProperties":false,"properties":{"branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["branches","pagination"],"type":"object"} ```
protect ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":"object"} ```
rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"},"rules":{"items":{"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"name":{"type":"string"},"type":{"type":"string"}},"required":["name","approvals_required"],"type":"object"},"type":["null","array"]},"branch_protection":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"}},"required":["allow_force_push","code_owner_approval_required"],"type":["null","object"]},"created_at":{"type":"string"},"external_status_checks":{"items":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"name":{"type":"string"}},"required":["name","external_url"],"type":"object"},"type":["null","array"]},"is_default":{"type":"boolean"},"is_protected":{"type":"boolean"},"matching_branches_count":{"type":"integer"},"name":{"type":"string"},"updated_at":{"type":"string"}},"required":["name","is_default","is_protected","matching_branches_count"],"type":"object"},"type":["null","array"]}},"required":["rules","pagination"],"type":"object"} ```
unprotect ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
update_protected ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":"object"} ```
### gitlab_ci_catalog **CI Catalog** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_ci_catalog.. Action guidance: - get: Fetch one CI/CD Catalog resource by its GID or by the full_path of the hosting project. Use after browsing the catalog when the prompt names a specific component project and you need its components, input parameters, README, and released versions to wire an include into a pipeline. - list: Browse the CI/CD Catalog of published component projects. Use search to match by name or description, scope to limit to your namespace (NAMESPACED) or the whole instance (ALL), and sort by name, latest release, or star count when the prompt asks for reusable pipeline components or templates to include. Discover and inspect CI/CD Catalog resources (reusable pipeline components and templates published by groups for import into .gitlab-ci.yml). Read-only; GraphQL endpoint. The underlying GitLab API requires a Premium/Ultimate plan on the target instance (server enforces it with 403); the tool itself is always registered and is not gated by GITLAB_TIER. When to use: browse the Catalog to find reusable components, inspect a component's versions before pinning it in `include:component`, or audit which Catalog resources a publisher group exposes. NOT for: running pipelines or pipeline definitions (use gitlab_pipeline), built-in GitLab templates such as gitignore/Dockerfile/license (use gitlab_template), CI YAML linting (use gitlab_template action=lint). Returns: - list: {nodes: [{id, full_path, name, description, latest_version, star_count}], page_info: {end_cursor, has_next_page}}. - get: {id, full_path, name, description, latest_version, star_count, versions: [{version, released_at, tag_name}]}. Errors: 404 not found (hint: check full_path or id), 403 forbidden (hint: requires Premium/Ultimate or Catalog read access), 400 invalid params (hint: provide id OR full_path). Param conventions: * = required. id format = GID (gid://gitlab/Ci::Catalog::Resource/123). full_path = namespace/project (e.g. mygroup/components/docker-build). - list: search, scope (ALL/NAMESPACED), sort (NAME_ASC/NAME_DESC/LATEST_RELEASED_AT_ASC/LATEST_RELEASED_AT_DESC/STAR_COUNT_ASC/STAR_COUNT_DESC), first (max 100), after (cursor) - get: exactly one of id* or full_path* (mutually exclusive) See also: gitlab_template (built-in templates and CI lint), gitlab_pipeline (run pipelines using catalog components), gitlab_project (publisher project metadata). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"include_path":{"type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"default":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"},"type":{"type":"string"}},"required":["name","required"],"type":"object"},"type":["null","array"]},"name":{"type":"string"}},"required":["name","include_path"],"type":"object"},"type":["null","array"]},"description":{"type":"string"},"forks_count":{"type":"integer"},"full_path":{"type":"string"},"icon":{"type":"string"},"id":{"type":"string"},"latest_released_at":{"type":"string"},"latest_version_name":{"type":"string"},"name":{"type":"string"},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"readme_html":{"type":"string"},"star_count":{"type":"integer"},"versions":{"items":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"include_path":{"type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"default":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"},"type":{"type":"string"}},"required":["name","required"],"type":"object"},"type":["null","array"]},"name":{"type":"string"}},"required":["name","include_path"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"released_at":{"type":"string"}},"required":["name","released_at"],"type":"object"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["id","name","full_path","web_url","star_count","forks_count","open_issues_count","open_merge_requests_count"],"type":"object"}},"required":["resource"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"},"resources":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"forks_count":{"type":"integer"},"full_path":{"type":"string"},"icon":{"type":"string"},"id":{"type":"string"},"latest_released_at":{"type":"string"},"latest_version_name":{"type":"string"},"name":{"type":"string"},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"star_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","name","full_path","web_url","star_count","forks_count","open_issues_count","open_merge_requests_count"],"type":"object"},"type":["null","array"]}},"required":["resources","pagination"],"type":"object"} ```
### gitlab_ci_variable **CI Variable** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_ci_variable.. Action guidance: - create: Create a CI/CD variable in a project. Use for pipeline/runtime configuration that should not be stored in repository files. - delete: Delete a project CI/CD variable by key (and optional environment scope). Use to remove obsolete or leaked pipeline configuration values. - get: Get one CI/CD variable by key (and optional environment scope). Use when exact variable settings are needed. - group_create: Create a CI/CD variable in a group. Use for pipeline/runtime configuration shared across the group's projects. - group_delete: Delete a group CI/CD variable by key, selecting an environment-scoped instance via the filter. - group_get: Get one group CI/CD variable by key (and optional environment scope). Use when exact variable settings are needed. - group_list: List group CI/CD variables with pagination and optional filters. Use to inspect variable inventory before get/update/delete actions. - group_update: Update a group CI/CD variable, selecting an environment-scoped instance via the filter. Use to change a variable's value or flags. - instance_create: Create an instance-level CI/CD variable. Admin-only. Use for instance-wide pipeline/runtime configuration that should not be stored in repository files. - instance_delete: Delete an instance-level CI/CD variable by key. Admin-only. - instance_get: Get one instance-level CI/CD variable by key. Admin-only. Use when exact variable settings are needed. - instance_list: List instance-level CI/CD variables with order_by, sort, and offset or keyset pagination. Admin-only. Use to inspect the instance variable inventory before get/update/delete actions. - instance_update: Update an instance-level CI/CD variable by key. Admin-only. - list: List project CI/CD variables with pagination and optional filters. Use to inspect variable inventory before get/update/delete actions. - update: Update an existing project CI/CD variable's value or flags by key (and optional environment scope). Use to rotate secrets or change protected/masked settings without recreating the variable. Parameter guidance: - create.key: ci_variable_key; source: Variable key name to create. - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.value: ci_variable_value; source: Variable value text (secret or plain based on masked/protected settings). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.environment_scope: environment_scope; source: Optional environment scope string; use * for global variable scope. - get.key: ci_variable_key; source: Variable key from list output or task context. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - group_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_create.key: ci_variable_key; source: Variable key name to create. - group_create.value: ci_variable_value; source: Variable value text (secret or plain based on masked/protected settings). - group_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_get.environment_scope: environment_scope; source: Optional environment scope string; use * for global variable scope. - group_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_get.key: ci_variable_key; source: Variable key from list output or task context. - group_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - instance_create.key: ci_variable_key; source: Variable key name to create. - instance_create.value: ci_variable_value; source: Variable value text (secret or plain based on masked/protected settings). - instance_get.key: ci_variable_key; source: Variable key from list output or task context. - list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab CI/CD variables at instance, group, and project scope. Delete actions are irreversible. When to use: define / rotate / unmask / scope CI/CD variables at project, group, or instance level, both regular and secret (masked / masked_and_hidden), with environment scoping for per-env values. NOT for: linting CI YAML or browsing CI templates (use gitlab_template), pipeline runs or schedules (use gitlab_pipeline), feature flags (use gitlab_feature_flags), per-deployment env metadata (use gitlab_environment), GitLab instance settings (use gitlab_admin). Returns: - list / group_list / instance_list: arrays of variable objects {key, value (or hidden), variable_type, protected, masked, raw, environment_scope, description} with pagination. - get / create / update / group_get / group_create / group_update / instance_get / instance_create / instance_update: single variable object. - delete / group_delete / instance_delete: {success, message}. Errors: 404 (hint: a (key, environment_scope) pair must exist for get/update/delete — supply environment_scope when the variable is env-scoped), 403 (hint: project requires Maintainer+, group requires Owner, instance requires admin), 400 (hint: variable_type ∈ env_var/file; masked requires single-line non-empty value matching GitLab's masking rules). Param conventions: * = required. Project-scoped actions need project_id*, group-scoped need group_id*, instance-scoped need no ID. Common optional params: variable_type, protected, masked, raw, environment_scope. Project variables: - list: project_id* - get / delete: project_id*, key*, environment_scope - create: project_id*, key*, value*, description, variable_type, protected, masked, masked_and_hidden, raw, environment_scope - update: project_id*, key*, value, description, variable_type, protected, masked, raw, environment_scope Group variables (group_*): - group_list: group_id* - group_get / group_delete: group_id*, key* - group_create: group_id*, key*, value*, description, variable_type, protected, masked, raw, environment_scope - group_update: group_id*, key*, value, description, variable_type, protected, masked, raw, environment_scope Instance variables (instance_*): - instance_list: (no params) - instance_get / instance_delete: key* - instance_create: key*, value*, description, variable_type, protected, masked, raw - instance_update: key*, value, description, variable_type, protected, masked, raw See also: gitlab_pipeline (pipeline operations), gitlab_template (CI lint) Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
group_create ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
group_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_get ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
group_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"variables":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"},"type":["null","array"]}},"required":["variables","pagination"],"type":"object"} ```
group_update ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
instance_create ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","raw","description"],"type":"object"} ```
instance_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
instance_get ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","raw","description"],"type":"object"} ```
instance_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"variables":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","raw","description"],"type":"object"},"type":["null","array"]}},"required":["variables","pagination"],"type":"object"} ```
instance_update ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","raw","description"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"variables":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"},"type":["null","array"]}},"required":["variables","pagination"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"environment_scope":{"type":"string"},"hidden":{"type":"boolean"},"key":{"type":"string"},"masked":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type","protected","masked","hidden","raw","environment_scope","description"],"type":"object"} ```
### gitlab_custom_emoji **Custom Emoji** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_custom_emoji.. Action guidance: - create: Create group-level custom emoji using GraphQL-backed routes. - delete: Delete group-level custom emoji using GraphQL-backed routes. - list: List group-level custom emoji using GraphQL-backed routes. Parameter guidance: - create.group_path: scope_group; source: GitLab full group path. - delete.id: custom_emoji_gid; source: Global ID returned by list/create operations for delete. - list.group_path: scope_group; source: GitLab full group path. Manage group-level custom emoji via GraphQL. Delete is destructive: existing reactions using the emoji remain in the database but render as :name: text. The underlying GitLab API requires a Premium/Ultimate plan on the target instance (server enforces it with 403); the tool itself is always registered and is not gated by GITLAB_TIER. When to use: list, add, or remove the custom emoji available to a group's projects (e.g. company logos, team mascots) used as reactions on issues/MRs/notes. NOT for: posting or removing a reaction on an issue/MR/snippet/commit/note (use the `emoji_issue_*` / `emoji_mr_*` / `emoji_snippet_*` actions on gitlab_issue, gitlab_merge_request, or gitlab_snippet), Unicode emoji (built-in, no action required), instance-level emoji (not supported by GitLab). Returns: - list: {nodes: [{id, name, url, external (bool), created_at, user_permissions: {delete}}], page_info: {end_cursor, has_next_page}}. - create: the created node {id, name, url, external, created_at}. - delete: {success: bool, message: string}. Errors: 404 not found (hint: check group_path or id GID), 403 forbidden (hint: requires Maintainer+ on the group and Premium/Ultimate), 400 invalid params (hint: name must not contain colons; url must be a publicly reachable image). Param conventions: * = required. id format = GID (gid://gitlab/CustomEmoji/123). group_path = full namespace path (e.g. mygroup or mygroup/subgroup). - list: group_path*, first (max 100), after (cursor) - create: group_path*, name* (no colons), url* (HTTPS image URL) - delete: id* See also: gitlab_group (group settings and membership), gitlab_issue / gitlab_merge_request / gitlab_snippet (post reactions using the emoji). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"emoji":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["emoji"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"emoji":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["emoji","pagination"],"type":"object"} ```
### gitlab_discover_project **Discover Project** Resolve a full git remote URL to a GitLab project and return its project_id and metadata. Read-only; performs a lookup against the GitLab Projects API; no side effects. When to use: only when the user or workspace provides a complete git remote URL from .git/config ([remote "origin"] url = ...) or from 'git remote -v'. If the prompt already provides a project path such as group/project or a numeric project ID, pass that value directly as params.project_id to the requested GitLab tool instead of calling discovery. Do not synthesize, guess, or add .git to a project path to create a remote URL. NOT for: searching projects by name (use gitlab_search action=projects), listing a user's projects (use gitlab_project action=list_user_projects), verifying GitLab connectivity or authentication (use gitlab_server action=health_check), or pre-checking workflows where project_id is already known. IMPORTANT: pass the complete URL exactly as it appears — do NOT strip the git@ prefix from SSH URLs. Supported formats (a URL scheme or git@ user prefix is required): - HTTPS: https://gitlab.example.com/group/project.git - SSH shorthand: git@gitlab.example.com:group/project.git - SSH protocol: ssh://git@gitlab.example.com/group/project.git Returns: {id, name, path, path_with_namespace, web_url, description, default_branch, visibility, http_url_to_repo, ssh_url_to_repo, extracted_path}. Errors: 404 not found (hint: project may be private — verify token permissions), 403 forbidden (hint: token lacks read_api scope). See also: gitlab_project (full project CRUD/settings once id is known), gitlab_server (connectivity and version checks), gitlab_search (find projects by query). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### gitlab_environment **Environment** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_environment.. Action guidance: - create: Create an environment in a project. Use when introducing new runtime targets such as review, staging, or production environments. - delete: Delete an environment by environment_id. The environment must be stopped first. Use to permanently remove a runtime target that is no longer used. - deployment_approve_or_reject: Approve or reject a blocked deployment. Use only when approval workflows require explicit deployment approvals/rejections. - deployment_create: Create a deployment for an environment/ref/sha. Use when orchestrating manual or API-driven deployment entries. - deployment_delete: Permanently delete a deployment record by deployment_id. Use only to remove obsolete or erroneous deployment entries; this does not undo the underlying deployment. - deployment_get: Get one deployment by deployment_id for a project. Use when investigating a specific deployment state, environment, or actor metadata. - deployment_list: Lists deployments in a project with filters and pagination. Use this to audit deployment history and locate deployment IDs for follow-up actions. - deployment_merge_requests: List the merge requests associated with a specific deployment in a project environment. Use this when the prompt asks which MRs were included, shipped, or rolled out by a known deployment_id, not to list deployments or to list merge requests directly. - deployment_update: Update an existing deployment's status (created, running, success, failed, or canceled) by deployment_id. Use to transition a deployment after a CI/CD job or manual step completes. - freeze_create: Create a deploy freeze period for a project. - freeze_delete: Delete a deploy freeze period. - freeze_get: Get a specific deploy freeze period. - freeze_list: List deploy freeze periods for a project. - freeze_update: Update an existing deploy freeze period. - get: Get one environment by environment_id. Use when inspecting state, tier, external URL, and stop behavior of a specific environment. - list: List environments in one project with filters and pagination. Use this to discover environment IDs before get/update/stop/delete operations. - stop: Stop an active environment. This is modeled as a delete-style action but intentionally marked non-destructive because it changes runtime state without deleting the environment resource. - update: Update an existing environment by environment_id. Use to change its name, description, external URL, tier, cluster agent, Kubernetes namespace, Flux resource path, or auto-stop setting. Parameter guidance: - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_approve_or_reject.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_create.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - deployment_create.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - deployment_create.status: initial_deployment_status; source: One of running, success, failed, or canceled. GitLab 19 rejects 'created' on create with 400 'status does not have a valid value'.; avoid: 'created' is a stored deployment status but is not accepted when creating a deployment on GitLab 19 - deployment_create.tag: ref_is_tag_flag; source: Derive from the ref type: false for branch refs, true for tag refs. GitLab 19 rejects the request with 400 'tag is missing' when the field is omitted. - deployment_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_get.deployment_id: deployment_id; source: Deployment numeric ID from deployment list output. - deployment_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_merge_requests.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deployment_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - freeze_create.project_id: scope_project; source: Project ID or path where the freeze window is configured. - freeze_delete.freeze_period_id: freeze_period_id; source: Freeze period numeric ID from list/get outputs. - freeze_delete.project_id: scope_project; source: Project ID or path where the freeze window is configured. - freeze_get.freeze_period_id: freeze_period_id; source: Freeze period numeric ID from list/get outputs. - freeze_get.project_id: scope_project; source: Project ID or path where the freeze window is configured. - freeze_list.project_id: scope_project; source: Project ID or path where the freeze window is configured. - freeze_update.freeze_period_id: freeze_period_id; source: Freeze period numeric ID from list/get outputs. - freeze_update.project_id: scope_project; source: Project ID or path where the freeze window is configured. - get.environment_id: environment_id; source: Environment numeric ID from environment list output. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - stop.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab deployment environments, protected environments, freeze (deploy block) periods, and the deployment record audit trail. Delete and stop are destructive (stop terminates the running env; force=true skips on-stop jobs). When to use: define/update environments (production, staging, review/*), restrict who can deploy via protected environments, schedule deploy freezes, audit deployment history, approve/reject deployments awaiting manual gate. NOT for: CI/CD variables scoped to environments (use gitlab_ci_variable), pipelines/jobs (use gitlab_pipeline / gitlab_job), feature flag rollout strategies (use gitlab_feature_flags). Behavior: - Idempotent reads: list / get / protected_list / protected_get / freeze_list / freeze_get / deployment_list / deployment_get / deployment_merge_requests. - update / protected_update / freeze_update / deployment_update are idempotent (same input → same state). create / protected_protect / freeze_create / deployment_create are NON-idempotent on duplicate (project_id, name) — return 409. deployment_approve_or_reject is single-shot per (deployment_id, user) and cannot be reversed. - Side effects: stop runs the on-stop CI job (unless force=true) and terminates any review-app resources; deployment_approve_or_reject may release queued CI jobs awaiting a manual gate; freeze_create immediately blocks deploys that match the cron window. - Destructive: delete and stop are destructive — stop cannot be reversed without re-deploying; deployment_delete removes the deployment audit record (history loss). Returns: resource object (environment / protection / freeze / deployment) for *_get/*_create/*_update/*_protect; paginated array for *_list; updated deployment with approval state for deployment_approve_or_reject; MR list for deployment_merge_requests; {success, message} for *_delete/*_unprotect/stop. Errors: 404 not found, 403 forbidden (hint: protect/unprotect require Maintainer+), 400 invalid params (hint: tier ∈ production/staging/testing/development/other; freeze cron timezone must be valid TZ name). Param conventions: * = required. All actions need project_id*. environment_id is the numeric ID returned by list/create. Environments: - list: project_id*, name, search, states (available/stopped/stopping), page, per_page - get / delete: project_id*, environment_id* - create: project_id*, name*, description, external_url, tier (production/staging/testing/development/other) - update: project_id*, environment_id*, name, description, external_url, tier - stop: project_id*, environment_id*, force (bool) — force skips on-stop jobs Protected environments: - protected_list: project_id*, page, per_page - protected_get / protected_unprotect: project_id*, environment* (environment name; name is accepted as an alias) - protected_protect: project_id*, name*, deploy_access_levels, approval_rules - protected_update: project_id*, environment*, name, deploy_access_levels, approval_rules Freeze periods (cron expressions): - freeze_list: project_id*, page, per_page - freeze_get / freeze_delete: project_id*, freeze_period_id* - freeze_create: project_id*, freeze_start* (cron, e.g. '0 23 * * 5'), freeze_end* (cron), cron_timezone - freeze_update: project_id*, freeze_period_id*, freeze_start, freeze_end, cron_timezone Deployments (immutable history records): - deployment_list: project_id*, order_by, sort, environment, status, page, per_page - deployment_get / deployment_delete: project_id*, deployment_id* - deployment_create: project_id*, environment*, ref*, sha*, tag (bool), status (created/running/success/failed/canceled) - deployment_update: project_id*, deployment_id*, status* - deployment_approve_or_reject: project_id*, deployment_id*, status* (approved/rejected), comment - deployment_merge_requests: project_id*, deployment_id*, state, order_by, sort, page, per_page See also: gitlab_pipeline / gitlab_job (CI runs deploying to environments), gitlab_ci_variable (env-scoped variables), gitlab_feature_flags (env-scoped strategies). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"auto_stop_at":{"type":"string"},"auto_stop_setting":{"type":"string"},"cluster_agent":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name"],"type":["null","object"]},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"external_url":{"type":"string"},"flux_resource_path":{"type":"string"},"id":{"type":"integer"},"kubernetes_namespace":{"type":"string"},"last_deployment":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"state":{"type":"string"},"tier":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","slug","state"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deployment_approve_or_reject ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
deployment_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"environment":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":["null","object"]}},"required":["id","iid","ref","sha","status"],"type":"object"} ```
deployment_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
deployment_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"environment":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":["null","object"]}},"required":["id","iid","ref","sha","status"],"type":"object"} ```
deployment_list ```json {"additionalProperties":false,"properties":{"deployments":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"environment":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":["null","object"]}},"required":["id","iid","ref","sha","status"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["deployments","pagination"],"type":"object"} ```
deployment_merge_requests ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
deployment_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"environment":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":["null","object"]}},"required":["id","iid","ref","sha","status"],"type":"object"} ```
freeze_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"cron_timezone":{"type":"string"},"freeze_end":{"type":"string"},"freeze_start":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"required":["id","freeze_start","freeze_end","cron_timezone"],"type":"object"} ```
freeze_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
freeze_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"cron_timezone":{"type":"string"},"freeze_end":{"type":"string"},"freeze_start":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"required":["id","freeze_start","freeze_end","cron_timezone"],"type":"object"} ```
freeze_list ```json {"additionalProperties":false,"properties":{"freeze_periods":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"cron_timezone":{"type":"string"},"freeze_end":{"type":"string"},"freeze_start":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"required":["id","freeze_start","freeze_end","cron_timezone"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["freeze_periods","pagination"],"type":"object"} ```
freeze_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"cron_timezone":{"type":"string"},"freeze_end":{"type":"string"},"freeze_start":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"required":["id","freeze_start","freeze_end","cron_timezone"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"auto_stop_at":{"type":"string"},"auto_stop_setting":{"type":"string"},"cluster_agent":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name"],"type":["null","object"]},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"external_url":{"type":"string"},"flux_resource_path":{"type":"string"},"id":{"type":"integer"},"kubernetes_namespace":{"type":"string"},"last_deployment":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"state":{"type":"string"},"tier":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","slug","state"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"environments":{"items":{"additionalProperties":false,"properties":{"auto_stop_at":{"type":"string"},"auto_stop_setting":{"type":"string"},"cluster_agent":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name"],"type":["null","object"]},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"external_url":{"type":"string"},"flux_resource_path":{"type":"string"},"id":{"type":"integer"},"kubernetes_namespace":{"type":"string"},"last_deployment":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"state":{"type":"string"},"tier":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","slug","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["environments","pagination"],"type":"object"} ```
protected_get ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
protected_list ```json {"additionalProperties":false,"properties":{"environments":{"items":{"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["environments","pagination"],"type":"object"} ```
protected_protect ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
protected_unprotect ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
protected_update ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
stop ```json {"additionalProperties":false,"properties":{"auto_stop_at":{"type":"string"},"auto_stop_setting":{"type":"string"},"cluster_agent":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name"],"type":["null","object"]},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"external_url":{"type":"string"},"flux_resource_path":{"type":"string"},"id":{"type":"integer"},"kubernetes_namespace":{"type":"string"},"last_deployment":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"state":{"type":"string"},"tier":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","slug","state"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"auto_stop_at":{"type":"string"},"auto_stop_setting":{"type":"string"},"cluster_agent":{"additionalProperties":false,"properties":{"config_project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name"],"type":["null","object"]},"created_at":{"type":"string"},"created_by_user_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"external_url":{"type":"string"},"flux_resource_path":{"type":"string"},"id":{"type":"integer"},"kubernetes_namespace":{"type":"string"},"last_deployment":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deployable":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id"],"type":["null","object"]},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]}},"required":["id"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"state":{"type":"string"},"tier":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","slug","state"],"type":"object"} ```
### gitlab_feature_flags **Feature Flags** Use {"action":"feature_flag_create","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_feature_flags.. Action guidance: - feature_flag_create: Create a feature flag in a project. Provide a name and optionally description, version, active, and activation strategies (each with a name, parameters, and environment scopes). Requires Developer+ on a Premium/Ultimate project. - feature_flag_delete: Permanently delete a feature flag by name. Destructive and irreversible; confirm project_id and name before calling. Requires Maintainer+ on a Premium/Ultimate project. - feature_flag_get: Get one feature flag by its name (case-sensitive). Use after a list result or when the prompt names a concrete flag to inspect its active state, scopes, and strategies. - feature_flag_list: List a project's feature flags. Use scope to filter enabled/disabled flags and order_by/sort plus pagination (offset or keyset) to page through large result sets. Requires GitLab Premium/Ultimate. - feature_flag_update: Update a feature flag by name. Use to rename it, change description or active state, or replace activation strategies. Requires Developer+ on a Premium/Ultimate project. - ff_user_list_create: Create a named feature flag user list of user_xids in a project so feature flag strategies can roll a flag out to that explicit cohort of users. - ff_user_list_delete: Delete a feature flag user list by its user_list_iid; only do this once no feature flag strategy references the cohort, since the user_xids it groups are removed permanently. - ff_user_list_get: Get one feature flag user list by its user_list_iid to inspect the cohort name and the exact set of user_xids it targets for percentage or user-id rollout strategies. - ff_user_list_list: List a project's feature flag user lists (the named cohorts of user_xids targeted by gradual rollout strategies) with search, ordering, and offset or keyset pagination; use it to discover a list's user_list_iid before getting, updating, or deleting it. - ff_user_list_update: Update a feature flag user list's name or its set of user_xids by user_list_iid to change which users a rollout cohort targets without recreating the list. Parameter guidance: - feature_flag_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - feature_flag_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - feature_flag_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - feature_flag_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - feature_flag_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_delete.user_list_iid: feature_flag_user_list_iid; source: Use the iid/user_list_iid returned by ff_user_list_list or ff_user_list_create.; avoid: Do not use the user list name as user_list_iid., The ID is project-scoped and distinct from the feature flag name., This deletes a feature flag user-list cohort, NOT the feature flag itself — to delete the flag use feature_flags.feature_flag_delete (by name). - ff_user_list_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_get.user_list_iid: feature_flag_user_list_iid; source: Use the iid/user_list_iid returned by ff_user_list_list or ff_user_list_create.; avoid: Do not use the user list name as user_list_iid., The ID is project-scoped and distinct from the feature flag name. - ff_user_list_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - ff_user_list_update.user_list_iid: feature_flag_user_list_iid; source: Use the iid/user_list_iid returned by ff_user_list_list or ff_user_list_create.; avoid: Do not use the user list name as user_list_iid., The ID is project-scoped and distinct from the feature flag name. Manage project feature flags and feature-flag user lists for gradual rollouts. Delete is destructive; setting active=false disables the flag but preserves history. When to use: define rollout strategies (percentage, user-targeted, environment-scoped) for a project's feature flags, and manage the user lists referenced by `gitlabUserList` strategies. NOT for: GitLab instance-level feature flags (admin only — use gitlab_admin), environment definitions or protection (use gitlab_environment), code branching (use gitlab_branch), CI/CD variables (use gitlab_ci_variable). Returns: - *_list: array with pagination (page, per_page, total, next_page). - *_get / *_create / *_update: the resource object (flag includes strategies and scopes; user list includes user_xids). - *_delete: {success: bool, message: string}. Errors: 404 not found, 403 forbidden (hint: requires Developer+ role), 400 invalid params (hint: strategies/scopes JSON shape). Param conventions: * = required. All actions need project_id*. version = `new_version_flag` (legacy `legacy_flag` deprecated). strategies shape: [{name, parameters, scopes: [{environment_scope}]}] where name ∈ {default, gradualRolloutUserId, userWithId, flexibleRollout, gitlabUserList}. parameters per strategy: gradualRolloutUserId={groupId, percentage}; userWithId={userIds}; flexibleRollout={groupId, rollout, stickiness}; gitlabUserList={userListId}. Feature flags (feature_flag_*): - feature_flag_list: project_id*, scope (enabled/disabled), page, per_page - feature_flag_get / feature_flag_delete: project_id*, name* - feature_flag_create: project_id*, name*, version*, description, active (bool), strategies - feature_flag_update: project_id*, name*, description, active (bool), strategies User lists (ff_user_list_*) — named sets of user IDs referenced by gitlabUserList strategies: - ff_user_list_list: project_id*, page, per_page - ff_user_list_get / ff_user_list_delete: project_id*, user_list_iid* - ff_user_list_create: project_id*, name*, user_xids* (comma-separated user IDs) - ff_user_list_update: project_id*, user_list_iid*, name, user_xids See also: gitlab_environment (environment scopes referenced by strategies), gitlab_admin (instance-level feature flags), gitlab_project (project membership and settings). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
feature_flag_create ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"strategies":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"parameters":{"additionalProperties":false,"properties":{"group_id":{"type":"string"},"percentage":{"type":"string"},"rollout":{"type":"string"},"stickiness":{"type":"string"},"user_ids":{"type":"string"}},"type":["null","object"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"user_list":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":["null","object"]}},"required":["id","name"],"type":"object"},"type":["null","array"]},"updated_at":{"type":"string"},"version":{"type":"string"}},"required":["name","description","active","version"],"type":"object"} ```
feature_flag_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
feature_flag_get ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"strategies":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"parameters":{"additionalProperties":false,"properties":{"group_id":{"type":"string"},"percentage":{"type":"string"},"rollout":{"type":"string"},"stickiness":{"type":"string"},"user_ids":{"type":"string"}},"type":["null","object"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"user_list":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":["null","object"]}},"required":["id","name"],"type":"object"},"type":["null","array"]},"updated_at":{"type":"string"},"version":{"type":"string"}},"required":["name","description","active","version"],"type":"object"} ```
feature_flag_list ```json {"additionalProperties":false,"properties":{"feature_flags":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"strategies":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"parameters":{"additionalProperties":false,"properties":{"group_id":{"type":"string"},"percentage":{"type":"string"},"rollout":{"type":"string"},"stickiness":{"type":"string"},"user_ids":{"type":"string"}},"type":["null","object"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"user_list":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":["null","object"]}},"required":["id","name"],"type":"object"},"type":["null","array"]},"updated_at":{"type":"string"},"version":{"type":"string"}},"required":["name","description","active","version"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["feature_flags","pagination"],"type":"object"} ```
feature_flag_update ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"strategies":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"parameters":{"additionalProperties":false,"properties":{"group_id":{"type":"string"},"percentage":{"type":"string"},"rollout":{"type":"string"},"stickiness":{"type":"string"},"user_ids":{"type":"string"}},"type":["null","object"]},"scopes":{"items":{"additionalProperties":false,"properties":{"environment_scope":{"type":"string"},"id":{"type":"integer"}},"required":["id","environment_scope"],"type":"object"},"type":["null","array"]},"user_list":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":["null","object"]}},"required":["id","name"],"type":"object"},"type":["null","array"]},"updated_at":{"type":"string"},"version":{"type":"string"}},"required":["name","description","active","version"],"type":"object"} ```
ff_user_list_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":"object"} ```
ff_user_list_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
ff_user_list_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":"object"} ```
ff_user_list_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"user_lists":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":"object"},"type":["null","array"]}},"required":["user_lists","pagination"],"type":"object"} ```
ff_user_list_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"updated_at":{"type":"string"},"user_xids":{"type":"string"}},"required":["id","iid","project_id","name","user_xids"],"type":"object"} ```
### gitlab_group **Group** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_group.. Action guidance: - archive: Archive a group, making it and its projects read-only. Use when the user wants to freeze a group without deleting it. Idempotent; archiving an archived group is a no-op. - badge_add: Add a group badge. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. - badge_delete: Delete a group badge. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. - badge_edit: Edit a group badge. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. Use the parameter name name for a new badge name; new_name is not supported. - badge_get: Get a group badge. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. - badge_list: List group badges. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. - badge_preview: Preview a group badge. Use group_id for group badge operations; do not use project_id. Use only when the task says group badge; project badge CRUD belongs to gitlab_project. - create: Create a group with name and path. Optionally set parent_id, description, visibility, and project creation permissions when requested. - delete: Delete a group (marks it for deletion, or permanently removes it with permanently_remove=true). Destructive: this removes the group and all its projects. Confirm before calling. - get: Get one exact group by group_id (numeric ID or full path). Use this when the prompt already targets a specific group and needs metadata such as visibility, parent, web URL, or statistics. - group_board_create_list: Add a new column backed by a group label to a group issue board's workflow. - group_board_delete: Permanently remove an issue board from a group when the team no longer needs it. - group_board_delete_list: Remove a column from a group issue board when that workflow stage is no longer used. - group_board_get: Inspect one group issue board's milestone, scope labels, and columns by its board ID. - group_board_get_list: Inspect one column of a group issue board, including its label, assignee, and iteration scope. - group_board_list: Browse the issue boards configured for a group to see how the group plans and tracks work. - group_board_list_lists: Enumerate the columns of a group issue board to see how its workflow stages are arranged. - group_board_update: Rename a group issue board or retune its assignee, milestone, label, and weight scope. - group_board_update_list: Move a column to a new position in a group issue board to reorder its workflow stages. - group_export_download: Download the finished export archive for a group as a base64-encoded .tar.gz. Use this only after group_export_schedule has completed; the call fails until the archive is ready. - group_export_schedule: Start an asynchronous export of a whole group (subgroups, projects, and metadata) into a downloadable archive. Use this first, then poll and download with group_export_download once GitLab finishes building the archive. - group_import_file: Import a new group from a local export archive (.tar.gz) produced by group_export_schedule. Provide a name, URL path, the archive file, and optionally a parent_id to nest the imported group under an existing one. - group_label_create: Create a new label in a group. Provide group_id, a unique name, and a hex color; add description, priority, or archived only when requested. - group_label_delete: Permanently delete a group label by ID or name. Destructive; confirm group_id and label_id before calling. - group_label_get: Get one group label by its numeric ID or name. Use after a list result or when the prompt names a concrete group label. - group_label_list: List labels defined in a group. Use filters such as search, with_counts, include_ancestor_groups, include_descendant_groups, only_group_labels, archived, order_by, sort, and pagination when the prompt asks for a group's labels. - group_label_subscribe: Subscribe the authenticated user to a group label to receive notifications for issues and merge requests carrying it. - group_label_unsubscribe: Unsubscribe the authenticated user from a group label so notifications for it stop. - group_label_update: Update an existing group label. Provide at least one of new_name, color, description, priority, or archived to change the label. - group_member_add: Add a user as a direct member of a group with a chosen access level. Use this to grant a known user a role in a group; supply user_id or username plus access_level, and optionally member_role_id for a custom role (Premium/Ultimate) or expires_at. - group_member_edit: Edit a direct group member's access level, expiry, or custom member role by group_id plus user_id. Use this to promote, demote, change expiry, or reassign the custom role of an existing direct member. Inherited members cannot be edited here. - group_member_get: Get one direct member of a group by group_id plus user_id. Use this when the prompt names a known user and group and you need that user's exact access level, expiry, or custom member role. Inherited members are not returned; use group_member_get_inherited for those. - group_member_get_inherited: Get a member of a group including membership inherited from ancestor groups, by group_id plus user_id. Use this when a user may be a member via a parent group rather than a direct membership. - group_member_remove: Remove a direct member from a group by group_id plus user_id. Destructive: requires confirmation. Inherited members cannot be removed here; remove them from the ancestor group where they were added directly. - group_member_share: Share a group with another group so its members gain access at a chosen group_access level. Use this for cross-group collaboration; supply group_id (the group to share) and share_group_id (the recipient group). Group shares accept only Guest/Reporter/Developer/Maintainer levels. - group_member_unshare: Stop sharing a group with another group by group_id plus share_group_id. Destructive: requires confirmation. Use this to revoke a previously created group share. - group_milestone_create: Create a new milestone in a group. Provide title and optional description, start_date, and due_date. - group_milestone_delete: Permanently delete a group milestone. Destructive and irreversible; confirm group_id and milestone_iid before calling. Requires Owner role. - group_milestone_get: Get one exact group milestone by group_id plus milestone_iid. Use after list results or when the prompt already names a concrete group milestone IID. - group_milestone_issues: List issues assigned to a group milestone, with ordering and pagination. Use to inspect the issue scope of a group milestone. - group_milestone_list: List milestones in a group with filtering, ordering, and pagination. Use filters such as state, title, search, include_ancestors, include_descendants, order_by, and sort when the prompt asks for matching group milestones. - group_milestone_merge_requests: List merge requests assigned to a group milestone, with ordering and pagination. Use to inspect the MR scope of a group milestone. - group_milestone_update: Update an existing group milestone. Only non-empty fields are applied; use state_event to close or activate. - group_relations_list_status: List the per-relation status of a group's relations export by group_id, optionally filtered by a single relation name. Use this after scheduling an export to check whether each relation has finished, failed, or is still in progress before downloading the export archive. - group_relations_schedule: Schedule an asynchronous export of a group's relations (issues, labels, milestones, boards, and more) by group_id. Use this to start a group relations export before downloading it or before importing the group elsewhere; the export runs in the background, so poll status afterwards with group.group_relations_list_status. - group_upload_delete_by_id: Use to permanently remove a group Markdown upload identified by its numeric upload ID. - group_upload_delete_by_secret: Use to permanently remove a group Markdown upload identified by its secret and filename. - group_upload_list: Use to enumerate files uploaded into a group's Markdown attachments store. - invited_groups: List the groups invited to this group. Use when the user asks which groups were invited (directly or by inheritance) to collaborate on a group. - issues: List issues across a group and its projects. Use this when the prompt scopes work to a group or subgroup rather than a single project. - list: List groups visible to the authenticated user. Use search, owned, min_access_level, and pagination when the user asks for matching or accessible groups. - members: List the direct and inherited members of a group. Use query, user_ids, show_seat_info, and pagination when the user asks who belongs to a group or at what access level. - projects: List the projects that belong to a group. Use include_subgroups, archived, visibility, topic, and ordering when the user asks which projects live under a group. - release_list: List releases across all projects in a group. Use this when the task asks for group-wide release history or the latest releases of every project in a group. - restore: Restore a group that was marked for deletion (within the retention window, before permanent removal). Use after an accidental delete to recover the group. - search: Search for groups by name or path keywords. Use when the user wants to find groups matching a term without already knowing an ID or path. - service_account_create: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. Omit email unless the task gives an explicit valid email address. - service_account_delete: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. - service_account_list: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. - service_account_pat_create: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. Omit expires_at unless the task gives an explicit expiry date; if provided, use YYYY-MM-DD within the instance maximum token lifetime. - service_account_pat_list: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. - service_account_pat_revoke: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. - service_account_pat_rotate: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. Rotating revokes the supplied token_id and returns a brand-new token value; capture the returned token immediately. Omit expires_at unless the task gives an explicit expiry date; if provided, use YYYY-MM-DD within the instance maximum token lifetime. - service_account_update: Use for GitLab group service accounts and their personal access tokens. Do not use group members, SCIM identities, enterprise users, or generic group access tokens for service account CRUD. Available on all tiers (Free, Premium, Ultimate); requires Owner permissions. Omit email unless the task gives an explicit valid email address. - share_with_group: Share this group with another group via the Groups API, granting that group's members access at a chosen access level. Send group_id, shared_group_id, and group_access. Requires Owner role. (gitlab_group_share is the GroupMembers-API equivalent.) - shared_projects: List the projects shared *into* this group from elsewhere (not the group's own projects). Use when the user asks which external projects a group can access via sharing. - shared_with: List the groups that have been shared with this group (group-to-group shares granting members access). Use when the user asks which groups can access a group via sharing, not its members or subgroups. - subgroups: List the descendant groups (subgroups at all depths) of a group. Use search, min_access_level, visibility, and ordering when the user asks which groups nest under a group. - transfer: Move this group under a new parent group, or omit parent_id to promote a subgroup to a top-level group. Use gitlab_group_transfer_locations first to find valid parents. Requires Owner role on both ends. - transfer_locations: List the parent groups this group can be transferred (moved) into. Use this BEFORE attempting a group transfer to discover valid destinations; the caller needs the Owner role on a destination for it to appear. - transfer_project: Move an existing project into this group's namespace. Use when the user wants to relocate a project under a group. To discover which groups a group itself can be transferred into, use gitlab_group_transfer_locations instead. - unarchive: Unarchive a previously archived group, restoring write access. Idempotent; unarchiving a non-archived group is a no-op. - unshare_from_group: Revoke a group-to-group share via the Groups API, removing the shared group's access. Destructive. Send group_id and shared_group_id. Requires Owner role. (gitlab_group_unshare is the GroupMembers-API equivalent.) - update: Update an existing group's settings. Send group_id plus only the fields to change (name, path, visibility, default branch protection, merge policies, Duo, runner limits, etc.). - upload_avatar: Upload or replace a group's avatar image. Send group_id, filename, and exactly one of file_path (a local image the MCP server reads) or content_base64 (inline base64-encoded image). Image must be JPG/PNG/GIF under 200 KB. Requires Owner role. Parameter guidance: - archive.group_id: scope_group; source: Group numeric ID or full path to archive. - badge_add.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - badge_delete.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - badge_edit.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - badge_edit.name: badge_display_name; source: Optional replacement badge name. The parameter is named name.; avoid: Do not send new_name; badge_edit accepts name, link_url, and image_url. - badge_get.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - badge_list.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - badge_preview.group_id: scope_group; source: Group that owns the badge.; avoid: Do not use project_id for group badge actions. - create.name: group_name; source: Human-readable group display name from user intent. - create.path: group_path_segment; source: URL-safe group path segment.; avoid: path is a slug segment, not a full URL or namespace with slashes unless creating nested groups via parent_id. - delete.group_id: scope_group; source: Group numeric ID or full path to delete.; avoid: permanently_remove=true requires full_path and bypasses the retention window. - get.group_id: scope_group; source: Group numeric ID or full path from the prompt or prior discovery step.; avoid: Use group_id for path or ID; do not send project_id for group lookups. - group_board_create_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_delete_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_get_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_list_lists.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_board_update.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - group_board_update_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_export_download.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_export_schedule.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_import_file.path: path_component; source: Path component relative to the project or repository root (no leading slash). - group_label_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_subscribe.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_unsubscribe.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_label_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_member_add.access_level: access_level; source: Numeric role level for the membership.; avoid: Use the numeric level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner), not the role name. - group_member_add.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_add.member_role_id: member_role_id; source: ID of a custom member role to assign (Premium/Ultimate); its base access level must match access_level.; avoid: member_role_id references a custom role definition, not access_level; it is only available on Premium/Ultimate. - group_member_add.user_id: user_id; source: Numeric user ID to add as a member (alternative to username).; avoid: Use the numeric user ID, not the username; resolve usernames with gitlab_list_users first. - group_member_edit.access_level: access_level; source: Numeric role level for the membership.; avoid: Use the numeric level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner), not the role name. - group_member_edit.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_edit.member_role_id: member_role_id; source: ID of a custom member role to assign (Premium/Ultimate); its base access level must match access_level.; avoid: member_role_id references a custom role definition, not access_level; it is only available on Premium/Ultimate. - group_member_edit.user_id: user_id; source: Numeric user ID of the direct member to edit.; avoid: Use the numeric user ID, not the username; resolve usernames with gitlab_list_users first. - group_member_get.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_get.user_id: user_id; source: Numeric user ID of the direct group member to inspect.; avoid: Use the numeric user ID, not the username; resolve usernames with gitlab_list_users first. - group_member_get_inherited.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_get_inherited.user_id: user_id; source: Numeric user ID of the member to inspect, including inherited memberships.; avoid: Use the numeric user ID, not the username; resolve usernames with gitlab_list_users first. - group_member_remove.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_remove.user_id: user_id; source: Numeric user ID of the direct member to remove.; avoid: Use the numeric user ID, not the username; resolve usernames with gitlab_list_users first. - group_member_share.group_access: access_level; source: Access level granted to the recipient group (10/20/30/40 only).; avoid: Group shares accept only 10/20/30/40; 5, 15, 25, and 60 are rejected. - group_member_share.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_share.share_group_id: share_group_id; source: Numeric ID of the recipient group that should gain access.; avoid: share_group_id must be a numeric group ID, not a path, and is distinct from group_id (the group being shared). - group_member_unshare.group_id: scope_group; source: Group ID or full namespace path that owns the membership.; avoid: Use the group here, not a project path or project member action; project members use the project-member tools. - group_member_unshare.share_group_id: share_group_id; source: Numeric ID of the group whose share should be revoked.; avoid: share_group_id must be a numeric group ID, not a path, and is distinct from group_id (the group being shared). - group_milestone_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_issues.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_merge_requests.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_milestone_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_relations_list_status.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_relations_schedule.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_upload_delete_by_id.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_upload_delete_by_secret.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_upload_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - invited_groups.group_id: scope_group; source: Group numeric ID or full path whose invited groups are listed. - invited_groups.relation; source: Inheritance filter: direct, inherited, or both.; avoid: relation filters by how the invitation reaches the group; it is not an access level. - issues.group_id: scope_group; source: Group ID or full group path from the user's request.; avoid: Use group_id for group paths or IDs; use project_id only with issue.list for a single project. - list.search; source: Group name/path keywords from the user query.; avoid: search filters visible groups; it does not accept project paths. - members.group_id: scope_group; source: Group numeric ID or full path whose members are listed. - projects.group_id: scope_group; source: Group numeric ID or full path whose projects are listed.; avoid: Set include_subgroups=true to also include projects in descendant groups. - release_list.group_id: scope_group; source: Group ID or full path whose projects' releases are listed. - restore.group_id: scope_group; source: Group numeric ID or full path that was marked for deletion. - search.query; source: Group name/path keywords from the user query. - service_account_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_pat_create.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_pat_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_pat_list.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - service_account_pat_revoke.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_pat_revoke.token_id: access_token; source: Group service account personal access token ID returned by service_account_pat_list or service_account_pat_create.; avoid: Do not use service_account_id as token_id; token_id identifies the personal access token itself. - service_account_pat_rotate.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - service_account_pat_rotate.token_id: access_token; source: Group service account personal access token ID returned by service_account_pat_list or service_account_pat_create.; avoid: Do not use service_account_id as token_id; token_id identifies the personal access token itself. - service_account_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - share_with_group.group_access; source: Access level 10/20/30/40/50 (Guest/Reporter/Developer/Maintainer/Owner). - share_with_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - share_with_group.shared_group_id; source: Numeric ID of the group to grant access to.; avoid: group_id is the group being shared; shared_group_id is the group receiving access. - shared_projects.group_id: scope_group; source: Group numeric ID or full path whose shared projects are listed.; avoid: Lists projects shared *into* the group; use gitlab_group_projects for the group's own projects. - shared_with.group_id: scope_group; source: Group numeric ID or full path whose inbound shares are listed.; avoid: Lists groups shared *with* this group; it does not list this group's members or the projects it was shared into. - subgroups.group_id: scope_group; source: Group numeric ID or full path whose subgroups are listed.; avoid: Returns descendants at all depths; set top_level_only=true for direct children only. - transfer.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - transfer.parent_id; source: Numeric ID of the destination parent group; omit to promote to top level.; avoid: parent_id is the destination; group_id is the group being moved. Omit parent_id to make the group top-level. - transfer_locations.group_id: scope_group; source: Group numeric ID or full path that would be moved.; avoid: This lists destinations for moving the *group itself*; to move a project into a group, use gitlab_group_transfer_project. - transfer_project.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - transfer_project.project_id: scope_project; source: Numeric ID or full path of the project to move.; avoid: project_id is the project being moved; group_id is the destination group. - unarchive.group_id: scope_group; source: Group numeric ID or full path to unarchive. - unshare_from_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - unshare_from_group.shared_group_id; source: Numeric ID of the group whose share is removed.; avoid: Use gitlab_group_shared_with_list to find the shared group IDs first. - update.group_id: scope_group; source: Group numeric ID or full path to update. - update.path: path_component; source: Path component relative to the project or repository root (no leading slash). - upload_avatar.content_base64; source: Base64-encoded image bytes when no local file path is available. - upload_avatar.file_path; source: Absolute path to a local image file on the MCP server filesystem.; avoid: Provide exactly one of file_path or content_base64, not both; filename is always required. - upload_avatar.group_id: scope_group; source: Group numeric ID or full path whose avatar is set. Manage GitLab groups: CRUD, subgroups, members, labels, milestones, webhooks, badges, boards, uploads, and import/export. When to use: group-level operations (groups, subgroups, members, labels, milestones, boards, webhooks, badges, wikis, epics). NOT for: project-specific operations (use gitlab_project or gitlab_merge_request), user accounts (use gitlab_user), cross-project search (use gitlab_search). Behavior: - Idempotent reads: get / list / projects / members / subgroups / issues / search / *_list / *_get / hook_list / badge_list / group_label_list / group_milestone_list / group_board_list / release_list (Premium+ adds wiki_list / epic_list / protected_*_list / ldap_link_list / saml_link_list / service_account_*_list). - update / *_update / *_edit / archive / unarchive are idempotent (same input → same state). create / *_create / hook_add are NON-idempotent (re-invocation creates a duplicate or returns 409). - Side effects: group_member_add / group_member_share / group_member_edit may notify the invited user/group; hook_add / hook_edit trigger webhook deliveries; transfer_project moves repository data and re-permissions members; ldap/saml link mutations re-evaluate group membership on next sign-in (read-after-write may lag). - Destructive: delete cascades to subgroups, projects, members, issues, MRs (irreversible when permanently_remove=true; restore window applies otherwise); hook_delete, badge_delete, group_label_delete, group_milestone_delete, group_board_delete, group_upload_delete_* are irreversible. Premium+ adds destructive: epic_delete, wiki_delete, protected_*_unprotect, ldap_link_delete*, saml_link_delete, service_account_delete, service_account_pat_revoke. archive is reversible via unarchive. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 (hint: group_id can be numeric ID or URL-encoded full path), 403 (hint: most mutations require Maintainer+; group_member_share, transfer_project and service_account_* require Owner), 400 (hint: visibility ∈ private/internal/public; permanently_remove=true requires full_path). Param conventions: * = required. Most actions need group_id* (numeric ID or URL-encoded path like 'group/subgroup'). List actions accept page, per_page. Group CRUD: - list: search, owned, top_level_only (no group_id needed) - get: group_id* - create: name*, path, description, visibility (private/internal/public), parent_id, request_access_enabled, lfs_enabled, default_branch - update: group_id*, name, path, description, visibility, request_access_enabled, lfs_enabled, default_branch - delete: group_id*, permanently_remove, full_path (required when permanently_remove=true) - restore: group_id* - archive / unarchive: group_id* (requires Owner role) - search: query* (no group_id needed) - transfer_project: group_id*, project_id* Group queries: - projects: group_id*, search, include_subgroups (recommended for hierarchies), archived, visibility, order_by, sort, simple, owned, starred, with_shared - members: group_id*, query (filter name/username) - subgroups: group_id*, search - issues: group_id*, state, labels, milestone, scope, search, assignee_username, author_username Webhooks (hook_*): - hook_list: group_id* - hook_get / hook_delete: group_id*, hook_id* - hook_add: group_id*, url*, name, description, token, event booleans (push/tag_push/merge_requests/issues/note/job/pipeline/wiki_page/deployment/releases/subgroup/member_events), enable_ssl_verification, push_events_branch_filter - hook_edit: group_id*, hook_id*, same params as hook_add Badges (badge_*): - badge_list: group_id*, name - badge_get / badge_delete: group_id*, badge_id* - badge_add / badge_preview: group_id*, link_url*, image_url*, name - badge_edit: group_id*, badge_id*, link_url, image_url, name Members (group_member_*): - group_member_get: group_id*, user_id* - group_member_get_inherited: group_id*, user_id* (includes inherited) - group_member_add / group_member_edit: group_id*, user_id*, access_level*, expires_at - group_member_remove: group_id*, user_id* - group_member_share: group_id*, shared_with_group_id*, group_access*, expires_at - group_member_unshare: group_id*, shared_with_group_id* Labels (group_label_*): - group_label_list: group_id*, search, with_counts, include_ancestor_groups, include_descendant_groups - group_label_get / group_label_delete / group_label_subscribe / group_label_unsubscribe: group_id*, label_id* - group_label_create: group_id*, name*, color*, description - group_label_update: group_id*, label_id*, new_name, color, description Group milestones (group_milestone_* — group scope only; use gitlab_project milestone_* for project milestones): - group_milestone_list: group_id*, state, title, search, include_ancestors, include_descendants - group_milestone_get / group_milestone_delete: group_id*, milestone_iid* - group_milestone_create: group_id*, title*, description, start_date, due_date - group_milestone_update: group_id*, milestone_iid*, title, description, start_date, due_date, state_event - group_milestone_issues / group_milestone_merge_requests / group_milestone_burndown: group_id*, milestone_iid* Boards (group_board_*): - group_board_list: group_id* - group_board_get / group_board_delete: group_id*, board_id* - group_board_create: group_id*, name* - group_board_update: group_id*, board_id*, name, assignee_id, milestone_id, labels, weight - group_board_list_lists: group_id*, board_id* - group_board_get_list / group_board_delete_list: group_id*, board_id*, list_id* - group_board_create_list: group_id*, board_id*, label_id - group_board_update_list: group_id*, board_id*, list_id*, position Uploads: - group_upload_list: group_id* - group_upload_delete_by_id: group_id*, upload_id* - group_upload_delete_by_secret: group_id*, secret*, filename* Import/Export: - group_relations_schedule / group_relations_list_status: group_id* - group_export_schedule / group_export_download: group_id* - group_import_file: name*, path*, file*, parent_id (no group_id) Releases: - release_list: group_id*, simple Premium+ behavior notes (GITLAB_TIER=premium): service_account_pat_create returns the cleartext token only ONCE — store it immediately in a secure secrets manager and never log or echo it. service_account_delete and service_account_pat_revoke are irreversible. Epics (Premium+ — GITLAB_TIER=premium. CRUD/notes/discussions use Work Items GraphQL API with full_path + iid. Only epic_get_links and epic boards use REST with group_id): Epic discussions (epic_discussion_*): full_path*, epic_iid* for all. GraphQL pagination: first, after, last, before. - epic_discussion_list / epic_discussion_get (+ discussion_id*) - epic_discussion_create: body* - epic_discussion_add_note: discussion_id*, body* - epic_discussion_update_note: note_id*, body* - epic_discussion_delete_note: note_id* Epic CRUD (epic_*): full_path* for all. - epic_list: state, search, author_username, label_name, confidential, sort, first, after, include_ancestors, include_descendants - epic_get: epic_iid* - epic_get_links: epic_iid* [REST] - epic_create: title*, description, confidential, color, start_date, due_date, assignee_ids, label_ids, weight, health_status - epic_update: epic_iid*, title, description, state_event, color, start_date, due_date, add_label_ids, remove_label_ids, assignee_ids, weight, health_status, status - epic_delete: epic_iid* Epic issues (epic_issue_*): full_path*, epic_iid* for all. GraphQL pagination: first, after, last, before. - epic_issue_list - epic_issue_assign / epic_issue_remove: child_project_path*, child_iid* - epic_issue_update: child_id*, adjacent_id*, relative_position* (BEFORE/AFTER) Epic notes (epic_note_*): full_path*, epic_iid* for all. GraphQL pagination: first, after, last, before. - epic_note_list / epic_note_get (+ note_id*) / epic_note_delete (+ note_id*) - epic_note_create: body* - epic_note_update: note_id*, body* Epic boards [Deprecated]: - epic_board_list: group_id* - epic_board_get: group_id*, board_id* Group Wikis (Premium+): - wiki_list: group_id*, with_content - wiki_get: group_id*, slug*, render_html, version - wiki_create: group_id*, title*, content*, format (markdown/rdoc/asciidoc/org) - wiki_edit: group_id*, slug*, title, content, format - wiki_delete: group_id*, slug* Protected Branches (Premium+): - protected_branch_list: group_id*, search - protected_branch_get / protected_branch_unprotect: group_id*, branch* - protected_branch_protect: group_id*, name*, push_access_level, merge_access_level, unprotect_access_level, allow_force_push, code_owner_approval_required, allowed_to_push/merge/unprotect - protected_branch_update: group_id*, branch*, name, allow_force_push, code_owner_approval_required, allowed_to_push/merge/unprotect Protected Environments (Premium+): - protected_env_list: group_id* - protected_env_get / protected_env_unprotect: group_id*, environment* - protected_env_protect: group_id*, name*, deploy_access_levels, required_approval_count, approval_rules - protected_env_update: group_id*, environment*, name, deploy_access_levels, required_approval_count, approval_rules LDAP Links (Premium+): - ldap_link_list: group_id* - ldap_link_add: group_id*, cn*, group_access* (int), provider* - ldap_link_delete: group_id*, cn, filter, provider - ldap_link_delete_for_provider: group_id*, provider*, cn* SAML Links (Premium+): - saml_link_list: group_id* - saml_link_get / saml_link_delete: group_id*, saml_group_name* - saml_link_add: group_id*, saml_group_name*, access_level* (int) Service Accounts (Premium+): - service_account_list: group_id*, order_by, sort - service_account_create: group_id*, name*, username* - service_account_update: group_id*, service_account_id*, name, username - service_account_delete: group_id*, service_account_id*, hard_delete - service_account_pat_list: group_id*, service_account_id* - service_account_pat_create: group_id*, service_account_id*, name*, scopes* (array), expires_at (YYYY-MM-DD) - service_account_pat_revoke: group_id*, service_account_id*, token_id* Analytics (Premium+): - analytics_issues_count / analytics_mr_count / analytics_members_count: group_path* (URL-encoded) Credentials (Ultimate): - credential_list_pats: group_id*, search, state (active/inactive), revoked - credential_list_ssh_keys: group_id* - credential_revoke_pat: group_id*, token_id* - credential_delete_ssh_key: group_id*, key_id* SSH Certificates (Premium+): - ssh_cert_list: group_id* - ssh_cert_create: group_id*, key*, title* - ssh_cert_delete: group_id*, certificate_id* Security Settings (Ultimate): - security_settings_update: group_id*, secret_push_protection_enabled*, projects_to_exclude (array) See also: gitlab_project (project-level), gitlab_user (user management), gitlab_search (cross-project search), gitlab_merge_request (MR workflows) Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
analytics_issues_count ```json {"additionalProperties":false,"properties":{"group_path":{"type":"string"},"issues_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["group_path","issues_count"],"type":"object"} ```
analytics_members_count ```json {"additionalProperties":false,"properties":{"group_path":{"type":"string"},"new_members_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["group_path","new_members_count"],"type":"object"} ```
analytics_mr_count ```json {"additionalProperties":false,"properties":{"group_path":{"type":"string"},"merge_requests_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["group_path","merge_requests_count"],"type":"object"} ```
archive ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
badge_add ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
badge_edit ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_get ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_list ```json {"additionalProperties":false,"properties":{"badges":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["badges","pagination"],"type":"object"} ```
badge_preview ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
credential_delete_ssh_key ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
credential_list_pats ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"user_id":{"type":"integer"}},"required":["id","name","revoked","user_id","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
credential_list_ssh_keys ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","title","user_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["keys","pagination"],"type":"object"} ```
credential_revoke_pat ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
epic_board_get ```json {"additionalProperties":false,"properties":{"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"template":{"type":"boolean"},"text_color":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","color"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"collapsed":{"type":["null","boolean"]},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"list_type":{"type":"string"},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
epic_board_list ```json {"additionalProperties":false,"properties":{"boards":{"items":{"additionalProperties":false,"properties":{"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"template":{"type":"boolean"},"text_color":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","color"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"collapsed":{"type":["null","boolean"]},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"list_type":{"type":"string"},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["boards","pagination"],"type":"object"} ```
epic_create ```json {"additionalProperties":false,"properties":{"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"closed_at":{"type":"string"},"color":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"parent_iid":{"type":"integer"},"parent_path":{"type":"string"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":["null","integer"]}},"required":["id","iid","type","state","title"],"type":"object"} ```
epic_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
epic_discussion_add_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
epic_discussion_create ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","notes"],"type":"object"} ```
epic_discussion_delete_note ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
epic_discussion_get ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","notes"],"type":"object"} ```
epic_discussion_list ```json {"additionalProperties":false,"properties":{"discussions":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","notes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["discussions","pagination"],"type":"object"} ```
epic_discussion_update_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
epic_get ```json {"additionalProperties":false,"properties":{"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"closed_at":{"type":"string"},"color":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"parent_iid":{"type":"integer"},"parent_path":{"type":"string"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":["null","integer"]}},"required":["id","iid","type","state","title"],"type":"object"} ```
epic_get_links ```json {"additionalProperties":false,"properties":{"child_epics":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","title","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["child_epics"],"type":"object"} ```
epic_issue_assign ```json {"additionalProperties":false,"properties":{"child_gid":{"type":"string"},"epic_gid":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["epic_gid","child_gid"],"type":"object"} ```
epic_issue_list ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
epic_issue_remove ```json {"additionalProperties":false,"properties":{"child_gid":{"type":"string"},"epic_gid":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["epic_gid","child_gid"],"type":"object"} ```
epic_issue_update ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
epic_list ```json {"additionalProperties":false,"properties":{"epics":{"items":{"additionalProperties":false,"properties":{"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"closed_at":{"type":"string"},"color":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"parent_iid":{"type":"integer"},"parent_path":{"type":"string"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":["null","integer"]}},"required":["id","iid","type","state","title"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["epics"],"type":"object"} ```
epic_note_create ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system"],"type":"object"} ```
epic_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
epic_note_get ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system"],"type":"object"} ```
epic_note_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["notes","pagination"],"type":"object"} ```
epic_note_update ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system"],"type":"object"} ```
epic_update ```json {"additionalProperties":false,"properties":{"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username"],"type":["null","object"]},"closed_at":{"type":"string"},"color":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"parent_iid":{"type":"integer"},"parent_path":{"type":"string"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":["null","integer"]}},"required":["id","iid","type","state","title"],"type":"object"} ```
event_epic_label_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_epic_label_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
group_billable_member_memberships_list ```json {"additionalProperties":false,"properties":{"memberships":{"items":{"additionalProperties":false,"properties":{"access_level":{"additionalProperties":false,"properties":{"integer_value":{"type":"integer"},"string_value":{"type":"string"}},"required":["integer_value","string_value"],"type":["null","object"]},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"source_full_name":{"type":"string"},"source_id":{"type":"integer"},"source_members_url":{"type":"string"}},"required":["id","source_id","source_full_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["memberships","pagination"],"type":"object"} ```
group_billable_member_remove ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_billable_members_list ```json {"additionalProperties":false,"properties":{"members":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"is_last_owner":{"type":"boolean"},"last_activity_on":{"type":"string"},"last_login_at":{"type":"string"},"membership_type":{"type":"string"},"name":{"type":"string"},"removable":{"type":"boolean"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","web_url","removable","is_last_owner"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["members","pagination"],"type":"object"} ```
group_board_create ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
group_board_create_list ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
group_board_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_board_delete_list ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_board_get ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
group_board_get_list ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
group_board_list ```json {"additionalProperties":false,"properties":{"boards":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["boards","pagination"],"type":"object"} ```
group_board_list_lists ```json {"additionalProperties":false,"properties":{"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["lists","pagination"],"type":"object"} ```
group_board_update ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
group_board_update_list ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
group_export_download ```json {"additionalProperties":false,"properties":{"content_base64":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size_bytes":{"type":"integer"}},"required":["content_base64","size_bytes"],"type":"object"} ```
group_export_schedule ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
group_import_file ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
group_label_create ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
group_label_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_label_get ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
group_label_list ```json {"additionalProperties":false,"properties":{"labels":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["labels","pagination"],"type":"object"} ```
group_label_subscribe ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
group_label_unsubscribe ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_label_update ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
group_member_add ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"group_saml_identity":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"},"saml_provider_id":{"type":"integer"}},"required":["extern_uid","provider","saml_provider_id"],"type":["null","object"]},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","web_url","access_level"],"type":"object"} ```
group_member_edit ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"group_saml_identity":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"},"saml_provider_id":{"type":"integer"}},"required":["extern_uid","provider","saml_provider_id"],"type":["null","object"]},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","web_url","access_level"],"type":"object"} ```
group_member_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"group_saml_identity":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"},"saml_provider_id":{"type":"integer"}},"required":["extern_uid","provider","saml_provider_id"],"type":["null","object"]},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","web_url","access_level"],"type":"object"} ```
group_member_get_inherited ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"group_saml_identity":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"},"saml_provider_id":{"type":"integer"}},"required":["extern_uid","provider","saml_provider_id"],"type":["null","object"]},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","web_url","access_level"],"type":"object"} ```
group_member_remove ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_member_share ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","web_url"],"type":"object"} ```
group_member_unshare ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_milestone_burndown ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"weight":{"type":"integer"}},"required":["created_at","weight","action"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
group_milestone_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","iid","group_id","title","description","state","start_date","due_date","created_at","updated_at","expired"],"type":"object"} ```
group_milestone_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_milestone_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","iid","group_id","title","description","state","start_date","due_date","created_at","updated_at","expired"],"type":"object"} ```
group_milestone_issues ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
group_milestone_list ```json {"additionalProperties":false,"properties":{"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","iid","group_id","title","description","state","start_date","due_date","created_at","updated_at","expired"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["milestones","pagination"],"type":"object"} ```
group_milestone_merge_requests ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"source_branch":{"type":"string"},"state":{"type":"string"},"target_branch":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state","source_branch","target_branch","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
group_milestone_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","iid","group_id","title","description","state","start_date","due_date","created_at","updated_at","expired"],"type":"object"} ```
group_relations_list_status ```json {"additionalProperties":false,"properties":{"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"statuses":{"items":{"additionalProperties":false,"properties":{"batched":{"type":"boolean"},"batches":{"items":{"additionalProperties":false,"properties":{"batch_number":{"type":"integer"},"error":{"type":"string"},"objects_count":{"type":"integer"},"status":{"type":"integer"},"updated_at":{"type":"string"}},"required":["status","batch_number","objects_count"],"type":"object"},"type":["null","array"]},"batches_count":{"type":"integer"},"error":{"type":"string"},"relation":{"type":"string"},"status":{"type":"integer"},"updated_at":{"type":"string"}},"required":["relation","status","batched","batches_count"],"type":"object"},"type":["null","array"]}},"required":["statuses","pagination"],"type":"object"} ```
group_relations_schedule ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_upload_delete_by_id ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_upload_delete_by_secret ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
group_upload_list ```json {"additionalProperties":false,"properties":{"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"uploads":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"integer"},"size":{"type":"integer"},"uploaded_by":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","size","filename"],"type":"object"},"type":["null","array"]}},"required":["uploads","pagination"],"type":"object"} ```
hook_add ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"member_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_events":{"type":"boolean"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"subgroup_events":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","group_id","push_events","tag_push_events","merge_requests_events","issues_events","note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","subgroup_events","member_events","confidential_issues_events","confidential_note_events","enable_ssl_verification","feature_flag_events","milestone_events","vulnerability_events","emoji_events","resource_access_token_events","project_events","token_present","signing_token_present"],"type":"object"} ```
hook_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_delete_custom_header ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_delete_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_edit ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"member_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_events":{"type":"boolean"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"subgroup_events":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","group_id","push_events","tag_push_events","merge_requests_events","issues_events","note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","subgroup_events","member_events","confidential_issues_events","confidential_note_events","enable_ssl_verification","feature_flag_events","milestone_events","vulnerability_events","emoji_events","resource_access_token_events","project_events","token_present","signing_token_present"],"type":"object"} ```
hook_get ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"member_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_events":{"type":"boolean"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"subgroup_events":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","group_id","push_events","tag_push_events","merge_requests_events","issues_events","note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","subgroup_events","member_events","confidential_issues_events","confidential_note_events","enable_ssl_verification","feature_flag_events","milestone_events","vulnerability_events","emoji_events","resource_access_token_events","project_events","token_present","signing_token_present"],"type":"object"} ```
hook_list ```json {"additionalProperties":false,"properties":{"hooks":{"items":{"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"member_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_events":{"type":"boolean"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"subgroup_events":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","group_id","push_events","tag_push_events","merge_requests_events","issues_events","note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","subgroup_events","member_events","confidential_issues_events","confidential_note_events","enable_ssl_verification","feature_flag_events","milestone_events","vulnerability_events","emoji_events","resource_access_token_events","project_events","token_present","signing_token_present"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["hooks","pagination"],"type":"object"} ```
hook_resend_event ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_set_custom_header ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_set_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_test ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
invited_groups ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
issues ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
ldap_link_add ```json {"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"} ```
ldap_link_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
ldap_link_delete_for_provider ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
ldap_link_list ```json {"additionalProperties":false,"properties":{"links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["links"],"type":"object"} ```
ldap_sync ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
list_provisioned_users ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","name","state"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
members ```json {"additionalProperties":false,"properties":{"members":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"group_saml_identity":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"},"saml_provider_id":{"type":"integer"}},"required":["extern_uid","provider","saml_provider_id"],"type":["null","object"]},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["members","pagination"],"type":"object"} ```
projects ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
protected_branch_get ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","push_access_levels","merge_access_levels","unprotect_access_levels","allow_force_push","code_owner_approval_required"],"type":"object"} ```
protected_branch_list ```json {"additionalProperties":false,"properties":{"branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","push_access_levels","merge_access_levels","unprotect_access_levels","allow_force_push","code_owner_approval_required"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["branches","pagination"],"type":"object"} ```
protected_branch_protect ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","push_access_levels","merge_access_levels","unprotect_access_levels","allow_force_push","code_owner_approval_required"],"type":"object"} ```
protected_branch_unprotect ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
protected_branch_update ```json {"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"merge_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"push_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"unprotect_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]}},"required":["id","name","push_access_levels","merge_access_levels","unprotect_access_levels","allow_force_push","code_owner_approval_required"],"type":"object"} ```
protected_env_get ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
protected_env_list ```json {"additionalProperties":false,"properties":{"environments":{"items":{"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["environments","pagination"],"type":"object"} ```
protected_env_protect ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
protected_env_unprotect ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
protected_env_update ```json {"additionalProperties":false,"properties":{"approval_rules":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"required_approvals":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description","required_approvals"],"type":"object"},"type":["null","array"]},"deploy_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"group_id":{"type":"integer"},"group_inheritance_type":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"required_approval_count":{"type":"integer"}},"required":["name","deploy_access_levels","required_approval_count","approval_rules"],"type":"object"} ```
push_rule_add ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
push_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
push_rule_edit ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
push_rule_get ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
release_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"releases":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","created_at"],"type":"object"},"type":["null","array"]}},"required":["releases","pagination"],"type":"object"} ```
restore ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
saml_link_add ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"} ```
saml_link_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
saml_link_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"} ```
saml_link_list ```json {"additionalProperties":false,"properties":{"links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["links"],"type":"object"} ```
saml_users_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
search ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
security_settings_update ```json {"additionalProperties":false,"properties":{"errors":{"items":{"type":"string"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"secret_push_protection_enabled":{"type":"boolean"}},"required":["secret_push_protection_enabled"],"type":"object"} ```
service_account_create ```json {"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"} ```
service_account_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
service_account_list ```json {"additionalProperties":false,"properties":{"accounts":{"items":{"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["accounts","pagination"],"type":"object"} ```
service_account_pat_create ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"} ```
service_account_pat_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
service_account_pat_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
service_account_pat_rotate ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"} ```
service_account_update ```json {"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"} ```
share_with_group ```json {"additionalProperties":false,"properties":{"access_role":{"type":"string"},"group_access":{"type":"integer"},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"shared_group_id":{"type":"integer"}},"required":["message"],"type":"object"} ```
shared_projects ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
shared_with ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
ssh_cert_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
ssh_cert_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
ssh_cert_list ```json {"additionalProperties":false,"properties":{"certificates":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"}},"required":["id","title","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["certificates"],"type":"object"} ```
subgroups ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
transfer ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
transfer_locations ```json {"additionalProperties":false,"properties":{"locations":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["locations","pagination"],"type":"object"} ```
transfer_project ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
unarchive ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
unshare_from_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
upload_avatar ```json {"additionalProperties":false,"properties":{"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allowed_email_domains_list":{"type":"string"},"archived":{"type":"boolean"},"auto_devops_enabled":{"type":"boolean"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"crm_enabled":{"description":"Whether Customer Relations Management (CRM) is enabled for the group","type":"boolean"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"default_branch_protection":{"type":"integer"},"default_branch_protection_defaults":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"allowed_to_merge":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"allowed_to_push":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"}},"type":"object"},"type":["null","array"]},"code_owner_approval_required":{"type":"boolean"},"developer_can_initial_push":{"type":"boolean"}},"type":["null","object"]},"description":{"type":"string"},"duo_availability":{"type":"string"},"duo_features_enabled":{"type":"boolean"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"enabled_git_access_protocol":{"type":"string"},"experiment_features_enabled":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"file_template_project_id":{"type":"integer"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"ip_restriction_ranges":{"type":"string"},"ldap_access":{"type":"integer"},"ldap_cn":{"type":"string"},"ldap_group_links":{"items":{"additionalProperties":false,"properties":{"cn":{"type":"string"},"filter":{"type":"string"},"group_access":{"type":"integer"},"member_role_id":{"type":"integer"},"provider":{"type":"string"}},"required":["cn","group_access","provider"],"type":"object"},"type":["null","array"]},"lfs_enabled":{"type":"boolean"},"lock_duo_features_enabled":{"type":"boolean"},"lock_math_rendering_limits_enabled":{"type":"boolean"},"marked_for_deletion_on":{"type":"string"},"math_rendering_limits_enabled":{"type":"boolean"},"max_artifacts_size":{"type":"integer"},"membership_lock":{"type":"boolean"},"mentions_disabled":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"organization_id":{"type":"integer"},"parent_id":{"type":"integer"},"path":{"type":"string"},"prevent_forking_outside_group":{"type":"boolean"},"prevent_sharing_groups_outside_hierarchy":{"type":"boolean"},"project_creation_level":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"require_two_factor_authentication":{"type":"boolean"},"runners_token":{"type":"string"},"saml_group_links":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"member_role_id":{"type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["name","access_level"],"type":"object"},"type":["null","array"]},"share_with_group_lock":{"type":"boolean"},"shared_projects":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","visibility","web_url","archived"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"shared_runners_setting":{"type":"string"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"member_role_id":{"type":"integer"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"subgroup_creation_level":{"type":"string"},"two_factor_grace_period":{"type":"integer"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"}},"required":["id","name","path","full_path","visibility","web_url","request_access_enabled","lfs_enabled","archived","prevent_sharing_groups_outside_hierarchy","math_rendering_limits_enabled","lock_math_rendering_limits_enabled","duo_features_enabled","lock_duo_features_enabled","experiment_features_enabled","membership_lock","share_with_group_lock","require_two_factor_authentication","auto_devops_enabled","emails_enabled","emails_disabled","mentions_disabled","crm_enabled","prevent_forking_outside_group","only_allow_merge_if_pipeline_succeeds","allow_merge_on_skipped_pipeline","only_allow_merge_if_all_discussions_are_resolved"],"type":"object"} ```
wiki_create ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
wiki_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
wiki_edit ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
wiki_get ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
wiki_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"wiki_pages":{"items":{"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"},"type":["null","array"]}},"required":["wiki_pages"],"type":"object"} ```
### gitlab_interactive_issue_create **Interactive Issue Create** Create a GitLab issue through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the issue. Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are title, description, labels, confidential, and confirm. Requires permission to create issues in that project. After invocation, the tool elicits in order: - title (string, required) — issue title. - description (string, optional, multi-line, Markdown) — leave empty to skip. - labels (string, optional) — comma-separated; trimmed and deduped server-side. - confidential (boolean, optional) — yes/no confirmation; defaults to public when declined. - confirm (boolean, required) — final yes/no review of the assembled summary. Behavior: cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Each confirmed invocation creates ONE new issue; NON-idempotent — re-running with the same title/fields creates another issue. Side effects on success: GitLab fires issue-created webhooks and may notify issue subscribers. When to use: human-in-the-loop issue creation. NOT for: scripted/programmatic creation — use gitlab_issue (action='create') with all fields pre-supplied. Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_issue (action='create') as the alternative. Returns: JSON with the created issue (id, issue_iid, web_url, title, state); issue_iid corresponds to GitLab's iid field. See also: gitlab_issue. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### gitlab_interactive_mr_create **Interactive MR Create** Create a GitLab merge request through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the MR. Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are source_branch, target_branch, title, description, labels, remove_source_branch, squash, and confirm. Requires permission to create merge requests in that project. After invocation, the tool elicits in order: - source_branch (string, required) — branch with the changes to merge. - target_branch (string, required) — branch to merge into (e.g. main, develop). - title (string, required) — MR title. - description (string, optional, multi-line, Markdown) — leave empty to skip. - labels (string, optional) — comma-separated; trimmed and deduped server-side. - remove_source_branch (boolean, optional) — yes/no confirmation; default unset. - squash (boolean, optional) — yes/no confirmation; default unset. - confirm (boolean, required) — final yes/no review of the assembled summary. Behavior: cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Each confirmed invocation creates ONE new merge request. NON-idempotent — GitLab rejects an already-open MR for the same source_branch to target_branch in the same project as a validation failure (HTTP 422). Retries may fail with 422 instead of returning the existing MR. Confirm branch/MR state before re-running. For scripted idempotent workflows, use gitlab_merge_request (action='create') with all fields pre-supplied and handle 422 as the expected duplicate case. When to use: human-in-the-loop MR creation. NOT for: scripted/programmatic creation — use gitlab_merge_request (action='create') with all fields pre-supplied. Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_merge_request (action='create') as the alternative. Returns: JSON with the created MR (id, merge_request_iid, web_url, title, source_branch, target_branch, state); merge_request_iid corresponds to GitLab's iid field. See also: gitlab_merge_request, gitlab_branch. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### gitlab_interactive_project_create **Interactive Project Create** Create a GitLab project through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the project except initialize_with_readme, where decline/cancel continues with false. Input: no fields; every project detail is elicited. Requires permission to create projects for the authenticated user. After invocation, the tool elicits in order: - name (string, required) — project display name and (when path is omitted) URL slug. - description (string, optional) — leave empty to skip. - visibility (enum, required) — one of private, internal, public. - initialize_with_readme (boolean, optional) — yes/no confirmation; explicit no, decline, or cancel continues with false. - default_branch (string, optional) — leave empty to use the GitLab default ('main'). - confirm (boolean, required) — final yes/no review of the assembled summary. When to use: human-in-the-loop project creation. NOT for: scripted/programmatic creation — use gitlab_project (action='create') with all fields pre-supplied. Behavior: each successful invocation creates ONE new project after explicit user confirmation. NON-idempotent — re-running with the same project path/name can fail with 400/409. Cancellation/decline at any prompt aborts with no GitLab API call and no side effects, except initialize_with_readme where no/decline/cancel is accepted as initialize_with_readme=false. Side effects on success: GitLab may initialize a repository and notify project members. Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_project (action='create') as the alternative. Returns: JSON with the created project (id, path_with_namespace, web_url, visibility, default_branch). See also: gitlab_project, gitlab_group. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### gitlab_interactive_release_create **Interactive Release Create** Create a GitLab release through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the release. Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are tag_name, name, description, and confirm. Requires permission to create releases in that project. After invocation, the tool elicits in order: - tag_name (string, required) — must reference an existing tag in the project; create it first via gitlab_tag (action='create'). - name (string, optional) — release title; defaults to tag_name when left empty. - description (string, optional, multi-line, Markdown) — release notes; leave empty to skip. - confirm (boolean, required) — final yes/no review of the assembled summary. When to use: human-in-the-loop release publishing. NOT for: CI/automated release creation — use gitlab_release (action='create') with all fields pre-supplied. Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_release (action='create') as the alternative. Behavior: each successful invocation publishes ONE new release after explicit user confirmation. NON-idempotent — re-running with the same tag returns 409 (release already exists). Cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Side effects on success: GitLab fires release-created webhooks and may notify release subscribers. Returns: JSON with the created release (tag_name, name, description, web_url). See also: gitlab_release, gitlab_tag. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### gitlab_issue **Issue** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_issue.. Action guidance: - create: Create a new issue in a known project. Provide project_id and a clear title, then add description, labels, assignee_ids, milestone_id, due_date, confidential, or task metadata only when requested. - create_todo: Create a to-do item for the authenticated user on an issue so it appears in their GitLab to-do list. - delete: Permanently delete an issue. Destructive and irreversible; confirm project_id and issue_iid before calling. - discussion_add_note: Reply to an existing issue discussion thread by adding a note. Use this after gitlab_list_issue_discussions or gitlab_create_issue_discussion to continue a thread. Supports backdating via created_at for admins/owners. - discussion_create: Open a new discussion thread on an issue with an initial note. Use this to start a threaded conversation rather than a flat comment (use gitlab_issue_note_create for a non-threaded note). Supports backdating via created_at for admins/owners. - discussion_delete_note: Permanently delete a note from an issue discussion thread (destructive, requires confirmation). Only the note author or a Maintainer can delete a note. Identify the note with discussion_id plus note_id. - discussion_get: Fetch one discussion thread on an issue by its discussion_id, returning every note in the thread. Use this after gitlab_list_issue_discussions when the target thread is already known. - discussion_list: List all discussion threads on one issue, including system notes and threaded replies. Use this when the prompt asks for an issue's comment threads or conversation history, or before replying to a thread with gitlab_add_issue_discussion_note. Supports order_by, sort, and keyset pagination. - discussion_update_note: Edit the body of an existing note in an issue discussion thread. Only the note author can edit a note. Identify the note with discussion_id plus note_id. - emoji_issue_create: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_delete: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_get: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_list: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_note_create: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_note_delete: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_note_get: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - emoji_issue_note_list: Manage issue and issue-note award emojis (list/get/create/delete). Use this for reactions and lightweight signals on issues. - event_issue_label_get: Fetch one issue label-change event by id (a single add/remove of a label). - event_issue_label_list: List the label-change audit events for one issue (when each label was added or removed and by whom). - event_issue_milestone_get: Fetch one issue milestone-change event by id (a single milestone assignment or removal). - event_issue_milestone_list: List the milestone-change audit events for one issue (when the milestone was assigned or removed and by whom). - event_issue_state_get: Fetch one issue state-change event by id (a single close or reopen transition). - event_issue_state_list: List the state-change audit events for one issue (close and reopen transitions and who made them). - get: Get one exact issue by project_id plus issue_iid. Use this after list/search results or when the prompt already names a concrete issue number; prefer issue.get over issue.list when the target issue is already known. - get_by_id: Fetch one issue by its global database ID rather than a project IID. Use when the prompt or prior output gives a numeric issue id with no project context. - link_create: Create a relationship from a source issue to a target issue, optionally across projects. Pick link_type relates_to (default), blocks, or is_blocked_by. Use issue.link_list afterward to confirm. - link_delete: Remove an existing issue link by its issue_link_id. Destructive: this severs the relationship between the two issues. Use issue.link_list first to find the issue_link_id. - link_get: Get one issue link by its issue_link_id. Use issue.link_list first to find the issue_link_id, then this for the link's source/target issue details. - link_list: List every issue linked to a source issue (relates_to, blocks, is_blocked_by). Use after locating the source issue with issue.get or issue.list to inspect its relationships, then issue.link_get for one link's details. - list: List issues in one project. Use filters such as state, labels, search, assignee_username, milestone, order_by, sort, and pagination when the prompt asks for matching or recent issues in a known project. - list_all: List issues visible to the authenticated user across all accessible projects. Use this when the user asks for their open issues, assigned issues, or a cross-project issue overview. - list_group: List issues across a group and its subgroups and projects. Use when work is scoped to a group rather than a single project. - move: Move an issue to a different project, preserving its discussion and metadata. - mrs_closing: List merge requests that will close this issue when merged (those referencing it with a closing keyword). - mrs_related: List merge requests related to this issue (those mentioning it), a broader set than the closing MRs. - note_create: Add a comment (note) to an issue. Use when the task asks to comment on, reply to, or annotate an existing issue. Set internal=true for a confidential note visible only to project members. - note_delete: Permanently delete an issue note. Destructive and irreversible. Only the note author or a project Maintainer can delete a note; system notes cannot be deleted. Requires explicit confirmation. - note_get: Get one issue note by params.note_id. Use when the task references a specific comment or note ID on an issue. - note_list: List all comments (notes) on an issue, including system notes. Use when the task asks to read an issue's discussion, recent comments, or activity. Supports order_by, sort, and keyset pagination. - note_update: Replace the body of an existing issue note. Only the original author can edit a note; system notes cannot be edited. Use when the task asks to edit, fix, or amend a comment. - participants: List the users participating in an issue (author, assignees, commenters, and subscribers). - reorder: Reposition an issue relative to another issue (move before or after) to change its manual order on a board or list. - spent_time_add: Log time spent on an issue using a human duration such as 2h or 30m; logged values accumulate across calls. - spent_time_reset: Reset the total time spent on an issue back to zero. - statistics_get: Get aggregate issue counts (all, opened, closed) across every project visible to the authenticated user, optionally filtered by labels, milestone, assignee, author, dates, or search. - statistics_get_group: Get aggregate issue counts (all, opened, closed) for a group and its descendant projects, optionally filtered by labels, milestone, assignee, author, dates, IIDs, or search. - statistics_get_project: Get aggregate issue counts (all, opened, closed) for a single project, optionally filtered by labels, milestone, assignee, author, dates, IIDs, or search. - subscribe: Subscribe the authenticated user to notifications for an issue. - time_estimate_reset: Clear the time estimate previously set on an issue. - time_estimate_set: Set the time estimate for an issue using a human duration such as 3h30m or 1d. - time_stats_get: Read the time tracking totals (estimate and time spent) for an issue. - unsubscribe: Unsubscribe the authenticated user from an issue's notifications. - update: Update issue fields. To close or reopen an issue with issue.update, set params.state_event to close or reopen; dynamic execute also accepts issue.close and issue.reopen aliases that fill state_event automatically. - work_item_create: Create a new work item under a project or group namespace. Provide full_path, a work_item_type_id (discover with work_item.type_list), and a title; add description, confidential, assignee_ids, milestone_id, label_ids, weight, health_status, status, color, dates, or linked_items only when requested. - work_item_delete: Permanently delete a work item by namespace full_path plus work_item_iid. Deletion is irreversible; only the author or a Maintainer/Owner can delete, and some work item types are protected. - work_item_get: Get one exact work item by namespace full_path plus work_item_iid. Use this after list/search results or when the prompt already names a concrete work item number; prefer work_item.get over work_item.list when the target is already known. - work_item_list: List work items in one project or group namespace. Use filters such as state, search, types, author_username, label_name, confidential, sort, include_ancestors/descendants, and cursor pagination when the prompt asks for matching work items in a known namespace. - work_item_type_list: List available work item types (system-defined and custom) for a project or group namespace. Supports filtering by name and availability, with cursor-based pagination. Returns: type definitions with id, name, and enabled status. Experimental: the Work Items API may introduce breaking changes between minor versions. - work_item_update: Update an existing work item's fields, status, labels, or hierarchy. Provide full_path plus work_item_iid; set state_event to CLOSE or REOPEN to change state, and supply only the widget-supported fields you want to change. assignee_ids and crm_contact_ids replace the whole list: send an empty array to remove every entry, and omit the field to leave it untouched. Clearing entries that exist requires confirm=true (or an approved elicitation prompt). Parameter guidance: - create.due_date: calendar_date; source: Requested due date in ISO format when the user specifies one.; avoid: Use YYYY-MM-DD; natural-language dates must be normalized before calling the tool. - create.iid: scope_iid; source: Project- or group-scoped internal ID (IID), not the global ID. - create.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - create.project_id: scope_project; source: Project where the issue should be created.; avoid: Use the target project path or numeric ID; do not substitute group_id or repository URL. - create.title: issue_title; source: Short issue summary from the user's request. - create_todo.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - discussion_add_note.body: comment_body; source: Markdown text of the reply to append to the thread. - discussion_add_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_issue_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_add_note.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_add_note.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - discussion_create.body: comment_body; source: Markdown text for the first note of the new thread. - discussion_create.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_create.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - discussion_delete_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_issue_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_delete_note.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_delete_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_delete_note.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - discussion_get.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_issue_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_get.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_get.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - discussion_list.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_list.order_by: discussion_list_sort_field; source: Column requested for ordering threads, such as created_at or updated_at.; avoid: Combine order_by with sort; do not pass natural-language phrases as the field value. - discussion_list.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - discussion_update_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_issue_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_update_note.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for the project-scoped issue number, not the global issue ID. - discussion_update_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_update_note.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - emoji_issue_create.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_create.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_delete.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_delete.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_get.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_get.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_list.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_list.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_note_create.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_note_create.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_note_delete.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_note_delete.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_note_get.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_note_get.project_id: scope_project; source: Project ID or path that owns the issue. - emoji_issue_note_list.issue_iid: issue_iid; source: Issue IID from issue list/get outputs. - emoji_issue_note_list.project_id: scope_project; source: Project ID or path that owns the issue. - event_issue_label_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_issue_label_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_issue_milestone_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_issue_milestone_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_issue_state_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_issue_state_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.issue_iid: issue_iid; source: Issue number visible in the project, usually from the URL or prior issue list output.; avoid: Use issue_iid for project-scoped issue numbers; issue_id is only for the global issue ID action. - get.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - link_create.issue_iid: source_issue; source: IID of the source issue receiving the link.; avoid: Do not use the target issue IID here. - link_create.link_type: link_type; source: One of relates_to (default), blocks, is_blocked_by.; avoid: Omit for a plain relates_to relationship. - link_create.project_id: source_project; source: Project that owns the source issue.; avoid: Use target_project_id for the linked issue's project when it differs. - link_create.target_issue_iid: target_issue; source: IID of the issue being linked to.; avoid: Do not use the source issue IID here. - link_create.target_project_id: target_project; source: Project that owns the target issue.; avoid: For same-project links this may equal project_id; otherwise keep it distinct. - link_delete.issue_iid: source_issue; source: IID of the issue the link belongs to. - link_delete.issue_link_id: issue_link; source: issue_link_id returned by issue.link_list.; avoid: This is the link ID, not the linked issue's IID. - link_delete.project_id: project; source: Project that owns the issue holding the link. - link_get.issue_iid: source_issue; source: IID of the issue the link belongs to. - link_get.issue_link_id: issue_link; source: issue_link_id returned by issue.link_list.; avoid: This is the link ID, not the linked issue's IID. - link_get.project_id: project; source: Project that owns the issue holding the link. - link_list.issue_iid: source_issue; source: IID of the issue whose links are listed.; avoid: Use the issue IID, not its global ID. - link_list.project_id: project; source: Project that owns the source issue. - list.order_by: issue_list_sort_field; source: Field requested for sorting recent or oldest issues, such as created_at or updated_at.; avoid: Combine order_by with sort; do not pass natural-language phrases like newest first as the field value. - list.project_id: scope_project; source: Project ID or namespace path whose issues should be listed.; avoid: Use project_id for the project scope; use group_id only with issue.list_group. - list.search; source: Keywords from the user's issue title or description request.; avoid: search narrows within the selected project; it does not replace project_id. - list_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - move.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - mrs_closing.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - mrs_related.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - note_create.body; source: The comment text the user wants to post; Markdown is supported.; avoid: body is the comment content, not a description update; updating the issue body is issue.update. - note_create.internal; source: Set true only when the user asks for a private/internal note.; avoid: internal notes are visible to project members only; do not set for public replies. - note_create.issue_iid: issue_iid; source: Issue number visible in the project, from the issue URL or prior issue list output.; avoid: Use the project-scoped issue IID, not the global issue database ID. - note_create.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - note_delete.issue_iid: issue_iid; source: Issue number visible in the project, from the issue URL or prior issue list output.; avoid: Use the project-scoped issue IID, not the global issue database ID. - note_delete.note_id: note_id; source: Numeric note ID from a prior issue.note_list or issue.note_create result.; avoid: note_id is the comment ID, not the issue_iid; obtain it from issue.note_list. - note_delete.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - note_get.issue_iid: issue_iid; source: Issue number visible in the project, from the issue URL or prior issue list output.; avoid: Use the project-scoped issue IID, not the global issue database ID. - note_get.note_id: note_id; source: Numeric note ID from a prior issue.note_list or issue.note_create result.; avoid: note_id is the comment ID, not the issue_iid; obtain it from issue.note_list. - note_get.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - note_list.issue_iid: issue_iid; source: Issue number visible in the project, from the issue URL or prior issue list output.; avoid: Use the project-scoped issue IID, not the global issue database ID. - note_list.order_by; source: Field to order notes by: created_at or updated_at.; avoid: Combine order_by with sort; pass the field name, not a phrase like 'newest first'. - note_list.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - note_update.body; source: The new comment text that replaces the existing note body; Markdown is supported.; avoid: This replaces the whole note body; it does not append to it. - note_update.issue_iid: issue_iid; source: Issue number visible in the project, from the issue URL or prior issue list output.; avoid: Use the project-scoped issue IID, not the global issue database ID. - note_update.note_id: note_id; source: Numeric note ID from a prior issue.note_list or issue.note_create result.; avoid: note_id is the comment ID, not the issue_iid; obtain it from issue.note_list. - note_update.project_id: scope_project; source: Project ID or full namespace path that owns the issue.; avoid: Use the issue's parent project here, not a group path or global issue ID. - participants.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - reorder.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - spent_time_add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - spent_time_reset.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - statistics_get_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - statistics_get_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - subscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_estimate_reset.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_estimate_set.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_stats_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unsubscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.state_event: issue_state_transition; source: task intent when closing or reopening an issue; avoid: Do not use state=closed/opened for transitions; use state_event=close or state_event=reopen. - work_item_create.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - work_item_update.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). Manage GitLab issues: CRUD, notes, discussions, links, time tracking, work items, award emoji, statistics, and resource events. When to use: issue lifecycle — create, update, close, move, comment, link, time-track, and manage Work Items (including Epics). NOT for: merge requests (use gitlab_merge_request), project settings (use gitlab_project), CI/CD (use gitlab_pipeline). Side effects: delete/move are irreversible; move changes URL and IID. Time tracking uses dedicated actions — do NOT pass time params to update. Returns: resource object for single-item actions; paginated list ({page, per_page, total, next_page}) for *_list / list / list_all / list_group / participants / mrs_* / iteration_list_*; GraphQL cursor pagination ({nodes, page_info}) for work_item_list; {success, message} for delete actions. Errors: 404 (hint: issue_iid is project-scoped — supply project_id; for list_all use scope/iids), 403 (hint: Reporter+ to comment, Developer+ to edit/move), 400 (hint: state_event ∈ close/reopen; dates ISO 8601; weight integer 0–9 — Premium+). Param conventions: * = required. Most actions need project_id* + issue_iid*. List actions accept page, per_page. Work item actions use full_path* + work_item_iid* (GraphQL). Issue CRUD: - create: project_id*, title*, description, assignee_id, assignee_ids ([]int), labels (comma-separated), milestone_id, due_date (YYYY-MM-DD), confidential, issue_type (issue/incident/test_case/task), weight, epic_id - get: project_id*, issue_iid* - get_by_id: issue_id* (global ID, no project_id needed) - list: project_id*, state (opened/closed/all), labels, not_labels, milestone, scope (created_by_me/assigned_to_me/all), search, assignee_username, author_username, iids ([]int), issue_type, confidential, created_after/before, updated_after/before (ISO 8601), order_by (created_at/updated_at/priority/due_date), sort (asc/desc) - list_all: global issue list (no project_id). Same filters as list. - list_group: group_id*, state, labels, milestone, scope, search, order_by, sort - update: project_id*, issue_iid*, title, description, state_event (close/reopen), assignee_id, assignee_ids, labels, add_labels, remove_labels, milestone_id, due_date, confidential, issue_type, weight, epic_id, discussion_locked - delete: project_id*, issue_iid* (permanent, irreversible) - reorder: project_id*, issue_iid*, move_after_id, move_before_id - move: project_id*, issue_iid*, to_project_id* (moves to another project) - subscribe / unsubscribe: project_id*, issue_iid* - create_todo: project_id*, issue_iid* Time tracking: - time_estimate_set: project_id*, issue_iid*, duration* (e.g. 3h30m) - time_estimate_reset / spent_time_reset: project_id*, issue_iid* - spent_time_add: project_id*, issue_iid*, duration*, summary - time_stats_get: project_id*, issue_iid* Participants & related MRs: - participants: project_id*, issue_iid* - mrs_closing / mrs_related: project_id*, issue_iid* Notes (note_*): project_id*, issue_iid* for all. - note_list: order_by, sort - note_get / note_delete: note_id* - note_create: body*, internal - note_update: note_id*, body* Issue links (link_*): project_id*, issue_iid* for all. - link_list - link_get / link_delete: issue_link_id* - link_create: target_project_id*, target_issue_iid*, link_type Discussions (discussion_*): project_id*, issue_iid* for all. - discussion_list - discussion_get: discussion_id* - discussion_create: body* - discussion_add_note: discussion_id*, body* - discussion_update_note: discussion_id*, note_id*, body* - discussion_delete_note: discussion_id*, note_id* Work Items (work_item_*): full_path* for all. Use types=["Epic"] to list epics (replaces deprecated epic_list). - work_item_list: state, search, types, author_username, label_name, confidential, sort, first, after - work_item_get: work_item_iid* - work_item_create: work_item_type_id*, title*, description, confidential, assignee_ids, milestone_id, label_ids, weight, health_status, color, due_date, start_date, linked_items {work_item_ids, link_type} - work_item_update: work_item_iid*, title, state_event (CLOSE/REOPEN), description, assignee_ids, milestone_id, crm_contact_ids, parent_id, add_label_ids, remove_label_ids, start_date, due_date, weight, health_status, iteration_id, color, status (TODO/IN_PROGRESS/DONE/WONT_DO/DUPLICATE) - work_item_delete: work_item_iid* (permanent) Statistics: - statistics_get: global issue stats (optional filters same as list) - statistics_get_group: group_id* - statistics_get_project: project_id* Award emoji (emoji_issue_*): project_id*, issue_iid* for all. - emoji_issue_list / emoji_issue_get (+ award_id*) / emoji_issue_delete (+ award_id*) - emoji_issue_create: name* - emoji_issue_note_list / emoji_issue_note_get: note_id*, (+ award_id* for get) - emoji_issue_note_create: note_id*, name* - emoji_issue_note_delete: note_id*, award_id* Resource events (event_issue_*): project_id*, issue_iid* for all. - event_issue_label_list / event_issue_label_get (+ label_event_id*) - event_issue_milestone_list / event_issue_milestone_get (+ milestone_event_id*) - event_issue_state_list / event_issue_state_get (+ state_event_id*) - event_issue_iteration_list / event_issue_iteration_get (+ iteration_event_id*) - event_issue_weight_list Iterations (Premium+ — requires GITLAB_TIER=premium): - iteration_list_project: project_id*, state (opened, upcoming, current, closed, all), search, include_ancestors - iteration_list_group: group_id*, state, search, include_ancestors See also: gitlab_merge_request (MR lifecycle), gitlab_project (project settings, labels, milestones), gitlab_pipeline (CI/CD). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
create_todo ```json {"additionalProperties":false,"properties":{"action_name":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"target_title":{"type":"string"},"target_type":{"type":"string"},"target_url":{"type":"string"}},"required":["id","action_name","target_type","target_title","target_url","state"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
discussion_add_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
discussion_create ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_delete_note ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
discussion_get ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_list ```json {"additionalProperties":false,"properties":{"discussions":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["discussions","pagination"],"type":"object"} ```
discussion_update_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
emoji_issue_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_issue_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_issue_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_issue_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
emoji_issue_note_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_issue_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_issue_note_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_issue_note_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
event_issue_iteration_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_issue_iteration_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_issue_label_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_issue_label_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_issue_milestone_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_issue_milestone_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_issue_state_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"state":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","state","created_at","resource_type","resource_id"],"type":"object"} ```
event_issue_state_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"state":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","state","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_issue_weight_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"issue_id":{"type":"integer"},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"state":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"weight":{"type":"integer"}},"required":["id","created_at","resource_type","resource_id","state","issue_id","weight"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
get_by_id ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
iteration_list_group ```json {"additionalProperties":false,"properties":{"iterations":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["iterations","pagination"],"type":"object"} ```
iteration_list_project ```json {"additionalProperties":false,"properties":{"iterations":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["iterations","pagination"],"type":"object"} ```
link_create ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"link_type":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_issue":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","state","project_id","title","web_url","confidential","discussion_locked","subscribed"],"type":["null","object"]},"target_issue":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","state","project_id","title","web_url","confidential","discussion_locked","subscribed"],"type":["null","object"]}},"required":["id","link_type"],"type":"object"} ```
link_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
link_get ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"link_type":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_issue":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","state","project_id","title","web_url","confidential","discussion_locked","subscribed"],"type":["null","object"]},"target_issue":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","state","project_id","title","web_url","confidential","discussion_locked","subscribed"],"type":["null","object"]}},"required":["id","link_type"],"type":"object"} ```
link_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"relations":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_link_id":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"link_created_at":{"type":"string"},"link_type":{"type":"string"},"link_updated_at":{"type":"string"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","state","confidential","project_id","title","web_url","issue_link_id","link_type"],"type":"object"},"type":["null","array"]}},"required":["relations"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
list_all ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
list_group ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
move ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
mrs_closing ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","state","description","source_branch","target_branch","source_project_id","target_project_id","author","assignee","assignees","reviewers","merge_user","merged_by","closed_by","milestone","labels","label_details","references","time_stats","task_completion_status","draft","imported","imported_from","detailed_merge_status","merge_when_pipeline_succeeds","sha","merge_commit_sha","squash_commit_sha","squash","squash_on_merge","should_remove_source_branch","force_remove_source_branch","allow_collaboration","allow_maintainer_to_push","discussion_locked","has_conflicts","blocking_discussions_resolved","upvotes","downvotes","user_notes_count","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
mrs_related ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","state","description","source_branch","target_branch","source_project_id","target_project_id","author","assignee","assignees","reviewers","merge_user","merged_by","closed_by","milestone","labels","label_details","references","time_stats","task_completion_status","draft","imported","imported_from","detailed_merge_status","merge_when_pipeline_succeeds","sha","merge_commit_sha","squash_commit_sha","squash","squash_on_merge","should_remove_source_branch","force_remove_source_branch","allow_collaboration","allow_maintainer_to_push","discussion_locked","has_conflicts","blocking_discussions_resolved","upvotes","downvotes","user_notes_count","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
note_create ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
note_get ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
note_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["notes","pagination"],"type":"object"} ```
note_update ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
participants ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"participants":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","web_url"],"type":"object"},"type":["null","array"]}},"required":["participants"],"type":"object"} ```
reorder ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
spent_time_add ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
spent_time_reset ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
statistics_get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"counts":{"additionalProperties":false,"properties":{"all":{"type":"integer"},"closed":{"type":"integer"},"opened":{"type":"integer"}},"required":["all","closed","opened"],"type":"object"}},"required":["counts"],"type":"object"}},"required":["statistics"],"type":"object"} ```
statistics_get_group ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"counts":{"additionalProperties":false,"properties":{"all":{"type":"integer"},"closed":{"type":"integer"},"opened":{"type":"integer"}},"required":["all","closed","opened"],"type":"object"}},"required":["counts"],"type":"object"}},"required":["statistics"],"type":"object"} ```
statistics_get_project ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"statistics":{"additionalProperties":false,"properties":{"counts":{"additionalProperties":false,"properties":{"all":{"type":"integer"},"closed":{"type":"integer"},"opened":{"type":"integer"}},"required":["all","closed","opened"],"type":"object"}},"required":["counts"],"type":"object"}},"required":["statistics"],"type":"object"} ```
subscribe ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
time_estimate_reset ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
time_estimate_set ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
time_stats_get ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
unsubscribe ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"} ```
work_item_create ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"work_item":{"additionalProperties":false,"properties":{"assignees":{"items":{"type":"string"},"type":["null","array"]},"author":{"type":"string"},"children":{"description":"Child work items in the hierarchy (each with namespace path and IID)","items":{"additionalProperties":false,"properties":{"iid":{"description":"Internal ID (IID) of the child work item","type":"integer"},"path":{"description":"Namespace full path of the child work item","type":"string"}},"required":["iid"],"type":"object"},"type":["null","array"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","type","state","title"],"type":"object"}},"required":["work_item"],"type":"object"} ```
work_item_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
work_item_get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"work_item":{"additionalProperties":false,"properties":{"assignees":{"items":{"type":"string"},"type":["null","array"]},"author":{"type":"string"},"children":{"description":"Child work items in the hierarchy (each with namespace path and IID)","items":{"additionalProperties":false,"properties":{"iid":{"description":"Internal ID (IID) of the child work item","type":"integer"},"path":{"description":"Namespace full path of the child work item","type":"string"}},"required":["iid"],"type":"object"},"type":["null","array"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","type","state","title"],"type":"object"}},"required":["work_item"],"type":"object"} ```
work_item_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"work_items":{"items":{"additionalProperties":false,"properties":{"assignees":{"items":{"type":"string"},"type":["null","array"]},"author":{"type":"string"},"children":{"description":"Child work items in the hierarchy (each with namespace path and IID)","items":{"additionalProperties":false,"properties":{"iid":{"description":"Internal ID (IID) of the child work item","type":"integer"},"path":{"description":"Namespace full path of the child work item","type":"string"}},"required":["iid"],"type":"object"},"type":["null","array"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","type","state","title"],"type":"object"},"type":["null","array"]}},"required":["work_items"],"type":"object"} ```
work_item_type_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"},"types":{"items":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","enabled"],"type":"object"},"type":["null","array"]}},"required":["types","pagination"],"type":"object"} ```
work_item_update ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"work_item":{"additionalProperties":false,"properties":{"assignees":{"items":{"type":"string"},"type":["null","array"]},"author":{"type":"string"},"children":{"description":"Child work items in the hierarchy (each with namespace path and IID)","items":{"additionalProperties":false,"properties":{"iid":{"description":"Internal ID (IID) of the child work item","type":"integer"},"path":{"description":"Namespace full path of the child work item","type":"string"}},"required":["iid"],"type":"object"},"type":["null","array"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"linked_items":{"items":{"additionalProperties":false,"properties":{"iid":{"type":"integer"},"link_type":{"type":"string"},"path":{"type":"string"}},"required":["iid","link_type"],"type":"object"},"type":["null","array"]},"state":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","type","state","title"],"type":"object"}},"required":["work_item"],"type":"object"} ```
### gitlab_job **Job** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_job.. Action guidance: - artifacts: Download the full artifact archive for a CI job by project_id and job_id. Use this to retrieve all build outputs as a base64-encoded archive; prefer download_single_artifact for one file. - cancel: Cancel a running or pending CI job by project_id and job_id. Use force:true to cancel jobs already in a non-cancellable state (requires GitLab v17.2+). - delete_artifacts: Delete the artifacts for one CI job by project_id and job_id. Use this destructive action to free storage for a finished job; requires Maintainer+ role. - delete_project_artifacts: Delete every eligible artifact across a project by project_id. Use this irreversible bulk action to reclaim storage across all jobs; requires Maintainer+ role. - download_artifacts: Download the latest successful artifacts for a ref by project_id, ref_name, and job name. Use this to fetch the most recent build output for a branch or tag without knowing the job ID. - download_single_artifact: Download one artifact file path from a job by job_id and artifact_path. Use when the task requests one artifact file by explicit path; prefer job.artifacts for full archives. - download_single_artifact_by_ref: Download one artifact file by project_id, ref_name, job name, and artifact_path. Use this to fetch a single file from the latest successful job on a ref without knowing the job ID. - erase: Erase a finished CI job's trace log and artifacts by project_id and job_id. Use this destructive action to wipe sensitive output; the job must be in a finished state and requires Maintainer+. - get: Get one CI job by project_id and job_id. Use this when the task already references a specific job and needs state, stage, runner, failure reason, or timing details. - keep_artifacts: Prevent a CI job's artifacts from expiring by project_id and job_id. Use this to retain build outputs indefinitely by clearing the artifact expire_at; requires Maintainer+. - list: List jobs for one pipeline by project_id and pipeline_id. Use this when the prompt references a specific pipeline and asks which jobs ran, failed, or are pending; filter by scope and paginate as needed. - list_bridges: List bridge (trigger) jobs for one pipeline by project_id and pipeline_id. Use this to inspect downstream or multi-project pipeline triggers; bridges exist only on pipelines that trigger child pipelines. - list_project: List jobs in one project. Use this when the prompt asks for recent, failed, manual, or retried jobs in a known project; combine filters and pagination as needed. - play: Run a manual CI job by project_id and job_id, optionally injecting job_variables_attributes. Use this for jobs defined as when:manual that have not yet run; use retry for finished jobs. - retry: Retry a failed or canceled CI job by project_id and job_id. Use this to re-run a job that ended in failure; running or successful jobs cannot be retried. - token_scope_add_group: Add a group to this project's CI/CD job token allowlist so job tokens from the group's projects may access this project. Requires GitLab 17.0+. - token_scope_add_project: Add a project to this project's CI/CD job token inbound allowlist so its job tokens may access this project. Requires the inbound scope to be enabled. - token_scope_get: Read whether a project limits CI/CD job token access to an inbound allowlist. Use before changing allowlist membership to confirm the inbound scope is enabled. - token_scope_list_groups: List the groups allowed inbound CI/CD job token access to this project. Use to audit group allowlist membership; requires GitLab 17.0+. - token_scope_list_inbound: List the projects whose CI/CD job tokens are allowed inbound access to this project. Use to audit allowlist membership or before adding or removing a project. - token_scope_patch: Enable or disable the inbound CI/CD job token scope for a project. Enabling restricts which projects' job tokens may access this project to the inbound allowlist. - token_scope_remove_group: Remove a group from this project's CI/CD job token allowlist, revoking inbound job token access for the group's projects. Destructive; confirm project_id and target_group_id first. - token_scope_remove_project: Remove a project from another project's CI/CD job token inbound allowlist, revoking its inbound job token access. Destructive; confirm project_id and target_project_id first. - trace: Get job log output (trace) for troubleshooting and diagnostics. Use with a known job_id after selecting a relevant job from list/get calls. - wait: Poll a CI job by project_id and job_id until it reaches a terminal state or times out. Use this to block on a job before reading its result, with progress notifications on each poll. Parameter guidance: - artifacts.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - artifacts.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - cancel.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - cancel.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - delete_artifacts.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - delete_artifacts.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - delete_project_artifacts.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - download_artifacts.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - download_artifacts.ref_name: git_ref; source: Branch or tag name whose latest successful pipeline produced the artifacts. - download_single_artifact.artifact_path: artifact_path; source: Path of the file inside the artifact archive. - download_single_artifact.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - download_single_artifact.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - download_single_artifact_by_ref.artifact_path: artifact_path; source: Path of the file inside the artifact archive. - download_single_artifact_by_ref.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - download_single_artifact_by_ref.ref_name: git_ref; source: Branch or tag name whose latest successful job produced the artifact. - erase.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - erase.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - get.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - get.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - keep_artifacts.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - keep_artifacts.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - list.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline list output or user-provided context.; avoid: pipeline_id identifies the pipeline, not an individual job; use job_id for a specific job. - list.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - list.scope: job_status_filter; source: Status filter requested by task, for example failed, success, running, pending, or manual.; avoid: scope is an array of status strings; avoid natural-language values. - list_bridges.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline list output or user-provided context.; avoid: pipeline_id identifies the pipeline, not an individual job; use job_id for a specific job. - list_bridges.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - list_bridges.scope: job_status_filter; source: Status filter requested by task, for example failed, success, running, pending, or manual.; avoid: scope is an array of status strings; avoid natural-language values. - list_project.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - list_project.scope: job_status_filter; source: Status filter requested by task, for example failed, success, running, pending, or manual.; avoid: scope is an array of status strings; avoid natural-language values. - play.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - play.job_variables_attributes: job_variable_overrides; source: List of key/value (and optional variable_type) variable overrides to inject into the manual run.; avoid: Each entry needs an explicit key and value; variable_type defaults to env_var. - play.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - retry.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - retry.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - token_scope_add_group.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_add_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_list_groups.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_list_inbound.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_patch.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_remove_group.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - token_scope_remove_project.project_id: scope_owner_project; source: Owning project whose CI job token allowlist is being changed.; avoid: Do not use the project being removed as project_id. - token_scope_remove_project.target_project_id: target_project; source: Project being removed from or added to the allowlist.; avoid: Do not put the allowlist owner project here. - trace.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - trace.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. - wait.job_id: job_identifier; source: Numeric CI job ID from pipeline/job list output or user-provided context.; avoid: job_id is the global database ID, not the per-pipeline index; do not pass a pipeline ID as job_id. - wait.project_id: scope_project; source: Project ID or full namespace path that owns the job.; avoid: Use project_id for project scope; pipeline_id and job_id are not substitutes for project_id. Manage GitLab CI/CD jobs and the CI/CD job token scope: lifecycle, manual play, log/artifact retrieval, and inbound trust boundaries. Erase/delete actions are destructive. When to use: job details, logs, artifacts, retry/cancel jobs, job token scope. NOT for: pipeline-level operations (use gitlab_pipeline). Behavior: - Idempotent reads: list / list_project / get / trace / artifacts / download_artifacts / download_single_artifact / download_single_artifact_by_ref / list_bridges / token_scope_get / token_scope_list_inbound / token_scope_list_groups. - retry starts a NEW job run on every call (NON-idempotent — returns a fresh job_id). play activates an existing manual job that has not yet run (same job_id; only manual jobs with rules.when=manual are eligible) and may pass new variables. cancel is idempotent (no-op once final). keep_artifacts / token_scope_patch / token_scope_add_project / token_scope_add_group are idempotent. - Side effects: retry / play queue runners, consume CI minutes, and may trigger downstream pipelines and notifications. trace returns up to 100KB of log; download_artifacts streams up to 1MB inline (base64). - Destructive: erase clears the job log and artifacts in place (irreversible); delete_artifacts removes a single job's artifacts; delete_project_artifacts wipes ALL artifacts across the project (irreversible). token_scope_remove_* tightens trust boundaries and may break running pipelines. Param conventions: * = required. All job actions need project_id*. List actions accept page, per_page. Jobs: - list: project_id*, pipeline_id*, scope - list_project: project_id*, scope, include_retried - get: project_id*, job_id* - trace: project_id*, job_id*. Returns job log (truncated to 100KB). - cancel / retry / erase / keep_artifacts: project_id*, job_id* - play: project_id*, job_id*, variables (array of {key, value, variable_type}) - wait: project_id*, job_id*, interval_seconds (5-60, default 10), timeout_seconds (1-3600, default 300), fail_on_error (default true) - list_bridges: project_id*, pipeline_id*, scope - delete_artifacts: project_id*, job_id* - delete_project_artifacts: project_id*. Deletes ALL artifacts across project. Artifact downloads (base64, max 1MB): - artifacts: project_id*, job_id* — download the whole artifact archive from a known numeric job ID. - download_artifacts: project_id*, ref_name*, job* — download the whole artifact archive by ref_name and job NAME (string). Never use with job_id. - download_single_artifact: project_id*, job_id*, artifact_path* — use when the prompt gives a numeric job ID and one artifact file path such as coverage/report.xml. This is the single-file-by-job-id action. - download_single_artifact_by_ref: project_id*, ref_name*, artifact_path*, job* — use when the prompt gives ref_name plus job NAME and one artifact file path. Never use with job_id. Job token scope: - token_scope_get / token_scope_patch: project_id*. Patch params: enabled. - token_scope_list_inbound: project_id* - token_scope_add_project / token_scope_remove_project: project_id*, target_project_id* - token_scope_list_groups: project_id* - token_scope_add_group / token_scope_remove_group: project_id*, target_group_id* See also: gitlab_pipeline, gitlab_repository Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
artifacts ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"job_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["size","content","truncated"],"type":"object"} ```
cancel ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
delete_artifacts ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete_project_artifacts ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
download_artifacts ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"job_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["size","content","truncated"],"type":"object"} ```
download_single_artifact ```json {"additionalProperties":false,"properties":{"artifact_path":{"type":"string"},"content":{"type":"string"},"job_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["artifact_path","size","content","truncated"],"type":"object"} ```
download_single_artifact_by_ref ```json {"additionalProperties":false,"properties":{"artifact_path":{"type":"string"},"content":{"type":"string"},"job_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["artifact_path","size","content","truncated"],"type":"object"} ```
erase ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
keep_artifacts ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"jobs":{"items":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["jobs","pagination"],"type":"object"} ```
list_bridges ```json {"additionalProperties":false,"properties":{"bridges":{"items":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"downstream_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":["null","object"]},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["bridges","pagination"],"type":"object"} ```
list_project ```json {"additionalProperties":false,"properties":{"jobs":{"items":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["jobs","pagination"],"type":"object"} ```
play ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
retry ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"} ```
token_scope_add_group ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_project_id":{"type":"integer"},"target_group_id":{"type":"integer"}},"required":["source_project_id","target_group_id"],"type":"object"} ```
token_scope_add_project ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_project_id":{"type":"integer"},"target_project_id":{"type":"integer"}},"required":["source_project_id","target_project_id"],"type":"object"} ```
token_scope_get ```json {"additionalProperties":false,"properties":{"inbound_enabled":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["inbound_enabled"],"type":"object"} ```
token_scope_list_groups ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","full_path","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
token_scope_list_inbound ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path_with_namespace","web_url"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
token_scope_patch ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_scope_remove_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
token_scope_remove_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
trace ```json {"additionalProperties":false,"properties":{"job_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"trace":{"type":"string"},"truncated":{"type":"boolean"}},"required":["job_id","trace","truncated"],"type":"object"} ```
wait ```json {"additionalProperties":false,"properties":{"final_status":{"type":"string"},"job":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"poll_count":{"type":"integer"},"timed_out":{"type":"boolean"},"waited_for":{"type":"string"}},"required":["job","waited_for","poll_count","final_status","timed_out"],"type":"object"} ```
### gitlab_merge_request **Merge Request** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_merge_request.. Action guidance: - approval_config: Read the approval configuration of a merge request: approvals required and left, current approvers, suggested approvers, and approver groups. Use for a configuration overview rather than the per-rule state. - approval_reset: Reset (clear) all existing approvals on a merge request. Requires a project or group access token (bot user); personal access tokens are rejected. Use when approvals must be re-collected after changes. - approve: Add the caller's approval to a merge request; pass sha to approve only if the MR HEAD still matches (a safety check against new pushes). - cancel_auto_merge: Cancels auto-merge on a merge request; it does not cancel a running pipeline. - commits: List the commits contained in a merge request, ordered and paginated (offset or keyset). - context_commits_create: Attach one or more existing repository commit SHAs to a merge request as context commits, adding them to the review without changing the MR's source/target branches. Resolve SHAs with commit.list or merge_request.commits first. - context_commits_delete: Remove specified context commits from a merge request by SHA, detaching them from the review without deleting the underlying repository commits. List context commits first to confirm which SHAs are currently pinned. - context_commits_list: List the context commits attached to a merge request: extra commits a reviewer added for context that are not part of the MR's diff range. Use after merge_request.get to inspect which supplementary commits are pinned to the review. - create: Use to open a merge request from a source branch into the target branch in a project. - create_pipeline: Creates a new pipeline for a merge request; use pipeline.wait after receiving pipeline_id if the task asks to wait for completion. - create_todo: Create a to-do item on a merge request for the caller so it appears in their GitLab to-do list. - delete: Permanently delete a merge request (owner-only). To merely stop work, use merge_request.update with state_event=close instead. - emoji_mr_create: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_delete: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_get: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_list: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_note_create: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_note_delete: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_note_get: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - emoji_mr_note_list: Manage merge request and MR-note award emojis (list/get/create/delete). Use for feedback and quick approval/review signals. - event_mr_label_get: Fetch one merge request label-change event by id (a single add/remove of a label). - event_mr_label_list: List the label-change audit events for one merge request (when each label was added or removed and by whom). - event_mr_milestone_get: Fetch one merge request milestone-change event by id (a single milestone assignment or removal). - event_mr_milestone_list: List the milestone-change audit events for one merge request (when the milestone was assigned or removed and by whom). - event_mr_state_get: Fetch one merge request state-change event by id (a single close, reopen, or merge transition). - event_mr_state_list: List the state-change audit events for one merge request (close, reopen, and merge transitions and who made them). - get: Fetch a single merge request by its project-scoped IID, optionally including diverged-commit count, rebase-in-progress state, or HTML-rendered title/description. - issues_closed: List issues that will be closed when this merge request is merged (issues referenced via 'Closes #N' in the MR description or commits). - list: List merge requests in one project with rich filtering (state, labels, author/assignee/reviewer, approvals, environment, dates) and offset or keyset pagination. - list_global: List merge requests across all projects visible to the caller; narrow with scope=created_by_me or scope=assigned_to_me, author/reviewer, approvals, or label filters. - list_group: List merge requests across a group and its subgroups/projects with state, author, reviewer, approval, and label filters plus offset or keyset pagination. - merge: Use to merge a merge request now, or set params.auto_merge=true when the task asks to merge when pipeline succeeds. Do not use pipeline.wait unless the task only asks to wait for an existing pipeline. - participants: List every user participating in a merge request (author, assignees, reviewers, commenters). - pipelines: Lists pipelines attached to a merge request; use pipeline.wait with the returned pipeline_id only when the task asks to wait for CI completion. - rebase: Rebase a merge request's source branch onto the latest target branch; set skip_ci to avoid triggering a pipeline after the rebase. - related_issues: List issues referenced by a merge request in its description, commits, or notes (a superset of issues_closed). - reviewers: List the assigned reviewers of a merge request along with each reviewer's review state. - spent_time_add: Log spent time on a merge request with a GitLab duration string; use a leading '-' (e.g. '-1h') to subtract previously logged time. - spent_time_reset: Reset the total spent time logged on a merge request back to zero. - subscribe: Subscribe the caller to a merge request to receive notifications about its activity. - time_estimate_reset: Clear the time estimate previously set on a merge request. - time_estimate_set: Set the time estimate for a merge request using a GitLab duration string such as '3h30m', '1d', or '2w'. - time_stats: Read the time tracking totals (estimate and total spent time) for a merge request. - unapprove: Remove the caller's previously granted approval from a merge request (idempotent; requires the caller to have approved first). - unsubscribe: Unsubscribe the caller from a merge request to stop receiving its notifications. - update: Update merge request fields (title, description, target branch, assignees, reviewers, labels, milestone) or transition state with state_event=close/reopen. Parameter guidance: - approval_config.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use the project-scoped merge_request_iid, not the merge request's global database ID. - approval_config.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the merge request's global ID. - approval_reset.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use the project-scoped merge_request_iid, not the merge request's global database ID. - approval_reset.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the merge request's global ID. - approve.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - approve.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - cancel_auto_merge.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - commits.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - context_commits_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - context_commits_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - context_commits_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.source_branch: source_branch; source: Branch named after 'from'.; avoid: Do not use ref, tag_name, target_branch, or value for the source branch. - create.target_branch: target_branch; source: Branch named after 'into' or the merge target.; avoid: Do not use source_branch, ref, tag_name, or to for the target branch. - create_pipeline.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create_todo.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - emoji_mr_create.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_create.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_delete.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_delete.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_get.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_get.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_list.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_list.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_note_create.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_note_create.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_note_delete.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_note_delete.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_note_get.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_note_get.project_id: scope_project; source: Project ID or path that owns the merge request. - emoji_mr_note_list.merge_request_iid: merge_request_iid; source: Merge request IID from MR list/get outputs. - emoji_mr_note_list.project_id: scope_project; source: Project ID or path that owns the merge request. - event_mr_label_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_mr_label_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_mr_milestone_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_mr_milestone_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_mr_state_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - event_mr_state_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - issues_closed.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - merge.auto_merge: merge_scheduling; source: Set true only when the user asks to merge when the pipeline succeeds or enable auto-merge.; avoid: Do not call pipeline.wait for merge-when-pipeline-succeeds requests; use merge_request.merge with auto_merge=true. - merge.merge_request_iid: merge_request_iid; source: Project-scoped MR IID from merge_request.list or merge_request.get.; avoid: Do not use pipeline_id; merge_request.merge requires merge_request_iid. - merge.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - merge.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - participants.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - pipelines.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - rebase.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - related_issues.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - reviewers.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - spent_time_add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - spent_time_reset.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - subscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_estimate_reset.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_estimate_set.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - time_stats.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unapprove.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unapprove.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - unsubscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab merge request lifecycle plus approval rules and settings, time tracking, subscriptions, context commits, MR dependencies (blocking MRs), todos, related issues, award emoji, and resource events. Delete permanently removes an MR. When to use: MR lifecycle (open/list/update/merge/close/delete/rebase), approvals at MR/group/project level, time tracking, subscriptions, context commits, MR dependencies, todos, related issues, award emoji, MR resource events. NOT for: comments, discussions, diffs, draft notes, raw diffs (use gitlab_mr_review), CI pipelines (use gitlab_pipeline; use action 'pipelines' here only to LIST MR pipelines), branches/tags (use gitlab_branch / gitlab_tag), commits in the repo (use gitlab_repository). Returns: - list / list_global / list_group / commits / pipelines / participants / reviewers / issues_closed / related_issues / dependencies_list / approval_rules / context_commits_list / event_*_list / emoji_*_list: arrays with pagination {page, per_page, total, next_page}. - get / create / update / approve / merge / rebase / approval_state / approval_config / approval_rule_create / approval_rule_update / approval_settings_* / dependency_create / create_todo: MR, dependency, todo or settings object. - time_estimate_set / spent_time_add / time_stats / time_estimate_reset / spent_time_reset: {time_estimate, total_time_spent, human_time_estimate, human_total_time_spent}. - subscribe / unsubscribe / cancel_auto_merge / create_pipeline: updated MR or pipeline object. - delete / unapprove / approval_reset / approval_rule_delete / context_commits_delete / dependency_delete / emoji_*_delete: {success, message}. Errors: 404 (hint: confirm project_id and merge_request_iid — merge_request_iid is project-scoped, not the global ID), 403 (hint: requires Reporter+ to comment, Developer+ to merge, configured approvers to approve), 405/409 on merge (hint: WIP/draft, unresolved threads, failing pipelines or pending approvals — see approval_state). Param conventions: * = required. Most actions need project_id*, merge_request_iid*. List actions accept page, per_page. IMPORTANT for create: target_branch* — if user doesn't specify, retrieve project's default_branch via gitlab_project get; do NOT assume 'main'. IMPORTANT for merge: auto-detects project squash/delete-branch settings — do NOT set squash or should_remove_source_branch unless user explicitly asks. MR lifecycle: - create: project_id*, source_branch*, target_branch*, title*, description, assignee_id, assignee_ids, reviewer_ids, labels (comma-separated), milestone_id, remove_source_branch, squash, allow_collaboration, target_project_id (forks) - get: project_id*, merge_request_iid* - list: project_id*, state (opened/closed/merged/all), labels, not_labels, milestone, scope, search, source_branch, target_branch, author_username, draft, iids, created_after/before, updated_after/before, order_by, sort - list_global / list_group: same filters as list. list_group needs group_id* instead of project_id. - update: project_id*, merge_request_iid*, title, description, target_branch, assignee_id, assignee_ids, reviewer_ids, labels, add_labels, remove_labels, milestone_id, remove_source_branch, squash, discussion_locked, allow_collaboration, state_event (close/reopen) - merge: project_id*, merge_request_iid*, merge_commit_message, squash, should_remove_source_branch, auto_merge, sha, squash_commit_message - approve / unapprove / rebase / delete / participants / reviewers / create_pipeline / cancel_auto_merge: project_id*, merge_request_iid* - rebase also accepts: skip_ci - commits / pipelines / issues_closed: project_id*, merge_request_iid* - subscribe / unsubscribe: project_id*, merge_request_iid* Approvals: - approval_state / approval_rules / approval_config / approval_reset: project_id*, merge_request_iid* - approval_rule_create: project_id*, merge_request_iid*, name*, approvals_required*, approval_project_rule_id, user_ids, group_ids - approval_rule_update: project_id*, merge_request_iid*, approval_rule_id*, name, approvals_required, user_ids, group_ids - approval_rule_delete: project_id*, merge_request_iid*, approval_rule_id* - approval_settings_group_get / approval_settings_group_update: group_id*. Update params: allow_author_approval, allow_committer_approval, allow_overrides_approver_list_per_mr, retain_approvals_on_push, require_reauthentication_to_approve - approval_settings_project_get / approval_settings_project_update: project_id*. Same params + selective_code_owner_removals. Time tracking: - time_estimate_set / spent_time_add: project_id*, merge_request_iid*, duration* (e.g. '3h30m', '1w2d'). spent_time_add also accepts summary. - time_estimate_reset / spent_time_reset / time_stats: project_id*, merge_request_iid* Context commits: - context_commits_list / context_commits_create / context_commits_delete: project_id*, merge_request_iid*. create/delete need commits ([]string)*. MR dependencies (blocking MRs): - dependencies_list: project_id*, merge_request_iid* — list MRs that block this MR from merging. - dependency_create: project_id*, merge_request_iid*, blocking_merge_request_id* (global ID of the blocking MR). - dependency_delete: project_id*, merge_request_iid*, blocking_merge_request_id*. Todos and related issues: - create_todo: project_id*, merge_request_iid* — add this MR to the authenticated user's to-do list. - related_issues: project_id*, merge_request_iid* — list issues mentioned or linked from the MR (paginated). Award emoji: - emoji_mr_list / emoji_mr_create / emoji_mr_delete: project_id*, merge_request_iid*, name* (create), award_id* (get/delete) - emoji_mr_get: project_id*, merge_request_iid*, award_id* - emoji_mr_note_list / emoji_mr_note_create / emoji_mr_note_delete: project_id*, merge_request_iid*, note_id*, name* (create), award_id* (get/delete) - emoji_mr_note_get: project_id*, merge_request_iid*, note_id*, award_id* Resource events: - event_mr_label_list / event_mr_label_get: project_id*, merge_request_iid*, label_event_id* (get) - event_mr_milestone_list / event_mr_milestone_get: project_id*, merge_request_iid*, milestone_event_id* (get) - event_mr_state_list / event_mr_state_get: project_id*, merge_request_iid*, state_event_id* (get) See also: gitlab_mr_review (comments, discussions, diffs, raw diffs, draft notes), gitlab_pipeline, gitlab_branch, gitlab_issue (linked/related issue lifecycle) Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
approval_config ```json {"additionalProperties":false,"properties":{"approval_rules_left":{"items":{"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"overridden":{"type":"boolean"},"report_type":{"type":"string"},"rule_type":{"type":"string"},"section":{"type":"string"},"source_rule":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":["null","object"]},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","rule_type","approvals_required","approved"],"type":"object"},"type":["null","array"]},"approvals_before_merge":{"type":"integer"},"approvals_left":{"type":"integer"},"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"approved_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"type":["null","object"]},"type":["null","array"]},"approver_groups":{"items":{"additionalProperties":false,"properties":{"group":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","lfs_enabled","request_access_enabled"],"type":"object"}},"required":["group"],"type":["null","object"]},"type":["null","array"]},"approvers":{"items":{"additionalProperties":false,"properties":{"approved_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"type":["null","object"]},"type":["null","array"]},"created_at":{"type":"string"},"description":{"type":"string"},"has_approval_rules":{"type":"boolean"},"id":{"type":"integer"},"iid":{"type":"integer"},"merge_request_approvers_available":{"type":"boolean"},"merge_status":{"type":"string"},"multiple_approval_rules_available":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"require_password_to_approve":{"type":"boolean"},"state":{"type":"string"},"suggested_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"title":{"type":"string"},"updated_at":{"type":"string"},"user_can_approve":{"type":"boolean"},"user_has_approved":{"type":"boolean"}},"required":["id","iid","project_id","title","state","approved","approvals_required","approvals_left","approvals_before_merge","require_password_to_approve","has_approval_rules","user_has_approved","user_can_approve","merge_request_approvers_available","multiple_approval_rules_available"],"type":"object"} ```
approval_reset ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
approval_rule_create ```json {"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"overridden":{"type":"boolean"},"report_type":{"type":"string"},"rule_type":{"type":"string"},"section":{"type":"string"},"source_rule":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":["null","object"]},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","rule_type","approvals_required","approved"],"type":"object"} ```
approval_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
approval_rule_update ```json {"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"overridden":{"type":"boolean"},"report_type":{"type":"string"},"rule_type":{"type":"string"},"section":{"type":"string"},"source_rule":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":["null","object"]},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","rule_type","approvals_required","approved"],"type":"object"} ```
approval_rules ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"rules":{"items":{"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"overridden":{"type":"boolean"},"report_type":{"type":"string"},"rule_type":{"type":"string"},"section":{"type":"string"},"source_rule":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":["null","object"]},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","rule_type","approvals_required","approved"],"type":"object"},"type":["null","array"]}},"required":["rules"],"type":"object"} ```
approval_settings_group_get ```json {"additionalProperties":false,"properties":{"allow_author_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_committer_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_overrides_to_approver_list_per_merge_request":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"require_reauthentication_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"retain_approvals_on_push":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"selective_code_owner_removals":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"}},"required":["allow_author_approval","allow_committer_approval","allow_overrides_to_approver_list_per_merge_request","retain_approvals_on_push","selective_code_owner_removals","require_password_to_approve","require_reauthentication_to_approve"],"type":"object"} ```
approval_settings_group_update ```json {"additionalProperties":false,"properties":{"allow_author_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_committer_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_overrides_to_approver_list_per_merge_request":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"require_reauthentication_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"retain_approvals_on_push":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"selective_code_owner_removals":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"}},"required":["allow_author_approval","allow_committer_approval","allow_overrides_to_approver_list_per_merge_request","retain_approvals_on_push","selective_code_owner_removals","require_password_to_approve","require_reauthentication_to_approve"],"type":"object"} ```
approval_settings_project_get ```json {"additionalProperties":false,"properties":{"allow_author_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_committer_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_overrides_to_approver_list_per_merge_request":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"require_reauthentication_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"retain_approvals_on_push":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"selective_code_owner_removals":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"}},"required":["allow_author_approval","allow_committer_approval","allow_overrides_to_approver_list_per_merge_request","retain_approvals_on_push","selective_code_owner_removals","require_password_to_approve","require_reauthentication_to_approve"],"type":"object"} ```
approval_settings_project_update ```json {"additionalProperties":false,"properties":{"allow_author_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_committer_approval":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"allow_overrides_to_approver_list_per_merge_request":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"require_reauthentication_to_approve":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"retain_approvals_on_push":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"},"selective_code_owner_removals":{"additionalProperties":false,"properties":{"inherited_from":{"type":"string"},"locked":{"type":"boolean"},"value":{"type":"boolean"}},"required":["value","locked"],"type":"object"}},"required":["allow_author_approval","allow_committer_approval","allow_overrides_to_approver_list_per_merge_request","retain_approvals_on_push","selective_code_owner_removals","require_password_to_approve","require_reauthentication_to_approve"],"type":"object"} ```
approval_state ```json {"additionalProperties":false,"properties":{"approval_rules_overwritten":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"rules":{"items":{"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"overridden":{"type":"boolean"},"report_type":{"type":"string"},"rule_type":{"type":"string"},"section":{"type":"string"},"source_rule":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","request_access_enabled","lfs_enabled"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"allow_force_push":{"type":"boolean"},"code_owner_approval_required":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","allow_force_push","code_owner_approval_required"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":["null","object"]},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","rule_type","approvals_required","approved"],"type":"object"},"type":["null","array"]}},"required":["approval_rules_overwritten","rules"],"type":"object"} ```
approve ```json {"additionalProperties":false,"properties":{"approvals_required":{"type":"integer"},"approved":{"type":"boolean"},"approved_by_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["approvals_required","approved_by_count","approved"],"type":"object"} ```
cancel_auto_merge ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
commits ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["commits","pagination"],"type":"object"} ```
context_commits_create ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["commits"],"type":"object"} ```
context_commits_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
context_commits_list ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["commits"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
create_pipeline ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url","created_at","updated_at"],"type":"object"} ```
create_todo ```json {"additionalProperties":false,"properties":{"action_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_name":{"type":"string"},"state":{"type":"string"},"target_title":{"type":"string"},"target_type":{"type":"string"},"target_url":{"type":"string"}},"required":["id","action_name","target_type","target_title","target_url","state"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
dependencies_list ```json {"additionalProperties":false,"properties":{"dependencies":{"items":{"additionalProperties":false,"properties":{"blocking_merge_request":{"additionalProperties":false,"properties":{"approvals_before_merge":{"type":["null","integer"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"auto_merge":{"type":"boolean"},"blocking_discussions_resolved":{"type":"boolean"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"discussion_locked":{"type":["null","boolean"]},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_status":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"type":"string"},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"reference":{"type":"string"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":["null","boolean"]},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","target_branch","source_branch","project_id","title","state","upvotes","downvotes","source_project_id","target_project_id","labels","description","draft","auto_merge","detailed_merge_status","sha","merge_commit_sha","squash_commit_sha","user_notes_count","force_remove_source_branch","web_url","squash","has_conflicts","blocking_discussions_resolved","imported","imported_from","squash_on_merge","work_in_progress","merge_when_pipeline_succeeds","reference","merge_status"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"}},"required":["id","project_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["dependencies"],"type":"object"} ```
dependency_create ```json {"additionalProperties":false,"properties":{"blocking_merge_request":{"additionalProperties":false,"properties":{"approvals_before_merge":{"type":["null","integer"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"auto_merge":{"type":"boolean"},"blocking_discussions_resolved":{"type":"boolean"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"discussion_locked":{"type":["null","boolean"]},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_status":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"type":"string"},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"reference":{"type":"string"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":["null","boolean"]},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","target_branch","source_branch","project_id","title","state","upvotes","downvotes","source_project_id","target_project_id","labels","description","draft","auto_merge","detailed_merge_status","sha","merge_commit_sha","squash_commit_sha","user_notes_count","force_remove_source_branch","web_url","squash","has_conflicts","blocking_discussions_resolved","imported","imported_from","squash_on_merge","work_in_progress","merge_when_pipeline_succeeds","reference","merge_status"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"}},"required":["id","project_id"],"type":"object"} ```
dependency_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_mr_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_mr_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_mr_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_mr_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
emoji_mr_note_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_mr_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_mr_note_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_mr_note_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
event_mr_label_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_mr_label_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_mr_milestone_get ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"} ```
event_mr_milestone_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","action","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_mr_state_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"state":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","state","created_at","resource_type","resource_id"],"type":"object"} ```
event_mr_state_list ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resource_id":{"type":"integer"},"resource_type":{"type":"string"},"state":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","state","created_at","resource_type","resource_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
issues_closed ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
list_global ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
list_group ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
merge ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
participants ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"participants":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":"object"},"type":["null","array"]}},"required":["participants"],"type":"object"} ```
pipelines ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipelines":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url","created_at","updated_at"],"type":"object"},"type":["null","array"]}},"required":["pipelines"],"type":"object"} ```
rebase ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"rebase_in_progress":{"type":"boolean"}},"required":["rebase_in_progress"],"type":"object"} ```
related_issues ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
reviewers ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"review_state":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":"object"},"type":["null","array"]}},"required":["reviewers"],"type":"object"} ```
spent_time_add ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
spent_time_reset ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
subscribe ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
time_estimate_reset ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
time_estimate_set ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
time_stats ```json {"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":"object"} ```
unapprove ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
unsubscribe ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"} ```
### gitlab_model_registry **Model Registry** Use {"action":"download","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_model_registry.. Action guidance: - download: Download a single artifact file from a model package version in the project ML model registry, returning the raw bytes base64-encoded. Parameter guidance: - download.filename: model_artifact_filename; source: Artifact file name to download from the package. - download.model_version_id: model_version_id; source: Numeric model package version identifier. - download.path: model_artifact_path; source: Subdirectory path in the package where the artifact is stored. - download.project_id: scope_project; source: Project ID or path that owns the model registry package. Download ML model package files from the GitLab Model Registry. Read-only — cannot publish or delete model versions through this tool. The underlying GitLab API requires a Premium/Ultimate plan on the target instance (server enforces it with 403); the tool itself is always registered and is not gated by GITLAB_TIER. When to use: pull a model artifact (.pkl, .onnx, .safetensors, .bin, .gguf, etc.) attached to a registered model version, e.g. for inference, evaluation or vendoring into a build pipeline. NOT for: generic packages (use gitlab_package), container images (use gitlab_package registry_*), release attachments (use gitlab_release link_*), training jobs or experiment tracking, model publishing or versioning (not yet exposed through MCP). Returns: - download: {file_name, model_version_id, size, content_base64} — binary content is base64-encoded; large models can produce very large responses. Errors: 404 (hint: project_id, model_version_id and path are model-registry-scoped; verify in the GitLab UI under Deploy → Model registry), 403 (hint: requires Reporter+ on the project and a Premium/Ultimate plan), 400 (hint: filename must match an asset attached to the version). - download: project_id*, model_version_id*, path*, filename*. Returns base64-encoded file content. - project_id (string | int, required) — numeric ID or URL-encoded full path of the project that owns the registered model. - model_version_id (int, required) — registered model version ID; visible in the GitLab UI under Deploy → Model registry → → Versions. - path (string, required) — package-relative directory of the asset (use '/' for the package root, otherwise e.g. 'artifacts/' or 'weights/'). - filename (string, required) — exact asset filename within the package, including extension (e.g. 'model.safetensors', 'config.json'). - Any unrecognized parameter name is rejected by the meta-tool router (strict unknown-field validation); only the reserved meta key 'confirm' is stripped before unmarshalling. See also: gitlab_package (generic / npm / maven / conan / pypi / nuget / container packages), gitlab_release (asset links per release), gitlab_repository (raw files in the repo). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
download ```json {"additionalProperties":false,"properties":{"content_base64":{"type":"string"},"filename":{"type":"string"},"model_version_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"project_id":{"type":"string"},"size_bytes":{"type":"integer"}},"required":["project_id","model_version_id","path","filename","content_base64","size_bytes"],"type":"object"} ```
### gitlab_mr_review **MR Review** Use {"action":"changes_get","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_mr_review.. Action guidance: - changes_get: Get the current file diffs (changes) for a merge request by project_id and merge_request_iid. Use this first when the prompt asks to inspect, view, or analyze MR changes without running an LLM analyzer; returns structured per-file diffs with old/new paths and line metadata for inline review. - diff_version_get: Get a single merge request diff version with its commits and file diffs. Use the version_id from diff_versions_list; set unidiff to return diffs in unified-diff format. - diff_versions_list: List the diff versions (historical snapshots) of a merge request. Use when the prompt asks for the MR's diff revisions or version history; returns version IDs and SHAs but not the diffs themselves — pass a version_id to diff_version_get to retrieve the actual diff. - discussion_create: Open a new discussion thread on a merge request. Provide a position to attach an inline diff comment to a specific file and line, or omit it for a general MR discussion. Supports anchoring to a commit_id and backdating via created_at for admins/owners. - discussion_get: Fetch one discussion thread on a merge request by its discussion_id, returning every note in the thread. Use this after gitlab_mr_discussion_list when the target thread is already known. - discussion_list: List all discussion threads on one merge request, including inline diff comments, system notes, and threaded replies. Use this when the prompt asks for an MR's review conversation, or before replying to or resolving a thread. Supports order_by, sort, and keyset pagination. - discussion_note_delete: Permanently delete a note from a merge request discussion thread (destructive, requires confirmation). Only the note author or a Maintainer can delete a note. Identify the note with discussion_id plus note_id. - discussion_note_update: Edit the body of a note in a merge request discussion thread, or resolve/unresolve a single resolvable note. Only the note author can edit the body; only Maintainers can change the resolved flag. Identify the note with discussion_id plus note_id. - discussion_reply: Reply to an existing merge request discussion thread by adding a note. Use this after gitlab_mr_discussion_list or gitlab_mr_discussion_create to continue a thread. Supports backdating via created_at for admins/owners. - discussion_resolve: Resolve or unresolve a merge request discussion thread. Set resolved=true to mark the thread resolved or resolved=false to reopen it. Only resolvable (thread) discussions can be toggled. - draft_note_create: Create a pending draft review note on a merge request. Omit position for a general comment; include position with base_sha/start_sha/head_sha plus new_path/old_path and new_line/old_line to anchor the note to a specific diff line. The note stays author-private until published. - draft_note_delete: Discard a pending draft note so it is never published. Destructive and irreversible; only the draft's author can delete it. - draft_note_get: Get one pending draft note by ID, including its full body and any inline diff position. Use after list to inspect a specific draft before updating or publishing it. - draft_note_list: List the pending (unpublished) draft review notes on a merge request. Use before publishing to review what will be posted, or to find a draft note's ID for get/update/delete. - draft_note_publish: Publish one pending draft note, turning it into a regular merge request note visible to everyone. Cannot be undone; only the draft's author can publish it. - draft_note_publish_all: Publish all of the current user's pending draft notes on a merge request in one call, submitting a complete review. Cannot be undone; review with gitlab_mr_draft_note_list first. - draft_note_update: Edit the body or inline position of a pending draft note before it is published. Only the draft's author can update it. - note_create: Add a general comment (note) to a merge request. Use when the task asks to comment on, reply to, or annotate an existing MR. Set internal=true for a confidential note visible only to project members. - note_delete: Permanently delete a merge request note. Destructive and irreversible. Only the note author or a project Maintainer can delete a note; system notes cannot be deleted. Requires explicit confirmation. - note_get: Get one merge request note by params.note_id. Use when the task references a specific comment or note ID on an MR. - note_list: List all comments (notes) on a merge request, including system notes. Use when the task asks to read an MR's discussion, recent comments, or activity. Supports order_by, sort, and keyset pagination. - note_update: Replace the body of an existing merge request note. Only the original author can edit a note; system notes cannot be edited. Use when the task asks to edit, fix, or amend a comment. - raw_diffs: Get the raw unified-diff output for a merge request in plain-text git-apply format. Use this when a raw patch or unified diff is requested, or when changes_get reports truncated_files and the full diff payload is needed. Parameter guidance: - changes_get.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior list output.; avoid: Use the project-scoped IID, not the MR's global database ID. - changes_get.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the MR's global ID. - diff_version_get.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior list output.; avoid: Use the project-scoped IID, not the MR's global database ID. - diff_version_get.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the MR's global ID. - diff_version_get.unidiff; source: Set true to request diffs rendered in unified-diff format. - diff_version_get.version_id: mr_diff_version_id; source: Diff version ID taken from a prior diff_versions_list result.; avoid: Use the diff version id, not the merge_request_iid or a commit SHA. - diff_versions_list.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior list output.; avoid: Use the project-scoped IID, not the MR's global database ID. - diff_versions_list.order_by; source: Column to order keyset-paginated results by.; avoid: Combine order_by with sort and pagination='keyset'; not a free-text phrase. - diff_versions_list.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the MR's global ID. - discussion_create.body: comment_body; source: Markdown text for the first note of the new thread. - discussion_create.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_create.position: diff_position; source: Diff anchor (base_sha, head_sha, start_sha, new_path/old_path and line) from gitlab_mr_changes; omit for a general discussion.; avoid: Inline comments require the full SHA triple plus a valid path/line from the MR diff; omit position entirely for a thread that is not tied to a line. - discussion_create.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_get.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_mr_discussion_list response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_get.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_get.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_list.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_list.order_by: discussion_list_sort_field; source: Column requested for ordering threads, such as created_at or updated_at.; avoid: Combine order_by with sort; do not pass natural-language phrases as the field value. - discussion_list.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_note_delete.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_mr_discussion_list response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_note_delete.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_note_delete.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_note_delete.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_note_update.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_mr_discussion_list response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_note_update.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_note_update.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_note_update.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_reply.body: comment_body; source: Markdown text of the reply to append to the thread. - discussion_reply.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_mr_discussion_list response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_reply.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_reply.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_resolve.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_mr_discussion_list response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_resolve.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, usually from the URL or prior MR list output.; avoid: Use merge_request_iid for the project-scoped MR number, not the global merge_request_id. - discussion_resolve.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or global MR ID. - discussion_resolve.resolved: resolve_flag; source: Boolean: true resolves the thread, false reopens it.; avoid: resolved is a boolean toggle, not a note body; only resolvable thread discussions can be resolved. - draft_note_create.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_create.note: comment_body; source: The Markdown review comment the user wants to draft. - draft_note_create.position: diff_position; source: Inline diff location for a code comment; mirror the MR diff SHAs and the target file path and line.; avoid: Omit position entirely for a general MR comment; only set it to anchor the note to a changed line. - draft_note_create.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_delete.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_delete.note_id: draft_note_id; source: Draft note ID from a prior gitlab_mr_draft_note_list response.; avoid: Draft notes are author-private until published; list them first to obtain a valid note_id. - draft_note_delete.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_get.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_get.note_id: draft_note_id; source: Draft note ID from a prior gitlab_mr_draft_note_list response.; avoid: Draft notes are author-private until published; list them first to obtain a valid note_id. - draft_note_get.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_list.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_list.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_publish.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_publish.note_id: draft_note_id; source: Draft note ID from a prior gitlab_mr_draft_note_list response.; avoid: Draft notes are author-private until published; list them first to obtain a valid note_id. - draft_note_publish.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_publish_all.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_publish_all.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - draft_note_update.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the URL or a prior MR list.; avoid: Use the project-scoped merge_request_iid, not the global merge_request_id. - draft_note_update.note: comment_body; source: The revised Markdown body for the draft note. - draft_note_update.note_id: draft_note_id; source: Draft note ID from a prior gitlab_mr_draft_note_list response.; avoid: Draft notes are author-private until published; list them first to obtain a valid note_id. - draft_note_update.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global ID. - note_create.body; source: The comment text the user wants to post; Markdown is supported.; avoid: body is the comment content, not an MR description update; updating the MR body is merge_request.update. - note_create.internal; source: Set true only when the user asks for a private/internal note.; avoid: internal notes are visible to project members only; do not set for public replies. - note_create.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior MR list output.; avoid: Use the project-scoped MR IID (the !N number), not the global merge request database ID. - note_create.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global MR ID. - note_delete.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior MR list output.; avoid: Use the project-scoped MR IID (the !N number), not the global merge request database ID. - note_delete.note_id: note_id; source: Numeric note ID from a prior merge_request.note_list or merge_request.note_create result.; avoid: note_id is the comment ID, not the merge_request_iid; obtain it from merge_request.note_list. - note_delete.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global MR ID. - note_get.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior MR list output.; avoid: Use the project-scoped MR IID (the !N number), not the global merge request database ID. - note_get.note_id: note_id; source: Numeric note ID from a prior merge_request.note_list or merge_request.note_create result.; avoid: note_id is the comment ID, not the merge_request_iid; obtain it from merge_request.note_list. - note_get.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global MR ID. - note_list.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior MR list output.; avoid: Use the project-scoped MR IID (the !N number), not the global merge request database ID. - note_list.order_by; source: Field to order notes by: created_at or updated_at.; avoid: Combine order_by with sort; pass the field name, not a phrase like 'newest first'. - note_list.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global MR ID. - note_update.body; source: The new comment text that replaces the existing note body; Markdown is supported.; avoid: This replaces the whole note body; it does not append to it. - note_update.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior MR list output.; avoid: Use the project-scoped MR IID (the !N number), not the global merge request database ID. - note_update.note_id: note_id; source: Numeric note ID from a prior merge_request.note_list or merge_request.note_create result.; avoid: note_id is the comment ID, not the merge_request_iid; obtain it from merge_request.note_list. - note_update.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the merge request's parent project here, not a group path or global MR ID. - raw_diffs.merge_request_iid: merge_request_iid; source: Merge request number visible in the project, from the MR URL or prior list output.; avoid: Use the project-scoped IID, not the MR's global database ID. - raw_diffs.project_id: scope_project; source: Project ID or full namespace path that owns the merge request.; avoid: Use the MR's parent project here, not a group path or the MR's global ID. Review and comment on GitLab merge requests: notes, threaded discussions (inline + general), code diffs, draft notes (batch review), diff versions, and the per-version diff payload. When to use: post review comments, open or resolve discussion threads, fetch the diff to comment inline, queue draft notes during a session and publish them as a single review. For prompts like "inspect/view MR changes/diffs" or "without running an LLM analyzer", choose changes_get first. NOT for: MR lifecycle — create/update/merge/approve/rebase/delete (use gitlab_merge_request), reactions on MR notes (use gitlab_merge_request emoji_mr_note_*), CI pipelines on the MR (use gitlab_pipeline or gitlab_merge_request pipelines). IMPORTANT — action choice: use note_create only for a general/top-level MR comment with no file or line position. Use discussion_create without position for a general threaded discussion. Add a position object only for inline review comments, including prompts like "comment on this line/file/hunk". If it says draft review note or batch review, use draft_note_create first and draft_note_publish_all once at the end. For raw patch text, use raw_diffs; for structured MR changes by file, use changes_get. Returns: - *_list: array with pagination (page, per_page, total, next_page). - note_*, discussion_*, draft_note_*, diff_*: resource object(s) with id, body/note, author, position (when inline). - changes_get: {changes: [{old_path, new_path, diff, ...}], truncated_files} — if truncated, use diff_versions_list + diff_version_get, or raw_diffs for the full unified diff payload. - raw_diffs: {raw_diff: string} — full unified diff for the MR head; ideal when changes_get returns truncated_files. - *_delete / *_publish: {success: bool, message: string}. Errors: 404 not found (hint: check note_id/discussion_id and merge_request_iid), 403 forbidden (hint: requires Reporter+ to comment), 400 invalid params (hint: position requires base_sha + start_sha + head_sha + new_path/old_path + new_line/old_line). Param conventions: * = required. All actions need project_id*, merge_request_iid*. List actions accept page, per_page. position object: {base_sha, start_sha, head_sha, new_path, old_path, new_line (added/modified), old_line (removed), both lines for unchanged context}. Notes (general comments): - note_list: order_by (created_at/updated_at), sort - note_get / note_delete: note_id* - note_create: body* - note_update: note_id*, body* Discussions (threaded, can be inline via position): - discussion_list - discussion_get: discussion_id* - discussion_create: body*, position (inline) - discussion_reply: discussion_id*, body* - discussion_resolve: discussion_id*, resolved* (bool) - discussion_note_update: discussion_id*, note_id*, body, resolved - discussion_note_delete: discussion_id*, note_id* Changes and diff versions: - changes_get: returns structured MR file diffs by merge_request_iid; use this for "inspect/view MR changes" and for comments that need new_path/old_path/new_line/old_line. - raw_diffs: project_id*, merge_request_iid* — returns the full raw unified diff for the MR head (use only when a raw patch/unified diff is requested or changes_get reports truncated_files) - diff_versions_list: list MR diff revisions - diff_version_get: version_id*, unidiff (bool) Draft notes (batch review, not immediately published): - draft_note_list: order_by, sort - draft_note_get: note_id* - draft_note_create: note*, commit_id, in_reply_to_discussion_id, resolve_discussion (bool), position - draft_note_update: note_id*, note, position - draft_note_delete / draft_note_publish: note_id* - draft_note_publish_all: publishes ALL pending drafts as a single review notification See also: gitlab_merge_request (MR lifecycle, approvals, merge, time tracking, reactions), gitlab_pipeline (MR pipelines), gitlab_repository (file blame for context). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
changes_get ```json {"additionalProperties":false,"properties":{"changes":{"items":{"additionalProperties":false,"properties":{"a_mode":{"type":"string"},"b_mode":{"type":"string"},"collapsed":{"type":"boolean"},"deleted_file":{"type":"boolean"},"diff":{"type":"string"},"generated_file":{"type":"boolean"},"new_file":{"type":"boolean"},"new_path":{"type":"string"},"old_path":{"type":"string"},"renamed_file":{"type":"boolean"},"too_large":{"type":"boolean"}},"required":["old_path","new_path","diff","new_file","renamed_file","deleted_file","a_mode","b_mode","generated_file"],"type":"object"},"type":["null","array"]},"merge_request_iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"truncated_files":{"items":{"type":"string"},"type":["null","array"]}},"required":["merge_request_iid","changes"],"type":"object"} ```
diff_version_get ```json {"additionalProperties":false,"properties":{"base_commit_sha":{"type":"string"},"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":"object"},"type":["null","array"]},"created_at":{"type":"string"},"diffs":{"items":{"additionalProperties":false,"properties":{"a_mode":{"type":"string"},"b_mode":{"type":"string"},"collapsed":{"type":"boolean"},"deleted_file":{"type":"boolean"},"diff":{"type":"string"},"generated_file":{"type":"boolean"},"new_file":{"type":"boolean"},"new_path":{"type":"string"},"old_path":{"type":"string"},"renamed_file":{"type":"boolean"},"too_large":{"type":"boolean"}},"required":["old_path","new_path","diff","new_file","renamed_file","deleted_file","a_mode","b_mode","generated_file"],"type":"object"},"type":["null","array"]},"head_commit_sha":{"type":"string"},"id":{"type":"integer"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"real_size":{"type":"string"},"start_commit_sha":{"type":"string"},"state":{"type":"string"}},"required":["id"],"type":"object"} ```
diff_versions_list ```json {"additionalProperties":false,"properties":{"diff_versions":{"items":{"additionalProperties":false,"properties":{"base_commit_sha":{"type":"string"},"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":"object"},"type":["null","array"]},"created_at":{"type":"string"},"diffs":{"items":{"additionalProperties":false,"properties":{"a_mode":{"type":"string"},"b_mode":{"type":"string"},"collapsed":{"type":"boolean"},"deleted_file":{"type":"boolean"},"diff":{"type":"string"},"generated_file":{"type":"boolean"},"new_file":{"type":"boolean"},"new_path":{"type":"string"},"old_path":{"type":"string"},"renamed_file":{"type":"boolean"},"too_large":{"type":"boolean"}},"required":["old_path","new_path","diff","new_file","renamed_file","deleted_file","a_mode","b_mode","generated_file"],"type":"object"},"type":["null","array"]},"head_commit_sha":{"type":"string"},"id":{"type":"integer"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"real_size":{"type":"string"},"start_commit_sha":{"type":"string"},"state":{"type":"string"}},"required":["id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["diff_versions","pagination"],"type":"object"} ```
discussion_create ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_get ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_list ```json {"additionalProperties":false,"properties":{"discussions":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["discussions","pagination"],"type":"object"} ```
discussion_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
discussion_note_update ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":"object"} ```
discussion_reply ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":"object"} ```
discussion_resolve ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
draft_note_create ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"commit_id":{"type":"string"},"discussion_id":{"type":"string"},"id":{"type":"integer"},"line_code":{"type":"string"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","start_sha","head_sha"],"type":["null","object"]},"resolve_discussion":{"type":"boolean"}},"required":["id","author_id","merge_request_id","note","resolve_discussion"],"type":"object"} ```
draft_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
draft_note_get ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"commit_id":{"type":"string"},"discussion_id":{"type":"string"},"id":{"type":"integer"},"line_code":{"type":"string"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","start_sha","head_sha"],"type":["null","object"]},"resolve_discussion":{"type":"boolean"}},"required":["id","author_id","merge_request_id","note","resolve_discussion"],"type":"object"} ```
draft_note_list ```json {"additionalProperties":false,"properties":{"draft_notes":{"items":{"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"commit_id":{"type":"string"},"discussion_id":{"type":"string"},"id":{"type":"integer"},"line_code":{"type":"string"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","start_sha","head_sha"],"type":["null","object"]},"resolve_discussion":{"type":"boolean"}},"required":["id","author_id","merge_request_id","note","resolve_discussion"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["draft_notes","pagination"],"type":"object"} ```
draft_note_publish ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
draft_note_publish_all ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
draft_note_update ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"commit_id":{"type":"string"},"discussion_id":{"type":"string"},"id":{"type":"integer"},"line_code":{"type":"string"},"merge_request_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","start_sha","head_sha"],"type":["null","object"]},"resolve_discussion":{"type":"boolean"}},"required":["id","author_id","merge_request_id","note","resolve_discussion"],"type":"object"} ```
note_create ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
note_get ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
note_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["notes","pagination"],"type":"object"} ```
note_update ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","updated_at","system","internal","confidential"],"type":"object"} ```
raw_diffs ```json {"additionalProperties":false,"properties":{"merge_request_iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"raw_diff":{"type":"string"}},"required":["merge_request_iid","raw_diff"],"type":"object"} ```
### gitlab_package **Package** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_package.. Action guidance: - delete: Permanently delete an entire package and all of its files. Provide project_id and the package_id from package.list; this is irreversible and removes every version asset. - download: Download one Generic Package Registry file to a local path. Provide project_id, package_name, package_version, file_name, and the output_path to write; the file is streamed and checksummed locally. - file_delete: Permanently delete a single file from a package while keeping the package itself. Provide project_id, package_id, and the package_file_id from package.file_list. - file_list: List the individual files belonging to one package. Provide project_id and the package_id returned by package.list to enumerate every asset, its size, and checksums. - group_list: List package registry packages across a group and its descendant projects. Set exclude_subgroups=true to limit results to the group's direct projects. If ordering is requested, use order_by with one of created_at, name, version, type, or project_path. - list: List package registry packages. If ordering is requested, use order_by with one of created_at, name, version, or type; do not use updated_at, released_at, or downloaded_at. - protection_rule_create: Create a package protection rule for a project. Provide project_id, a package_name_pattern, and a package_type, then set the minimum push/delete access levels to restrict who can publish or remove matching packages. - protection_rule_delete: Delete a package protection rule from a project by its id. Use when a package name pattern should no longer be protected; this removes the restriction permanently and cannot be undone. - protection_rule_list: List package protection rules configured for one project. Use when the prompt asks which package name patterns are protected, who may push or delete packages, or to find a rule id before updating or deleting it. - protection_rule_update: Update an existing package protection rule by its id. Use to change the package name pattern, package type, or the minimum push/delete access levels of a rule located via gitlab_list_package_protection_rules. - publish: Upload a single file as a Generic Package Registry asset. Provide project_id, package_name, package_version, and file_name plus the local file to stream; optional status and select fields control visibility and processing. To upload ALL files from a local directory in one call, use publish_directory instead. - publish_and_link: Publish a Generic Package Registry file and attach it to a release as an asset link in one call. Provide the package coordinates plus the tag_name of the target release. - publish_directory: Publish all regular files from a local directory to Generic Packages. Omit include_pattern to upload every file; include_pattern is one glob, not a comma-separated file list. - registry_delete: Delete one container registry repository. - registry_get: Get details for one container registry repository. - registry_list_group: List container registry repositories across a group. - registry_list_project: Lists container registry image repositories for a project. - registry_rule_create: Create a container registry protection rule for a project. - registry_rule_delete: Delete a container registry protection rule from a project. - registry_rule_list: List container registry protection rules for a project. - registry_rule_update: Update a container registry protection rule in a project. - registry_tag_delete: Delete one container registry tag. - registry_tag_delete_bulk: Delete container registry tags in bulk by name patterns. - registry_tag_get: Get metadata for one container registry tag. - registry_tag_list: List tags in one container registry repository. - registry_tag_rule_create: Create a container registry tag protection rule for a project. - registry_tag_rule_delete: Delete a container registry tag protection rule from a project. - registry_tag_rule_list: List container registry tag protection rules for a project. - registry_tag_rule_update: Update a container registry tag protection rule in a project. Parameter guidance: - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - download.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - group_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - group_list.order_by: group_package_list_sort_field; source: Use only GitLab group Package Registry ordering fields accepted by the group packages API.; avoid: Do not use updated_at, released_at, downloaded_at, last_downloaded_at, or id as order_by values. - list.order_by: package_list_sort_field; source: Use only GitLab Package Registry ordering fields accepted by the packages API.; avoid: Do not use updated_at, released_at, downloaded_at, last_downloaded_at, or id as order_by values. - list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protection_rule_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protection_rule_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protection_rule_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protection_rule_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - publish.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - publish_and_link.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - publish_directory.include_pattern: single_glob_filter; source: Optional single glob matched against file names inside directory_path; omit it to include all regular files.; avoid: Do not pass comma-separated filenames., Do not use include_pattern to enumerate exact files; omit it when all fixture files should be uploaded. - publish_directory.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_list_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - registry_list_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_rule_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_rule_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_rule_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_rule_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_delete_bulk.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_rule_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_rule_create.tag_name_pattern: match_pattern; source: An RE2 regular expression matching the tags to protect.; avoid: tag_name_pattern is an RE2 regex, not a glob; omit both minimum access levels to make matching tags fully immutable. - registry_tag_rule_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - registry_tag_rule_list.project_id: scope_project; source: Project numeric ID or full path that owns the container registry. - registry_tag_rule_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab package registry, container registry, and protection rules. Upload/download generic packages, list/delete packages, browse container images/tags, and configure access policies. Delete actions are destructive. When to use: publish / download / list / delete generic packages, browse npm/maven/conan/nuget/pypi/etc. metadata, browse and prune container images and tags, manage container and package protection rules. NOT for: release asset links — these are managed by gitlab_release link_*; secure files (use gitlab_admin secure_file_*); ML model registry artifacts (use gitlab_model_registry); upload general project attachments (use gitlab_project upload). Behavior: - Idempotent reads: list / file_list / registry_list_project / registry_list_group / registry_get / registry_tag_list / registry_tag_get / registry_rule_list / protection_rule_list / download. - publish / publish_directory / publish_and_link create a NEW package version (NON-idempotent — re-publishing the same (package_name, package_version, file_name) returns 400/409 or creates a duplicate file depending on package_type). registry_rule_update / protection_rule_update are idempotent; *_create are non-idempotent on duplicate keys. - Side effects: publish_and_link also creates a release link visible to release subscribers; download streams files to the required output_path on disk; protection_rule_create / registry_rule_create take effect immediately and may block subsequent publish/delete calls. - Destructive: delete (entire package), file_delete (single file), registry_delete (entire image repo), registry_tag_delete / registry_tag_delete_bulk (image tags — name_regex_delete may match many tags) and *_rule_delete are irreversible. Protection rules can return 403 ('forbidden by protection rule') instead of executing the delete. Returns: - list / file_list / registry_list_project / registry_list_group / registry_tag_list / registry_rule_list / protection_rule_list: arrays with pagination. - publish / publish_and_link / publish_directory / registry_get / registry_tag_get / registry_rule_create / registry_rule_update / protection_rule_create / protection_rule_update: package / image / rule object. publish_and_link also returns the created release link. - download: {output_path, size, sha256} — files are streamed to the required output_path on disk. - delete / file_delete / registry_delete / registry_tag_delete / registry_tag_delete_bulk / registry_rule_delete / protection_rule_delete: {success, message}. Errors: 404 (hint: package_id, repository_id and tag_name are project-scoped), 403 (hint: requires Maintainer+ to delete; protection rules may block delete with a 'forbidden by protection rule' message), 400 (hint: file_path must exist locally; content_base64 must be valid base64; package_type must be one of GitLab's supported types). Param conventions: * = required. Most actions need project_id*. List actions accept page, per_page. Packages: - publish: project_id*, package_name*, package_version*, file_name*, file_path or content_base64 (one required), status (default/hidden) - download: project_id*, package_name*, package_version*, file_name*, output_path* - list: project_id*, package_name, package_version, package_type (generic/npm/maven/etc.), order_by, sort - file_list: project_id*, package_id* - delete: project_id*, package_id*. Deletes package and all files. - file_delete: project_id*, package_id*, package_file_id* - publish_and_link: publish + create release link. project_id*, package_name*, package_version*, file_name*, file_path or content_base64 (one required), tag_name*, link_name, link_type - publish_directory: project_id*, package_name*, package_version*, directory_path*, include_pattern (glob), status Container registry: - registry_list_project: project_id*, tags, tags_count - registry_list_group: group_id* - registry_get: repository_id*, tags, tags_count - registry_delete: project_id*, repository_id* - registry_tag_list / registry_tag_get / registry_tag_delete: project_id*, repository_id*, tag_name* (for get/delete) - registry_tag_delete_bulk: project_id*, repository_id*, name_regex_delete, name_regex_keep, keep_n, older_than Container registry protection rules: - registry_rule_list: project_id* - registry_rule_create: project_id*, repository_path_pattern*, minimum_access_level_for_push, minimum_access_level_for_delete - registry_rule_update: project_id*, rule_id*, repository_path_pattern, minimum_access_level_for_push, minimum_access_level_for_delete - registry_rule_delete: project_id*, rule_id* Package protection rules: - protection_rule_list: project_id* - protection_rule_create: project_id*, package_name_pattern*, package_type*, minimum_access_level_for_push, minimum_access_level_for_delete - protection_rule_update: project_id*, rule_id*, package_name_pattern, package_type, minimum_access_level_for_push, minimum_access_level_for_delete - protection_rule_delete: project_id*, rule_id* See also: gitlab_release (release asset links), gitlab_project Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
download ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"output_path":{"type":"string"},"sha256":{"type":"string"},"size":{"type":"integer"}},"required":["output_path","size","sha256"],"type":"object"} ```
file_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
file_list ```json {"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_md5":{"type":"string"},"file_name":{"type":"string"},"file_sha1":{"type":"string"},"package_file_id":{"type":"integer"},"package_id":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"}},"required":["package_file_id","package_id","file_name","size","sha256"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["files","pagination"],"type":"object"} ```
group_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"packages":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"delete_api_path":{"type":"string"},"web_path":{"type":"string"}},"type":["null","object"]},"created_at":{"type":"string"},"id":{"type":"integer"},"last_downloaded_at":{"type":"string"},"name":{"type":"string"},"package_type":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":["null","object"]},"pipelines":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":"object"},"type":["null","array"]},"project_id":{"type":"integer"},"project_path":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"package_id":{"type":"integer"},"updated_at":{"type":"string"}},"required":["id","package_id","name"],"type":"object"},"type":["null","array"]},"version":{"type":"string"}},"required":["id","name","version","package_type","status","project_id"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["packages","pagination"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"packages":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"delete_api_path":{"type":"string"},"web_path":{"type":"string"}},"type":["null","object"]},"created_at":{"type":"string"},"id":{"type":"integer"},"last_downloaded_at":{"type":"string"},"name":{"type":"string"},"package_type":{"type":"string"},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":["null","object"]},"pipelines":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":"object"},"type":["null","array"]},"status":{"type":"string"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"package_id":{"type":"integer"},"updated_at":{"type":"string"}},"required":["id","package_id","name"],"type":"object"},"type":["null","array"]},"version":{"type":"string"}},"required":["id","name","version","package_type","status"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["packages","pagination"],"type":"object"} ```
protection_rule_create ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_name_pattern":{"type":"string"},"package_type":{"type":"string"},"project_id":{"type":"integer"}},"required":["id","project_id","package_name_pattern","package_type"],"type":"object"} ```
protection_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
protection_rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"rules":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_name_pattern":{"type":"string"},"package_type":{"type":"string"},"project_id":{"type":"integer"}},"required":["id","project_id","package_name_pattern","package_type"],"type":"object"},"type":["null","array"]}},"required":["rules","pagination"],"type":"object"} ```
protection_rule_update ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_name_pattern":{"type":"string"},"package_type":{"type":"string"},"project_id":{"type":"integer"}},"required":["id","project_id","package_name_pattern","package_type"],"type":"object"} ```
publish ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_md5":{"type":"string"},"file_name":{"type":"string"},"file_sha1":{"type":"string"},"file_store":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_file_id":{"type":"integer"},"package_id":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"},"updated_at":{"type":"string"},"url":{"type":"string"}},"required":["package_file_id","package_id","file_name","size","sha256","file_store","url"],"type":"object"} ```
publish_and_link ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"file_md5":{"type":"string"},"file_name":{"type":"string"},"file_sha1":{"type":"string"},"file_store":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_file_id":{"type":"integer"},"package_id":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"},"updated_at":{"type":"string"},"url":{"type":"string"}},"required":["package_file_id","package_id","file_name","size","sha256","file_store","url"],"type":"object"},"release_link":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"}},"required":["package","release_link"],"type":"object"} ```
publish_directory ```json {"additionalProperties":false,"properties":{"errors":{"items":{"type":"string"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"published":{"items":{"additionalProperties":false,"properties":{"file_name":{"type":"string"},"package_file_id":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"},"url":{"type":"string"}},"required":["file_name","package_file_id","size","sha256","url"],"type":"object"},"type":["null","array"]},"total_bytes":{"type":"integer"},"total_files":{"type":"integer"}},"required":["published","total_files","total_bytes"],"type":"object"} ```
registry_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
registry_get ```json {"additionalProperties":false,"properties":{"cleanup_policy_started_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"project_id":{"type":"integer"},"status":{"type":"string"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"digest":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"revision":{"type":"string"},"short_revision":{"type":"string"},"total_size":{"type":"integer"}},"required":["name","path","location","total_size"],"type":"object"},"type":["null","array"]},"tags_count":{"type":"integer"}},"required":["id","name","path","project_id","location","tags_count"],"type":"object"} ```
registry_list_group ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"repositories":{"items":{"additionalProperties":false,"properties":{"cleanup_policy_started_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"project_id":{"type":"integer"},"status":{"type":"string"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"digest":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"revision":{"type":"string"},"short_revision":{"type":"string"},"total_size":{"type":"integer"}},"required":["name","path","location","total_size"],"type":"object"},"type":["null","array"]},"tags_count":{"type":"integer"}},"required":["id","name","path","project_id","location","tags_count"],"type":"object"},"type":["null","array"]}},"required":["repositories","pagination"],"type":"object"} ```
registry_list_project ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"repositories":{"items":{"additionalProperties":false,"properties":{"cleanup_policy_started_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"project_id":{"type":"integer"},"status":{"type":"string"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"digest":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"revision":{"type":"string"},"short_revision":{"type":"string"},"total_size":{"type":"integer"}},"required":["name","path","location","total_size"],"type":"object"},"type":["null","array"]},"tags_count":{"type":"integer"}},"required":["id","name","path","project_id","location","tags_count"],"type":"object"},"type":["null","array"]}},"required":["repositories","pagination"],"type":"object"} ```
registry_rule_create ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"repository_path_pattern":{"type":"string"}},"required":["id","project_id","repository_path_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"} ```
registry_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
registry_rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"rules":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"repository_path_pattern":{"type":"string"}},"required":["id","project_id","repository_path_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"},"type":["null","array"]}},"required":["rules","pagination"],"type":"object"} ```
registry_rule_update ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"repository_path_pattern":{"type":"string"}},"required":["id","project_id","repository_path_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"} ```
registry_tag_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
registry_tag_delete_bulk ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
registry_tag_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"digest":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"revision":{"type":"string"},"short_revision":{"type":"string"},"total_size":{"type":"integer"}},"required":["name","path","location","total_size"],"type":"object"} ```
registry_tag_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tags":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"digest":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"revision":{"type":"string"},"short_revision":{"type":"string"},"total_size":{"type":"integer"}},"required":["name","path","location","total_size"],"type":"object"},"type":["null","array"]}},"required":["tags","pagination"],"type":"object"} ```
registry_tag_rule_create ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"tag_name_pattern":{"type":"string"}},"required":["id","project_id","tag_name_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"} ```
registry_tag_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
registry_tag_rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"rules":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"tag_name_pattern":{"type":"string"}},"required":["id","project_id","tag_name_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"},"type":["null","array"]}},"required":["rules","pagination"],"type":"object"} ```
registry_tag_rule_update ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"minimum_access_level_for_delete":{"type":"string"},"minimum_access_level_for_push":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"tag_name_pattern":{"type":"string"}},"required":["id","project_id","tag_name_pattern","minimum_access_level_for_push","minimum_access_level_for_delete"],"type":"object"} ```
### gitlab_pipeline **Pipeline** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_pipeline.. Action guidance: - cancel: Cancel a running pipeline's jobs by project_id and pipeline_id. Use when a build must be stopped early; completed pipelines cannot be cancelled. - create: Create a pipeline for a project ref (branch or tag). Use variables only when the task explicitly requires runtime overrides. - delete: Permanently delete a pipeline and all its jobs by project_id and pipeline_id. Use only when the pipeline record must be removed; this cannot be undone and requires Owner role. - get: Get one pipeline by project_id and pipeline_id. Use this when the target pipeline is already known and you need detailed status, ref, source, and web URL fields. - latest: Get the most recent pipeline for a project, optionally filtered by ref. Use when the exact pipeline_id is unknown and you need the latest run for a branch or tag. - list: List pipelines for one project. Use filters and pagination when the task asks for recent, failed, running, or branch-specific pipelines. - resource_group_edit: Update one resource group process mode by key. - resource_group_get: Get one resource group by key. - resource_group_list: List CI resource groups configured for a project. - resource_group_upcoming_jobs: List upcoming jobs queued for a resource group by key. - retry: Retry the failed and canceled jobs of a pipeline by project_id and pipeline_id. Use after a pipeline fails to re-run only the non-successful jobs. - schedule_create: Create a pipeline schedule in a project. Provide description, ref, and a 5-field cron expression; add cron_timezone, active, or inputs only when requested. - schedule_create_variable: Create a pipeline schedule variable. Provide key and value; value is always required. Only the schedule owner can manage variables. - schedule_delete: Permanently delete a pipeline schedule. Destructive and irreversible; confirm project_id and schedule_id before calling. - schedule_delete_variable: Delete a pipeline schedule variable by key. Destructive; confirm project_id, schedule_id, and key before calling. - schedule_edit_variable: Edit an existing pipeline schedule variable by key. Provide the new value; value is always required. Only the schedule owner can manage variables. - schedule_get: Get one pipeline schedule by schedule_id. Use after listing schedules or when the prompt names a concrete schedule; the single-schedule payload includes last_pipeline, variables, and inputs. - schedule_list: List pipeline schedules in a project. Use scope to filter active or inactive schedules and order_by/sort with pagination='keyset' for large ordered result sets. - schedule_list_triggered_pipelines: List the pipelines that a schedule has triggered. Use order-independent offset or keyset pagination for long histories. - schedule_run: Trigger a pipeline schedule to run immediately. Only the schedule owner can run it; runs are rate-limited to roughly one per minute. - schedule_take_ownership: Take ownership of a pipeline schedule so the authenticated user becomes its owner. Requires Maintainer+ and is a prerequisite for editing or running schedules owned by others. - schedule_update: Edit a pipeline schedule's description, ref, cron, cron_timezone, active state, or inputs. Only the schedule owner can edit; take ownership first if needed. - test_report: Get the full test report for a pipeline by project_id and pipeline_id. Use when the task needs per-suite test counts and timing; requires jobs that upload JUnit artifacts. - test_report_summary: Get the summarized test report for a pipeline by project_id and pipeline_id. Use for aggregate pass/fail totals without the full per-test detail. - trigger_create: Create a new pipeline trigger token on a project so external systems can start pipelines. Provide project_id and a clear description. Requires Maintainer+. - trigger_delete: Permanently delete a pipeline trigger token. Destructive and irreversible; the token is invalidated immediately. Confirm project_id and trigger_id before calling. - trigger_get: Get one pipeline trigger token by project_id plus trigger_id. Use after a list result or when the trigger_id is already known. - trigger_list: List the trigger tokens defined on a project. Use when the prompt asks which trigger tokens exist, or to find a trigger_id or token to run or edit. Requires Maintainer+ to read tokens; supports order_by, sort, offset and keyset pagination. - trigger_run: Trigger a pipeline on a ref using a trigger token. Provide project_id, ref, and token; optionally pass variables (CI/CD variables) or inputs (pipeline spec inputs). - trigger_update: Update a pipeline trigger token's description. Use when renaming or re-labeling an existing token; the token secret is unchanged. - update_metadata: Update a pipeline's metadata (its display name) by project_id and pipeline_id. Use to rename a pipeline; requires Developer+ role and a non-archived pipeline. - variables: List the variables used to run a pipeline by project_id and pipeline_id. Use to inspect the runtime variable overrides a pipeline executed with; requires Maintainer+ role. - wait: Use only to poll an existing pipeline_id until a terminal status. For merge when pipeline succeeds, use merge_request.merge with auto_merge=true instead. Parameter guidance: - cancel.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - cancel.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.project_id: scope_project; source: Project where the pipeline should be created. - create.ref: git_ref; source: Branch or tag to run the pipeline against.; avoid: Use ref for branch/tag names; do not send commit SHA when branch intent is requested. - delete.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - latest.project_id: scope_project; source: Project whose latest pipeline is requested. - latest.ref: git_ref; source: Branch or tag to scope the latest pipeline to; defaults to the project default branch. - latest.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - list.project_id: scope_project; source: Project ID or full path that owns the pipeline history. - list.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - list.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - list.status: pipeline_status_filter; source: Pipeline status requested by the task, such as failed, running, or success. - resource_group_edit.key: resource_group_key; source: Resource group key from resource group list output. - resource_group_edit.process_mode: resource_group_process_mode; source: Requested process mode (unordered, oldest_first, newest_first, newest_ready_first). - resource_group_edit.project_id: scope_project; source: Project ID or path that owns the resource groups. - resource_group_get.key: resource_group_key; source: Resource group key from resource group list output. - resource_group_get.project_id: scope_project; source: Project ID or path that owns the resource groups. - resource_group_list.project_id: scope_project; source: Project ID or path that owns the resource groups. - resource_group_upcoming_jobs.key: resource_group_key; source: Resource group key from resource group list output. - resource_group_upcoming_jobs.project_id: scope_project; source: Project ID or path that owns the resource groups. - retry.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - retry.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_create.cron: cron_expression; source: Standard 5-field cron expression for when the pipeline should run.; avoid: Use a 5-field cron string; do not pass natural-language schedules like every night. - schedule_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_create.ref; source: Branch or tag the scheduled pipeline runs against.; avoid: ref must be an existing branch or tag in the project. - schedule_create_variable.key: ci_variable_key; source: Variable name matching /^[A-Za-z_][A-Za-z0-9_]*$/.; avoid: key must already not exist on the schedule; use the edit action to change an existing key. - schedule_create_variable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_create_variable.value: pipeline_schedule_variable_value; source: Required variable value to store on the schedule; supply an explicit value even when the task only names the key. - schedule_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_delete.schedule_id: pipeline_schedule_id; source: Numeric ID of the schedule to delete, from a prior list or get. - schedule_delete_variable.key: ci_variable_key; source: Existing variable name on the schedule to delete. - schedule_delete_variable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_edit_variable.key: ci_variable_key; source: Existing variable name on the schedule to update. - schedule_edit_variable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_edit_variable.value: pipeline_schedule_variable_value; source: Required variable value to store on the schedule; supply an explicit value even when the task only names the key. - schedule_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_get.schedule_id: pipeline_schedule_id; source: Numeric schedule ID from a prior list, usually shown in the schedule URL.; avoid: schedule_id is the database ID, not the schedule description or cron string. - schedule_list.project_id: scope_project; source: Project ID or full namespace path whose pipeline schedules should be listed. - schedule_list.scope; source: active or inactive when the prompt asks only for enabled or disabled schedules.; avoid: scope accepts only active or inactive; it does not filter by ref or owner. - schedule_list_triggered_pipelines.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_list_triggered_pipelines.schedule_id: pipeline_schedule_id; source: Numeric ID of the schedule whose triggered pipelines to list. - schedule_run.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_run.schedule_id: pipeline_schedule_id; source: Numeric ID of the schedule to trigger, from a prior list or get. - schedule_take_ownership.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_take_ownership.schedule_id: pipeline_schedule_id; source: Numeric ID of the schedule whose ownership to take. - schedule_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - schedule_update.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - schedule_update.schedule_id: pipeline_schedule_id; source: Numeric ID of the schedule to edit, from a prior list or get. - test_report.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - test_report.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - test_report_summary.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - test_report_summary.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - trigger_create.description: trigger_description; source: Human-readable label describing what the token is for. - trigger_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - trigger_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - trigger_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - trigger_get.trigger_id: trigger_id; source: Numeric trigger token id, usually from a prior pipeline_trigger.list result.; avoid: trigger_id is the token's numeric id, not the token secret string. - trigger_list.project_id: scope_project; source: Project ID or full namespace path whose trigger tokens should be listed.; avoid: Trigger tokens are project-scoped; do not pass a group path. - trigger_run.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - trigger_run.ref: git_ref; source: Branch or tag name the pipeline should run on.; avoid: ref must be an existing branch or tag, not a commit SHA or MR id. - trigger_run.token: trigger_token; source: Trigger token secret string from pipeline_trigger.create or pipeline_trigger.list.; avoid: token is the secret string, not the numeric trigger_id. - trigger_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update_metadata.name: display_name; source: New human-readable pipeline name to set. - update_metadata.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - update_metadata.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - variables.pipeline_id: pipeline_identifier; source: Numeric pipeline ID from pipeline.list, pipeline.latest, or merge-request pipeline context.; avoid: Use pipeline_id, not job_id or merge_request_iid. - variables.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - wait.pipeline_id: pipeline_identifier; source: Pipeline ID returned by pipeline.list, pipeline.get, pipeline.latest, or merge_request.pipelines.; avoid: Do not use merge_request_iid; pipeline.wait requires pipeline_id. - wait.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab CI/CD pipelines plus trigger tokens, resource groups (mutual-exclusion locks), JUnit test reports, and pipeline schedules. Delete permanently removes a pipeline and all its jobs. When to use: pipeline CRUD on a project, retry/cancel a run, fetch CI variables and JUnit test reports, manage trigger tokens, resource groups (mutual-exclusion locks), scheduled pipelines and their variables. NOT for: jobs, logs, artifacts, manual play actions (use gitlab_job), MR-specific pipelines (use gitlab_merge_request 'pipelines' / 'create_pipeline'), CI lint or includes (use gitlab_template). Behavior: - Idempotent reads: list / latest / get / variables / test_report / test_report_summary / trigger_list / trigger_get / resource_group_list / resource_group_get / resource_group_upcoming_jobs / schedule_list / schedule_get / schedule_list_triggered_pipelines. - create / schedule_run / trigger_run start a NEW run on every call (NON-idempotent — produce a fresh pipeline_id). retry re-queues failed/canceled jobs on the existing pipeline (same pipeline_id; continue using it for subsequent get/wait calls). cancel is idempotent (no-op once final). update_metadata / trigger_update / resource_group_edit / schedule_update / schedule_edit_variable / schedule_take_ownership are idempotent (same input → same state). - Side effects: create / retry / schedule_run / trigger_run queue runners, consume CI minutes, may trigger downstream pipelines, deployments and webhooks. trigger_create returns a secret token visible only ONCE — store it immediately. wait blocks server-side until terminal state or timeout. - Destructive: delete permanently removes the pipeline and all its jobs, artifacts, logs and traces (irreversible). trigger_delete / schedule_delete / schedule_delete_variable are irreversible. Returns: - list / latest / variables / test_report / test_report_summary / trigger_list / resource_group_list / resource_group_upcoming_jobs / schedule_list / schedule_list_triggered_pipelines: array(s) or aggregated payloads with pagination where applicable. - get / create / cancel / retry / update_metadata / wait / trigger_get / trigger_create / trigger_update / trigger_run / resource_group_get / resource_group_edit / schedule_get / schedule_create / schedule_update / schedule_run / schedule_take_ownership / schedule_create_variable / schedule_edit_variable: pipeline / trigger / resource group / schedule object. - delete / trigger_delete / schedule_delete / schedule_delete_variable: {success, message}. Errors: 404 (hint: pipeline_id and trigger/schedule IDs are project-scoped), 403 (hint: requires Maintainer+ to delete pipelines or manage triggers/schedules), 400 (hint: cron expressions must use 5 fields; cron_timezone must be a valid TZ name; create requires 'ref'). Param conventions: * = required. All pipeline actions need project_id*. List actions accept page, per_page. Pipelines: - list: project_id*, status (success/failed/running/pending/canceled), scope, source, ref, sha, username - get / cancel / retry / variables / test_report / test_report_summary: project_id*, pipeline_id* - delete: project_id*, pipeline_id*. PERMANENTLY removes pipeline and jobs. - latest: project_id*, ref - create: project_id*, ref*, variables (array of {key, value, variable_type}) - update_metadata: project_id*, pipeline_id*, name* - wait: project_id*, pipeline_id*, interval_seconds (5-60, default 10), timeout_seconds (1-3600, default 300), fail_on_error (default true) Triggers: - trigger_list: project_id* - trigger_get / trigger_delete: project_id*, trigger_id* - trigger_create: project_id*, description* - trigger_update: project_id*, trigger_id*, description - trigger_run: project_id*, ref*, token*, variables (map) Resource groups: - resource_group_list: project_id* - resource_group_get / resource_group_edit: project_id*, key*. Edit params: process_mode. - resource_group_upcoming_jobs: project_id*, key* Schedules: - schedule_list: project_id*, scope (active/inactive) - schedule_get / schedule_delete / schedule_run / schedule_take_ownership: project_id*, schedule_id* - schedule_create: project_id*, description*, ref*, cron*, cron_timezone, active - schedule_update: project_id*, schedule_id*, description, ref, cron, cron_timezone, active - schedule_create_variable: project_id*, schedule_id*, key*, value*, variable_type (env_var/file) - schedule_edit_variable: project_id*, schedule_id*, key*, value*, variable_type - schedule_delete_variable: project_id*, schedule_id*, key* - schedule_list_triggered_pipelines: project_id*, schedule_id* See also: gitlab_job (job details/logs/artifacts), gitlab_merge_request, gitlab_ci_variable Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
cancel ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
latest ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"pipelines":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url","created_at","updated_at"],"type":"object"},"type":["null","array"]}},"required":["pipelines","pagination"],"type":"object"} ```
resource_group_edit ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"process_mode":{"type":"string"}},"required":["id","key","process_mode"],"type":"object"} ```
resource_group_get ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"process_mode":{"type":"string"}},"required":["id","key","process_mode"],"type":"object"} ```
resource_group_list ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"process_mode":{"type":"string"}},"required":["id","key","process_mode"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["groups"],"type":"object"} ```
resource_group_upcoming_jobs ```json {"additionalProperties":false,"properties":{"jobs":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"stage":{"type":"string"},"status":{"type":"string"}},"required":["id","name","status","stage"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["jobs"],"type":"object"} ```
retry ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
schedule_create ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"} ```
schedule_create_variable ```json {"additionalProperties":false,"properties":{"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"} ```
schedule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
schedule_delete_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
schedule_edit_variable ```json {"additionalProperties":false,"properties":{"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"} ```
schedule_get ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"} ```
schedule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"schedules":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"},"type":["null","array"]}},"required":["schedules","pagination"],"type":"object"} ```
schedule_list_triggered_pipelines ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"pipelines":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","ref","sha","status","source","web_url"],"type":"object"},"type":["null","array"]}},"required":["pipelines","pagination"],"type":"object"} ```
schedule_run ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"} ```
schedule_take_ownership ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"} ```
schedule_update ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"cron":{"type":"string"},"cron_timezone":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"inputs":{"items":{"additionalProperties":false,"properties":{"destroy":{"description":"Set true to delete this input from the schedule (only honored on update)","type":["null","boolean"]},"name":{"description":"Pipeline input name (must match a defined input on the target pipeline)","type":"string"},"value":{"description":"Pipeline input value; type depends on the input definition"}},"required":["name"],"type":"object"},"type":["null","array"]},"last_pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","sha","ref","status"],"type":["null","object"]},"next_run_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"ref":{"type":"string"},"updated_at":{"type":"string"},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"raw":{"type":"boolean"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["id","description","ref","cron","cron_timezone","active"],"type":"object"} ```
test_report ```json {"additionalProperties":false,"properties":{"error_count":{"type":"integer"},"failed_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"skipped_count":{"type":"integer"},"success_count":{"type":"integer"},"test_suites":{"items":{"additionalProperties":false,"properties":{"error_count":{"type":"integer"},"failed_count":{"type":"integer"},"name":{"type":"string"},"skipped_count":{"type":"integer"},"success_count":{"type":"integer"},"total_count":{"type":"integer"},"total_time":{"type":"number"}},"required":["name","total_time","total_count","success_count","failed_count","skipped_count","error_count"],"type":"object"},"type":["null","array"]},"total_count":{"type":"integer"},"total_time":{"type":"number"}},"required":["total_time","total_count","success_count","failed_count","skipped_count","error_count","test_suites"],"type":"object"} ```
test_report_summary ```json {"additionalProperties":false,"properties":{"error_count":{"type":"integer"},"failed_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"skipped_count":{"type":"integer"},"success_count":{"type":"integer"},"test_suites":{"items":{"additionalProperties":false,"properties":{"build_ids":{"items":{"type":"integer"},"type":["null","array"]},"error_count":{"type":"integer"},"failed_count":{"type":"integer"},"name":{"type":"string"},"skipped_count":{"type":"integer"},"success_count":{"type":"integer"},"total_count":{"type":"integer"},"total_time":{"type":"number"}},"required":["name","total_time","total_count","success_count","failed_count","skipped_count","error_count","build_ids"],"type":"object"},"type":["null","array"]},"total_count":{"type":"integer"},"total_time":{"type":"number"}},"required":["total_time","total_count","success_count","failed_count","skipped_count","error_count","test_suites"],"type":"object"} ```
trigger_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deleted_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","token"],"type":"object"} ```
trigger_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
trigger_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deleted_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","token"],"type":"object"} ```
trigger_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"triggers":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deleted_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","token"],"type":"object"},"type":["null","array"]}},"required":["triggers","pagination"],"type":"object"} ```
trigger_run ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","status","ref","sha","web_url"],"type":"object"} ```
trigger_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"deleted_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","token"],"type":"object"} ```
update_metadata ```json {"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"} ```
variables ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"},"variable_type":{"type":"string"}},"required":["key","value","variable_type"],"type":"object"},"type":["null","array"]}},"required":["variables"],"type":"object"} ```
wait ```json {"additionalProperties":false,"properties":{"final_status":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","tag","duration","queued_duration","web_url","created_at","updated_at"],"type":"object"},"poll_count":{"type":"integer"},"timed_out":{"type":"boolean"},"waited_for":{"type":"string"}},"required":["pipeline","waited_for","poll_count","final_status","timed_out"],"type":"object"} ```
### gitlab_project **Project** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_project.. Action guidance: - archive: Archive a project so it becomes read-only. Send project_id; requires Owner role. Use unarchive to reverse. - badge_add: Add a project badge. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. - badge_delete: Delete a project badge. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. - badge_edit: Edit a project badge. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. Use the parameter name name for a new badge name; new_name is not supported. - badge_get: Get a project badge. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. - badge_list: List project badges. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. - badge_preview: Preview a project badge. Use project_id for project badge operations; do not use group_id. Use when the task says project badge; do not use gitlab_group for project badge CRUD. - board_create: Create a new issue board so a team can track work in a fresh kanban view of the project. - board_delete: Permanently remove an issue board from a project when the team no longer tracks work on that kanban view. - board_get: Fetch one issue board by its ID to inspect its scope filters and the ordered columns it contains. - board_list: List every issue board configured in a project to see how the team's kanban work is organized. - board_list_create: Add a new column to an issue board scoped to a label, assignee, milestone, or iteration to capture a workflow stage. - board_list_delete: Permanently remove a column from an issue board when that kanban workflow stage is no longer needed. - board_list_get: Fetch one column of an issue board to inspect its label, assignee, milestone, or iteration scope and issue limits. - board_list_list: Enumerate the columns of an issue board in order to see how the kanban workflow stages are arranged. - board_list_update: Move an issue board column to a new position to reorder the kanban workflow stages. - board_update: Rename an issue board or retune its assignee, milestone, label, and weight scope, or toggle the Open and Closed columns. - create: Create a new project in a namespace you can write to. Provide name (and optionally path, namespace_id, visibility, description). Use create_for_user to create on behalf of another user as admin. - create_for_user: Create a project owned by a specific user (admin only). Provide user_id and name; the project is created in that user's personal namespace. - create_fork_relation: Create a fork relationship linking a project to an upstream source project. Send project_id and the upstream fork_id (or forked_from_id). - delete: Use to delete a project. For ordinary cleanup, send project_id and confirm only. Set permanently_remove only when explicitly requested; when permanently_remove is true, full_path must exactly match the project's path_with_namespace from project create/get. - delete_fork_relation: Remove a project's fork relationship to its upstream source, detaching it from the original project. Send project_id. - delete_shared_group: Remove a group's share link from a project, revoking that group's inherited access. Send project_id and group_id. - download_avatar: Download the avatar image for a project. Send project_id; returns the raw image bytes. - export_download: Download the generated export archive (.tar.gz) of a project as base64 once the export status is 'finished'. Archives are retained for 24 hours after generation. - export_schedule: Schedule an asynchronous export archive for a project. Optionally upload the archive to a URL when it is ready. Then poll gitlab_get_project_export_status until 'finished' and download with gitlab_download_project_export. - export_status: Get the current export status of a project. Use after gitlab_schedule_project_export to poll until export_status is 'finished'; status values are none, started, finished, regeneration_in_progress. - fork: Fork a project into your namespace or a chosen namespace. Optionally set name, path, namespace_id/namespace_path, visibility, and branches to fork. - get: Get one exact project by numeric ID or full namespace path. Use this when the prompt gives a concrete path like group/project and asks to find, show, verify, or read project metadata such as id or default_branch; do not use search.projects for an exact path lookup. - hook_add: Add a webhook to a project. Send project_id and url plus the event flags to enable (push_events, merge_requests_events, etc.); production GitLab requires HTTPS. Requires Maintainer role. - hook_delete: Delete a project webhook by hook_id. Send project_id and hook_id; irreversible. - hook_delete_custom_header: Delete a custom HTTP header from a project webhook. Send project_id, hook_id, and key. - hook_delete_url_variable: Delete a URL variable from a project webhook. Send project_id, hook_id, and key. - hook_edit: Edit an existing project webhook's URL, token, or enabled events. Send project_id, hook_id, and the fields to change. - hook_get: Get one project webhook by hook_id, including its enabled events and configuration. Send project_id and hook_id. - hook_list: List the webhooks configured on a project. Send project_id; requires Maintainer or Owner role. - hook_set_custom_header: Set a custom HTTP header sent with a project webhook's requests. Send project_id, hook_id, key, and value; the value is write-only. - hook_set_url_variable: Set a URL variable (placeholder substituted into the webhook URL) on a project webhook. Send project_id, hook_id, key, and value; the value is write-only. - hook_test: Trigger a test event for a project webhook to verify delivery. Send project_id, hook_id, and the event type to fire (e.g. push_events). The project must contain matching content. - import_from_file: Import a project from a GitLab export archive (.tar.gz) supplied as a local file path or base64 content. Optionally override the namespace, name, path, and project attributes via override_params. Poll gitlab_get_project_import_status afterward. - import_status: Get the import status of a project created by gitlab_import_project_from_file. Poll until import_status is 'finished' or 'failed'; inspect import_error on failure. Status values are none, scheduled, started, finished, failed. - integration_delete: Disable and remove a project integration by slug when it is no longer needed. - integration_delete_group: Disable and remove a group integration by slug when it is no longer needed. - integration_delete_group_datadog: Remove a group's Datadog integration and clear its stored API key when forwarding is no longer wanted. - integration_get: Inspect one project integration by slug to read its active status and event-trigger configuration. - integration_get_group: Inspect one group integration by slug to read its active status and configuration. - integration_get_group_datadog: Read the Datadog integration on a group to confirm the configured site, env, service, and tags. - integration_list: List every integration (service) wired up on a project to see what is active before reading or removing one. - integration_list_group: List every active integration wired up on a group to see what is enabled before reading or removing one. - integration_set: Configure any project integration by slug with a free-form config object when no dedicated tool exists (e.g. slack, harbor, jenkins, google-play). - integration_set_group: Configure any group integration by slug with a free-form config object, applying it across the group's projects. - integration_set_group_datadog: Create or update a group's Datadog integration so logs and CI traces forward to the chosen Datadog site. - integration_set_jira: Connect a project to a Jira instance, setting the URL, credentials, and which events sync to Jira. - label_create: Create a label in a project with required name and color, plus optional description and priority. - label_delete: Delete a project label by label_id (ID or name). Destructive and irreversible; group-inherited labels must be deleted at the group level. - label_get: Get one label by project_id and label_id (label name/ID route parameter). Use when exact label metadata is needed. - label_list: List labels for a project with optional search and pagination. Use to discover taxonomy before issue/MR filtering or label maintenance. - label_promote: Promote a project label to a group label so it is shared across the group's projects. The project must belong to a group; personal-namespace projects cannot promote labels. - label_subscribe: Subscribe the authenticated user to a project label to receive notifications. Identify the label by label_id (ID or name). - label_unsubscribe: Unsubscribe the authenticated user from a project label to stop receiving notifications. Identify the label by label_id (ID or name). - label_update: Update a project label's name, color, description, priority, or archived state. Identify the label by label_id (ID or name); at least one mutable field is required. - languages: Get the programming-language breakdown of a project's repository as language name and percentage. Send project_id; empty repositories return no languages. - list: List projects accessible to the authenticated user. For most recently updated projects, use order_by last_activity_at with sort desc and per_page for the requested count; do not use last_activity_after as an order_by value. - list_forks: List the forks of a project with the same filters as the project list endpoint (visibility, owned, search, order_by, archived, and more). Send project_id. - list_groups: List the ancestor and shared groups associated with a project. Send project_id; optionally filter by search, shared visibility, or minimum access level. - list_invited_groups: List the groups invited to (shared with) a project. Send project_id; optionally filter by search, relation, or minimum access level. - list_starrers: List the users who have starred a project, with the date each starred it. Send project_id and optionally search by name or username. - list_user_contributed: List projects a specific user has contributed to. Send user_id (numeric ID or username) plus optional filters such as visibility, archived, search, and order_by. - list_user_projects: List projects owned by a specific user. Send user_id (numeric ID or username) plus optional filters such as visibility, archived, search, and order_by. - list_user_starred: List projects a specific user has starred. Send user_id (numeric ID or username) plus optional filters such as visibility, archived, search, and order_by. - list_users: List the users who are members of a project. Send project_id and optionally search by name or username. - member_add: Add a user to a project team by user_id or username with an access_level. Optionally set expires_at and member_role_id (Premium/Ultimate custom role). Idempotent for already-existing members. - member_delete: Remove a member from a project by user_id. Destructive and requires confirmation. Requires Maintainer; the last Owner cannot be removed. - member_edit: Edit an existing project member's access_level, expires_at, or member_role_id. Requires at least the same access level as the target member. - member_get: Get one direct project member by project_id plus user_id. Use after a member list, or when the prompt already names a concrete user. Returns only direct members; use member.get_inherited to include parent-group inheritance. - member_inherited: Get a project member including membership inherited from any parent group. Use when member.get returns not-found but the user has access through an ancestor group. - members: List the members of a project, including members inherited from parent groups. Filter with query, user_ids, and show_seat_info; order with order_by/sort; page with offset or keyset pagination. - milestone_create: Create a milestone in a project with title and optional description/start/due dates. - milestone_delete: Delete a milestone from a project by milestone_iid. Requires Maintainer or Owner role. - milestone_get: Get one milestone by project_id and milestone_iid. Use this when a specific milestone is referenced and detailed fields are required. - milestone_issues: List the issues assigned to a milestone by milestone_iid, with ordering and pagination. - milestone_list: List milestones in one project with optional state/search filters and pagination. Use for release planning and progress overviews. - milestone_merge_requests: List the merge requests assigned to a milestone by milestone_iid, with ordering and pagination. - milestone_update: Update an existing milestone's title, description, dates, or state (close/activate) by milestone_iid. - mirror_add: Create a new push (remote) mirror on a project so commits are mirrored to an external Git URL. Requires GitLab Premium/Ultimate and Maintainer+ role; supply credentials inline in the URL or via SSH auth. - mirror_delete: Permanently delete a push mirror from a project. Destructive and irreversible; confirm project_id and mirror_id before calling. - mirror_edit: Update an existing push mirror's attributes: enable/disable it, toggle keep_divergent_refs or only_protected_branches, change the branch regex, or switch auth method. Identify the mirror with project_id plus mirror_id. - mirror_force_push: Trigger an immediate update of a push mirror instead of waiting for the next scheduled sync. The mirror must be enabled and not in a failed-auth state. - mirror_get: Get one push mirror by project_id plus mirror_id, including its enabled state, auth method, branch filtering, and last-update status and error. Use after listing mirrors when the target mirror_id is already known. - mirror_get_public_key: Get the SSH public key GitLab uses to authenticate an SSH-based push mirror, so it can be added as a deploy key on the remote. Only mirrors with ssh_public_key auth expose a public key. - mirror_list: List every push (remote) mirror configured on a project, with their enabled state, URL, and last-update status. Use to discover mirror_id values before getting, editing, deleting, or force-pushing a specific mirror. - pages_domain_create: Attach a new custom Pages domain to a project and obtain its DNS verification code. - pages_domain_delete: Detach and delete a custom Pages domain from a project. - pages_domain_get: Fetch one custom Pages domain by name, including its verification code and certificate details. - pages_domain_list: List the custom Pages domains attached to a project, with verification and SSL status. - pages_domain_list_all: List ALL GitLab Pages custom domains across the whole instance in one call (admin only). Use this instead of pages_domain_list when you need every domain on the instance, not just those attached to a single project. - pages_domain_update: Update a custom Pages domain's auto-SSL setting or TLS certificate and key. - pages_get: Read the GitLab Pages settings for a project, including the published URL and HTTPS configuration. - pages_unpublish: Unpublish and tear down a project's GitLab Pages site, removing the deployed content. - pages_update: Update a project's GitLab Pages settings such as force-HTTPS, unique-domain, and the primary domain. - repository_storage_get: Get the repository storage shard a project is stored on (admin only). Send project_id. - restore: Restore a project previously marked for delayed deletion, before the retention period expires. Send the project_id of the pending-deletion project. - service_account_create: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. Omit email unless the task gives an explicit valid email address. - service_account_delete: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. - service_account_list: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. - service_account_pat_create: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. Omit expires_at unless the task gives an explicit expiry date; if provided, use YYYY-MM-DD within the instance maximum token lifetime. - service_account_pat_list: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. - service_account_pat_revoke: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. - service_account_pat_rotate: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. Omit expires_at unless the task gives an explicit expiry date; if provided, use YYYY-MM-DD within the instance maximum token lifetime. - service_account_update: Use for GitLab project service accounts and their personal access tokens. Available on all tiers (Free, Premium, Ultimate); requires sufficient project permissions. Omit email unless the task gives an explicit valid email address. - share_with_group: Share a project with a group at a chosen access level. Send project_id, group_id, and group_access (10 Guest, 20 Reporter, 30 Developer, 40 Maintainer); optionally expires_at (YYYY-MM-DD). - star: Star a project for the authenticated user. Send project_id; idempotent if already starred. - start_housekeeping: Trigger Git housekeeping (garbage collection and repository optimization) for a project. Send project_id; requires Owner role. - statistics_get: Get the last 30 days of repository fetch statistics (git clone/pull counts) for a project, broken down by day. Use this when the prompt asks how often a project is being cloned or pulled, or for recent fetch activity. The caller must have at least Reporter access to the project. This returns fetch counts only — it is not the project-size/storage statistics that gitlab_project_get exposes via with_statistics. - transfer: Transfer a project to a different namespace (group or user). Send project_id and the target namespace ID or full path. Requires Owner on the source and create-project rights on the target. - unarchive: Unarchive a previously archived project to restore write access. Send project_id; requires Owner role. - unstar: Remove the authenticated user's star from a project. Send project_id; idempotent if not currently starred. - update: Update settings on an existing project such as name, description, visibility, default_branch, merge_method, feature access levels, or CI/CD options. Send project_id plus only the fields to change. - upload: Use to upload a file into a project's Markdown attachments store and obtain a Markdown-embeddable reference. - upload_avatar: Upload an avatar image for a project. Send project_id and the image content/path; replaces any existing avatar. - upload_delete: Use to permanently remove a project Markdown upload identified by its numeric upload ID. - upload_delete_by_secret: Use to permanently remove a project Markdown upload identified by the secret and filename from its /uploads// URL when the numeric upload ID is unknown. - upload_list: Use to enumerate files uploaded into a project's Markdown attachments store. Parameter guidance: - archive.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - badge_add.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - badge_delete.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - badge_edit.name: badge_display_name; source: Optional replacement badge name. The parameter is named name.; avoid: Do not send new_name; badge_edit accepts name, link_url, and image_url. - badge_edit.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - badge_get.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - badge_list.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - badge_preview.project_id: scope_project; source: Project that owns the badge.; avoid: Do not use group_id for project badge actions. - board_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list_create.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - board_list_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_list_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - board_update.milestone_id: milestone_id; source: Milestone ID (project- or group-scoped, depending on the endpoint). - board_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - create.path: path_component; source: Path component relative to the project or repository root (no leading slash). - create_for_user.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - create_for_user.path: path_component; source: Path component relative to the project or repository root (no leading slash). - create_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - create_fork_relation.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete_fork_relation.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete_shared_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - delete_shared_group.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - download_avatar.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - export_download.project_id: scope_project; source: Project ID or URL-encoded full path of the project being exported or imported.; avoid: Use the source project for export status/download; for import_status use the newly created target project, not the archive. - export_schedule.project_id: scope_project; source: Project ID or URL-encoded full path of the project being exported or imported.; avoid: Use the source project for export status/download; for import_status use the newly created target project, not the archive. - export_status.project_id: scope_project; source: Project ID or URL-encoded full path of the project being exported or imported.; avoid: Use the source project for export status/download; for import_status use the newly created target project, not the archive. - fork.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - fork.path: path_component; source: Path component relative to the project or repository root (no leading slash). - fork.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.project_id: scope_project; source: Concrete numeric project ID or full namespace path from the prompt or a prior project result.; avoid: Use project_id for a namespace path; do not substitute full_path, path, remote_url, search, or query., A namespace path like group/project goes here directly — do not call discover_project.resolve for it (that action is only for a full git remote URL). - hook_add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_delete_custom_header.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_delete_url_variable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_edit.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_set_custom_header.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_set_url_variable.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - hook_test.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - import_from_file.file_path: archive_source; source: Local filesystem path to the .tar.gz export archive (alternative to content_base).; avoid: Supply exactly one of file_path or content_base. - import_from_file.namespace: target_namespace; source: Group/user namespace (id or full path) to import into; defaults to the caller's namespace when omitted.; avoid: Omit to import into your own namespace. - import_from_file.path: new_project_path; source: URL-safe path (slug) for the imported project.; avoid: This names the NEW project; the source archive is supplied via file_path or content_base. - import_status.project_id: scope_project; source: Project ID or URL-encoded full path of the project being exported or imported.; avoid: Use the source project for export status/download; for import_status use the newly created target project, not the archive. - integration_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - integration_delete_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_delete_group_datadog.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - integration_get_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_get_group_datadog.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - integration_list_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_set.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - integration_set_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_set_group_datadog.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - integration_set_jira.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_create.color: hex_color; source: Hex color string for label background (for example #d9534f).; avoid: Provide hex color values; avoid named colors. - label_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_delete.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_get.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_promote.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_promote.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_subscribe.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_subscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_unsubscribe.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_unsubscribe.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - label_update.label_id: label_identifier; source: Label name or ID from task context or label list output. - label_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - languages.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.order_by: project_list_sort_field; source: Use only GitLab project list ordering fields accepted by the projects API.; avoid: Use last_activity_at to sort by recent activity; last_activity_after is a date filter, not an order_by value. - list_forks.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_groups.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_invited_groups.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_starrers.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_user_contributed.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - list_user_projects.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - list_user_starred.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - list_users.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - member_add.access_level: access_level; source: Numeric access level: 10 Guest, 20 Reporter, 30 Developer, 40 Maintainer, 50 Owner (plus 5/15/25/60 on supported tiers).; avoid: Use the numeric level, not a role name; set member_role_id for a custom role. - member_add.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - member_add.user_id: user_id; source: Numeric user ID to add; provide either user_id or username.; avoid: Provide user_id or username, not both; access_level is also required. - member_delete.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - member_delete.user_id: user_id; source: Numeric user ID of the member, from gitlab_list_users or prior member list output.; avoid: Use the global user ID, not a username; pass username only on the add action. - member_edit.access_level: access_level; source: New numeric access level: 10 Guest, 20 Reporter, 30 Developer, 40 Maintainer, 50 Owner (plus 5/15/25/60 on supported tiers).; avoid: Use the numeric level, not a role name; you must hold at least the same level as the target. - member_edit.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - member_edit.user_id: user_id; source: Numeric user ID of the member, from gitlab_list_users or prior member list output.; avoid: Use the global user ID, not a username; pass username only on the add action. - member_get.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - member_get.user_id: user_id; source: Numeric user ID of the member, from gitlab_list_users or prior member list output.; avoid: Use the global user ID, not a username; pass username only on the add action. - member_inherited.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - member_inherited.user_id: user_id; source: Numeric user ID of the member, from gitlab_list_users or prior member list output.; avoid: Use the global user ID, not a username; pass username only on the add action. - members.project_id: scope_project; source: Project ID or full namespace path (e.g. "group/project") that owns the membership.; avoid: Use the project here, not a group ID; for group memberships use the group member actions instead. - milestone_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_get.milestone_iid: milestone_iid; source: Milestone IID from milestone list output or URL context.; avoid: Use milestone_iid (project-scoped IID), not global milestone ID. - milestone_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_issues.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_merge_requests.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestone_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - mirror_add.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_add.url: mirror_url; source: Remote Git URL to push to, optionally with inline credentials in the userinfo component.; avoid: Inline credentials are secrets; do not mirror a project to itself. - mirror_delete.mirror_id: mirror_id; source: Numeric remote-mirror id from a prior gitlab_list_project_mirrors response.; avoid: mirror_id is the remote-mirror's own id, not the project id and not the mirror URL. - mirror_delete.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_edit.mirror_id: mirror_id; source: Numeric remote-mirror id from a prior gitlab_list_project_mirrors response.; avoid: mirror_id is the remote-mirror's own id, not the project id and not the mirror URL. - mirror_edit.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_force_push.mirror_id: mirror_id; source: Numeric remote-mirror id from a prior gitlab_list_project_mirrors response.; avoid: mirror_id is the remote-mirror's own id, not the project id and not the mirror URL. - mirror_force_push.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_get.mirror_id: mirror_id; source: Numeric remote-mirror id from a prior gitlab_list_project_mirrors response.; avoid: mirror_id is the remote-mirror's own id, not the project id and not the mirror URL. - mirror_get.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_get_public_key.mirror_id: mirror_id; source: Numeric remote-mirror id from a prior gitlab_list_project_mirrors response.; avoid: mirror_id is the remote-mirror's own id, not the project id and not the mirror URL. - mirror_get_public_key.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - mirror_list.order_by; source: Column to order keyset-paginated results by, such as id.; avoid: order_by only applies when pagination='keyset'; combine it with sort. - mirror_list.project_id: scope_project; source: Project ID or full namespace path that owns the remote mirror.; avoid: Use the project that owns the mirror, not a group path or the remote repository's project. - pages_domain_create.domain: pages_domain; source: Fully qualified domain name of the Pages domain. - pages_domain_create.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_domain_delete.domain: pages_domain; source: Fully qualified domain name of the Pages domain. - pages_domain_delete.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_domain_get.domain: pages_domain; source: Fully qualified domain name of the Pages domain. - pages_domain_get.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_domain_list.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_domain_update.domain: pages_domain; source: Fully qualified domain name of the Pages domain. - pages_domain_update.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_get.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_unpublish.project_id: scope_project; source: Project ID or path owning the Pages configuration. - pages_update.project_id: scope_project; source: Project ID or path owning the Pages configuration. - repository_storage_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - restore.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_pat_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_pat_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_pat_list.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - service_account_pat_revoke.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_pat_revoke.token_id: access_token; source: Project service account personal access token ID returned by service_account_pat_list or service_account_pat_create.; avoid: Do not use service_account_id as token_id; token_id identifies the personal access token itself. - service_account_pat_rotate.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - service_account_pat_rotate.token_id: access_token; source: Project service account personal access token ID returned by service_account_pat_list or service_account_pat_create.; avoid: Do not use service_account_id as token_id; token_id identifies the personal access token itself. - service_account_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - share_with_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - share_with_group.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - star.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - start_housekeeping.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - statistics_get.project_id: scope_project; source: Project ID or URL-encoded path whose fetch statistics should be retrieved.; avoid: This returns git fetch (clone/pull) counts, not storage/size statistics; for repository or storage size use gitlab_project_get with statistics enabled. - transfer.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unarchive.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unstar.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.path: path_component; source: Path component relative to the project or repository root (no leading slash). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload_avatar.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload_delete_by_secret.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab projects end-to-end: lifecycle (create/fork/transfer/archive/delete), visibility & access (members, share, approval rules, integrations, webhooks), and advanced features (mirrors, Pages, badges, boards, labels, milestones, uploads, avatars, import/export, housekeeping). Delete, unpublish, force-push and *_delete actions are destructive. When to use: project-level configuration and metadata. NOT for: file content/commits (use gitlab_repository), branches (gitlab_branch), wiki pages (gitlab_wiki), issues (gitlab_issue), MRs (gitlab_merge_request). Behavior: - Idempotent reads: every get/list/*_get/*_list action plus badge_preview, languages, repository_storage_get, statistics_get. - Idempotent mutations: update / *_update / *_edit / star / unstar / archive / unarchive / hook_set_*. NON-idempotent: create, fork, *_create, hook_add, hook_test — each invocation queues a new webhook delivery. - Side effects: hook_add/edit/test trigger webhook deliveries; member_add/share/edit and integration_set_* notify users; transfer relocates the project and members; export_schedule / import_from_file / start_mirroring / start_housekeeping queue long-running async work (poll *_status); upload_avatar / upload mutate storage. - Destructive: delete (unless restore window applies), *_delete (hook/label/milestone/badge/board/integration/approval_rule/mirror/upload/pages_domain/board_list), pages_unpublish, mirror_force_push, delete_shared_group, delete_fork_relation. archive is reversible via unarchive. Returns: list/*_list actions return paginated arrays {page, per_page, total, next_page}. CRUD/get/configure/upload actions return the resource object — including label_subscribe (returns the updated label). Pure-mutation actions (delete, *_delete, mirror_force_push, start_*, *_promote, label_unsubscribe) return {success, message}. Errors: 404 (hint: project_id may be a numeric ID or URL-encoded path like 'group%2Frepo'), 403 (hint: most mutations require Maintainer+; settings/transfers require Owner; instance-level actions require admin), 400 (hint: visibility ∈ private/internal/public; merge_method ∈ merge/rebase_merge/ff; namespace_id must be writable by the caller). Param conventions: * = required. Most actions need project_id* (numeric ID or URL-encoded path like 'group/repo'). List actions accept page, per_page. Access levels: 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner. Project CRUD: - create: name*, namespace_id, description, visibility (private/internal/public), initialize_with_readme, default_branch, path, topics, merge_method (merge/rebase_merge/ff), squash_option (never/always/default_on/default_off), ci_config_path, feature toggles (issues/merge_requests/wiki/jobs/lfs/request_access_enabled) - get: project_id* - list: owned, search, visibility, archived, order_by, sort, topic, simple, min_access_level, last_activity_after/before, starred, membership, search_namespaces, statistics, include_pending_delete, include_hidden - update: project_id*, name, description, visibility, default_branch, merge_method, topics, squash_option, merge_commit_template, squash_commit_template, merge_pipelines_enabled, merge_trains_enabled, approvals_before_merge, feature toggles - delete: project_id*, permanently_remove, full_path (required when permanently_remove=true). Delayed deletion by default; permanently_remove bypasses it - restore: project_id* Project actions: - fork: project_id*, name, path, namespace_id, namespace_path, visibility, branches, mr_default_target_self - star / unstar / archive / unarchive / languages: project_id* - transfer: project_id*, namespace* (ID or path) - list_forks: project_id*, owned, search, visibility, order_by, sort - create_fork_relation: project_id*, forked_from_id* - delete_fork_relation: project_id* Users and groups: - list_user_projects: user_id* (ID or username), search, visibility, archived, order_by, sort, simple - list_users / list_starrers: project_id*, search - list_groups: project_id*, search, with_shared, shared_visible_only, skip_groups, shared_min_access_level - share_with_group: project_id*, group_id*, group_access* (10-40), expires_at - delete_shared_group: project_id*, group_id* - list_invited_groups: project_id*, search, min_access_level - list_user_contributed / list_user_starred: user_id*, search, visibility, archived, order_by, sort, simple Members (member_*): - members: project_id*, query (filter name/username) - member_get / member_inherited: project_id*, user_id* - member_add: project_id*, user_id or username*, access_level* (10-50), expires_at, member_role_id - member_edit: project_id*, user_id*, access_level*, expires_at, member_role_id - member_delete: project_id*, user_id* Webhooks (hook_*) — project webhook event booleans are push_events, tag_push_events, issues_events, confidential_issues_events, merge_requests_events, note_events, confidential_note_events, job_events, pipeline_events, wiki_page_events, deployment_events, releases_events, emoji_events, and resource_access_token_events. Do not send member_events or subgroup_events for project hooks; those are group hook fields. Omit params that are not requested, and omit null values. - hook_list: project_id* - hook_get / hook_delete: project_id*, hook_id* - hook_add: project_id*, url*, name, description, token, event booleans, enable_ssl_verification, push_events_branch_filter, custom_webhook_template, branch_filter_strategy - hook_edit: project_id*, hook_id*, same params as hook_add - hook_test: project_id*, hook_id*, event* (e.g. push_events) - hook_set_custom_header / hook_set_url_variable: project_id*, hook_id*, key*, value* - hook_delete_custom_header / hook_delete_url_variable: project_id*, hook_id*, key* Labels (label_*): - label_list: project_id*, search, with_counts, include_ancestor_groups - label_get / label_delete / label_subscribe / label_unsubscribe / label_promote: project_id*, label_id* - label_create: project_id*, name*, color* (hex), description, priority - label_update: project_id*, label_id*, new_name, color, description, priority Project milestones (milestone_* — use gitlab_group group_milestone_* only when the prompt explicitly says group milestone or gives a group_id/group path): - milestone_list: project_id*, state (active/closed), title, search, include_ancestors - milestone_get / milestone_delete: project_id*, milestone_iid* - milestone_create: project_id*, title*, description, start_date, due_date - milestone_update: project_id*, milestone_iid*, title, description, start_date, due_date, state_event (activate/close) - milestone_issues / milestone_merge_requests: project_id*, milestone_iid* Badges (badge_*): - badge_list: project_id*, name - badge_get / badge_delete: project_id*, badge_id* - badge_add / badge_preview: project_id*, link_url*, image_url*, name - badge_edit: project_id*, badge_id*, link_url, image_url, name Boards (board_*): - board_list: project_id* - board_get / board_delete: project_id*, board_id* - board_create: project_id*, name* - board_update: project_id*, board_id*, name, assignee_id, milestone_id, labels, weight, hide_backlog_list, hide_closed_list - board_list_list: project_id*, board_id* - board_list_get / board_list_delete: project_id*, board_id*, list_id* - board_list_create: project_id*, board_id*, label_id - board_list_update: project_id*, board_id*, list_id*, position Integrations (integration_*): - integration_list: project_id* - integration_get / integration_delete: project_id*, slug* (e.g. jira, slack, discord, datadog, jenkins, mattermost, telegram) - integration_set_jira: project_id*, url*, username, password, active, api_url, jira_auth_type, jira_issue_prefix, commit_events, merge_requests_events, issues_enabled, project_keys Uploads: - upload: project_id*, filename*, file_path or content_base64 (one required). Returns Markdown embed - upload_list: project_id* - upload_delete: project_id*, upload_id* Import/Export: - export_schedule / export_status / export_download: project_id* - import_from_file: file_path or content_base64 (one required), namespace, name, path, overwrite - import_status: project_id* Pages (pages_*): - pages_get / pages_unpublish: project_id* - pages_update: project_id*, pages_https_only, pages_access_level - pages_domain_list_all: (admin only) - pages_domain_list: project_id* - pages_domain_get / pages_domain_delete: project_id*, domain* - pages_domain_create / pages_domain_update: project_id*, domain*, certificate, key Avatars: - upload_avatar: project_id*, filename*, content_base64* - download_avatar: project_id* Approval rules (approval_*): - approval_config_get: project_id* - approval_config_change: project_id*, approvals_before_merge, reset_approvals_on_push, merge_requests_author_approval, merge_requests_disable_committers_approval, require_password_to_approve - approval_rule_list: project_id* - approval_rule_get / approval_rule_delete: project_id*, rule_id* - approval_rule_create: project_id*, name*, approvals_required*, rule_type, user_ids, group_ids, protected_branch_ids, usernames, applies_to_all_protected_branches - approval_rule_update: project_id*, rule_id*, name, approvals_required, user_ids, group_ids, protected_branch_ids, usernames Pull mirroring: - pull_mirror_get: project_id* - pull_mirror_configure: project_id*, enabled, url, auth_user, auth_password, mirror_branch_regex, mirror_trigger_builds, only_mirror_protected_branches - start_mirroring: project_id* Remote mirrors (mirror_*): - mirror_list: project_id* - mirror_get / mirror_delete: project_id*, mirror_id* - mirror_get_public_key: project_id*, mirror_id* - mirror_add: project_id*, url*, enabled, keep_divergent_refs, only_protected_branches, mirror_branch_regex, auth_method (password/ssh_public_key) - mirror_edit: project_id*, mirror_id*, enabled, keep_divergent_refs, only_protected_branches, mirror_branch_regex, auth_method - mirror_force_push: project_id*, mirror_id* Maintenance: - start_housekeeping / repository_storage_get / statistics_get: project_id* Admin: - create_for_user: user_id*, name*, path, namespace_id, description, visibility, initialize_with_readme, default_branch, topics See also: gitlab_repository (files/commits), gitlab_branch, gitlab_wiki, gitlab_issue, gitlab_merge_request, gitlab_discover_project (find project ID) Push Rules (Premium+ — GITLAB_TIER=premium): - push_rule_get / push_rule_delete: project_id* - push_rule_add / push_rule_edit: project_id*, commit_message_regex, commit_message_negative_regex, branch_name_regex, author_email_regex, file_name_regex, max_file_size, deny_delete_tag, member_check, prevent_secrets, commit_committer_check, reject_unsigned_commits, reject_non_dco_commits Security Settings (Ultimate — GITLAB_TIER=ultimate): - security_settings_get: project_id* - security_settings_update: project_id*, secret_push_protection_enabled* Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
approval_config_change ```json {"additionalProperties":false,"properties":{"approvals_before_merge":{"type":"integer"},"approver_groups":{"items":{"additionalProperties":false,"properties":{"group":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","description","visibility","avatar_url","web_url","full_name","full_path","lfs_enabled","request_access_enabled"],"type":"object"}},"required":["group"],"type":["null","object"]},"type":["null","array"]},"approvers":{"items":{"additionalProperties":false,"properties":{"approved_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["user"],"type":["null","object"]},"type":["null","array"]},"disable_overriding_approvers_per_merge_request":{"type":"boolean"},"merge_requests_author_approval":{"type":"boolean"},"merge_requests_disable_committers_approval":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"type":"boolean"},"require_reauthentication_to_approve":{"type":"boolean"},"reset_approvals_on_push":{"type":"boolean"},"selective_code_owner_removals":{"type":"boolean"}},"required":["approvals_before_merge","reset_approvals_on_push","disable_overriding_approvers_per_merge_request","merge_requests_author_approval","merge_requests_disable_committers_approval","require_reauthentication_to_approve","selective_code_owner_removals","require_password_to_approve"],"type":"object"} ```
approval_config_get ```json {"additionalProperties":false,"properties":{"approvals_before_merge":{"type":"integer"},"approver_groups":{"items":{"additionalProperties":false,"properties":{"group":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"description":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"lfs_enabled":{"type":"boolean"},"name":{"type":"string"},"path":{"type":"string"},"request_access_enabled":{"type":"boolean"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","description","visibility","avatar_url","web_url","full_name","full_path","lfs_enabled","request_access_enabled"],"type":"object"}},"required":["group"],"type":["null","object"]},"type":["null","array"]},"approvers":{"items":{"additionalProperties":false,"properties":{"approved_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["user"],"type":["null","object"]},"type":["null","array"]},"disable_overriding_approvers_per_merge_request":{"type":"boolean"},"merge_requests_author_approval":{"type":"boolean"},"merge_requests_disable_committers_approval":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"require_password_to_approve":{"type":"boolean"},"require_reauthentication_to_approve":{"type":"boolean"},"reset_approvals_on_push":{"type":"boolean"},"selective_code_owner_removals":{"type":"boolean"}},"required":["approvals_before_merge","reset_approvals_on_push","disable_overriding_approvers_per_merge_request","merge_requests_author_approval","merge_requests_disable_committers_approval","require_reauthentication_to_approve","selective_code_owner_removals","require_password_to_approve"],"type":"object"} ```
approval_rule_create ```json {"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","full_name","full_path","visibility","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected_branches":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":"object"} ```
approval_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
approval_rule_get ```json {"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","full_name","full_path","visibility","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected_branches":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":"object"} ```
approval_rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"rules":{"items":{"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","full_name","full_path","visibility","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected_branches":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":"object"},"type":["null","array"]}},"required":["rules","pagination"],"type":"object"} ```
approval_rule_update ```json {"additionalProperties":false,"properties":{"applies_to_all_protected_branches":{"type":"boolean"},"approvals_required":{"type":"integer"},"contains_hidden_groups":{"type":"boolean"},"eligible_approvers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"path":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","full_name","full_path","visibility","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected_branches":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"type":["null","array"]},"report_type":{"type":"string"},"rule_type":{"type":"string"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]}},"required":["id","name","approvals_required","contains_hidden_groups","applies_to_all_protected_branches"],"type":"object"} ```
archive ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
badge_add ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
badge_edit ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_get ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
badge_list ```json {"additionalProperties":false,"properties":{"badges":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["badges","pagination"],"type":"object"} ```
badge_preview ```json {"additionalProperties":false,"properties":{"badge":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"image_url":{"type":"string"},"kind":{"type":"string"},"link_url":{"type":"string"},"name":{"type":"string"},"rendered_image_url":{"type":"string"},"rendered_link_url":{"type":"string"}},"required":["id","link_url","image_url"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["badge"],"type":"object"} ```
board_create ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"forks_count":{"type":"integer"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"last_activity_at":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"readme_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
board_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
board_get ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"forks_count":{"type":"integer"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"last_activity_at":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"readme_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
board_list ```json {"additionalProperties":false,"properties":{"boards":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"forks_count":{"type":"integer"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"last_activity_at":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"readme_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["boards","pagination"],"type":"object"} ```
board_list_create ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
board_list_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
board_list_get ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
board_list_list ```json {"additionalProperties":false,"properties":{"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["lists","pagination"],"type":"object"} ```
board_list_update ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"} ```
board_update ```json {"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"hide_backlog_list":{"type":"boolean"},"hide_closed_list":{"type":"boolean"},"id":{"type":"integer"},"labels":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color","description"],"type":["null","object"]},"type":["null","array"]},"lists":{"items":{"additionalProperties":false,"properties":{"assignee":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username"],"type":["null","object"]},"id":{"type":"integer"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","color","description"],"type":["null","object"]},"limit_metric":{"type":"string"},"max_issue_count":{"type":"integer"},"max_issue_weight":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"position":{"type":"integer"}},"required":["id","position"],"type":"object"},"type":["null","array"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","web_url"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"default_branch":{"type":"string"},"forks_count":{"type":"integer"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"last_activity_at":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"readme_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"weight":{"type":"integer"}},"required":["id","name","hide_backlog_list","hide_closed_list"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
create_for_user ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
create_fork_relation ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"forked_from_project_id":{"type":"integer"},"forked_to_project_id":{"type":"integer"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"required":["id","forked_to_project_id","forked_from_project_id"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"marked_for_deletion_on":{"type":"string"},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"permanently_removed":{"type":"boolean"},"status":{"type":"string"}},"required":["status","message","permanently_removed"],"type":"object"} ```
delete_fork_relation ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete_shared_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
download_avatar ```json {"additionalProperties":false,"properties":{"content_base64":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size_bytes":{"type":"integer"}},"required":["content_base64","size_bytes"],"type":"object"} ```
export_download ```json {"additionalProperties":false,"properties":{"content_base64":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size_bytes":{"type":"integer"}},"required":["content_base64","size_bytes"],"type":"object"} ```
export_schedule ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
export_status ```json {"additionalProperties":false,"properties":{"api_url":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"export_status":{"type":"string"},"id":{"type":"integer"},"message":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"web_url":{"type":"string"}},"required":["id","description","name","name_with_namespace","path","path_with_namespace","export_status"],"type":"object"} ```
fork ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
hook_add ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_id":{"type":"integer"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"resource_deploy_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","project_id","push_events","issues_events","confidential_issues_events","merge_requests_events","tag_push_events","note_events","confidential_note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","milestone_events","feature_flag_events","emoji_events","enable_ssl_verification","repository_update_events","resource_access_token_events","resource_deploy_token_events","vulnerability_events","token_present","signing_token_present","created_at"],"type":"object"} ```
hook_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_delete_custom_header ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_delete_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_edit ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_id":{"type":"integer"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"resource_deploy_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","project_id","push_events","issues_events","confidential_issues_events","merge_requests_events","tag_push_events","note_events","confidential_note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","milestone_events","feature_flag_events","emoji_events","enable_ssl_verification","repository_update_events","resource_access_token_events","resource_deploy_token_events","vulnerability_events","token_present","signing_token_present","created_at"],"type":"object"} ```
hook_get ```json {"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_id":{"type":"integer"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"resource_deploy_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","project_id","push_events","issues_events","confidential_issues_events","merge_requests_events","tag_push_events","note_events","confidential_note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","milestone_events","feature_flag_events","emoji_events","enable_ssl_verification","repository_update_events","resource_access_token_events","resource_deploy_token_events","vulnerability_events","token_present","signing_token_present","created_at"],"type":"object"} ```
hook_list ```json {"additionalProperties":false,"properties":{"hooks":{"items":{"additionalProperties":false,"properties":{"alert_status":{"type":"string"},"branch_filter_strategy":{"type":"string"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"custom_headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"custom_webhook_template":{"type":"string"},"deployment_events":{"type":"boolean"},"description":{"type":"string"},"disabled_until":{"type":"string"},"emoji_events":{"type":"boolean"},"enable_ssl_verification":{"type":"boolean"},"feature_flag_events":{"type":"boolean"},"id":{"type":"integer"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"milestone_events":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"project_id":{"type":"integer"},"push_events":{"type":"boolean"},"push_events_branch_filter":{"type":"string"},"releases_events":{"type":"boolean"},"repository_update_events":{"type":"boolean"},"resource_access_token_events":{"type":"boolean"},"resource_deploy_token_events":{"type":"boolean"},"signing_token_present":{"type":"boolean"},"tag_push_events":{"type":"boolean"},"token_present":{"type":"boolean"},"url":{"type":"string"},"url_variables":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"type":"object"},"type":["null","array"]},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","url","project_id","push_events","issues_events","confidential_issues_events","merge_requests_events","tag_push_events","note_events","confidential_note_events","job_events","pipeline_events","wiki_page_events","deployment_events","releases_events","milestone_events","feature_flag_events","emoji_events","enable_ssl_verification","repository_update_events","resource_access_token_events","resource_deploy_token_events","vulnerability_events","token_present","signing_token_present","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["hooks","pagination"],"type":"object"} ```
hook_set_custom_header ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_set_url_variable ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
hook_test ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
import_from_file ```json {"additionalProperties":false,"properties":{"correlation_id":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name","name_with_namespace","path","path_with_namespace","import_status"],"type":"object"} ```
import_status ```json {"additionalProperties":false,"properties":{"correlation_id":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name","name_with_namespace","path","path_with_namespace","import_status"],"type":"object"} ```
integration_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
integration_delete_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
integration_delete_group_datadog ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
integration_get ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_get_group ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_get_group_datadog ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"api_url":{"type":"string"},"archive_trace_events":{"type":["null","boolean"]},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"datadog_env":{"type":"string"},"datadog_service":{"type":"string"},"datadog_site":{"type":"string"},"datadog_tags":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_list ```json {"additionalProperties":false,"properties":{"integrations":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integrations"],"type":"object"} ```
integration_list_group ```json {"additionalProperties":false,"properties":{"integrations":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integrations"],"type":"object"} ```
integration_set ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_set_group ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_set_group_datadog ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"api_url":{"type":"string"},"archive_trace_events":{"type":["null","boolean"]},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"datadog_env":{"type":"string"},"datadog_service":{"type":"string"},"datadog_site":{"type":"string"},"datadog_tags":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
integration_set_jira ```json {"additionalProperties":false,"properties":{"integration":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"alert_events":{"type":"boolean"},"comment_on_event_enabled":{"type":"boolean"},"commit_events":{"type":"boolean"},"confidential_issues_events":{"type":"boolean"},"confidential_note_events":{"type":"boolean"},"created_at":{"type":"string"},"deployment_events":{"type":"boolean"},"group_confidential_mention_events":{"type":"boolean"},"group_mention_events":{"type":"boolean"},"id":{"type":"integer"},"incident_events":{"type":"boolean"},"inherited":{"type":"boolean"},"issues_events":{"type":"boolean"},"job_events":{"type":"boolean"},"merge_requests_events":{"type":"boolean"},"note_events":{"type":"boolean"},"pipeline_events":{"type":"boolean"},"push_events":{"type":"boolean"},"slug":{"type":"string"},"tag_push_events":{"type":"boolean"},"title":{"type":"string"},"updated_at":{"type":"string"},"vulnerability_events":{"type":"boolean"},"wiki_page_events":{"type":"boolean"}},"required":["id","title","slug","active","alert_events","commit_events","confidential_issues_events","confidential_note_events","deployment_events","group_confidential_mention_events","group_mention_events","incident_events","issues_events","job_events","merge_requests_events","note_events","pipeline_events","push_events","tag_push_events","vulnerability_events","wiki_page_events","comment_on_event_enabled","inherited"],"type":"object"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["integration"],"type":"object"} ```
label_create ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
label_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
label_get ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
label_list ```json {"additionalProperties":false,"properties":{"labels":{"items":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["labels","pagination"],"type":"object"} ```
label_promote ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
label_subscribe ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
label_unsubscribe ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
label_update ```json {"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"closed_issues_count":{"type":"integer"},"color":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"is_project_label":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"open_issues_count":{"type":"integer"},"open_merge_requests_count":{"type":"integer"},"priority":{"type":"integer"},"subscribed":{"type":"boolean"},"text_color":{"type":"string"}},"required":["id","name","color","text_color","description","open_issues_count","closed_issues_count","open_merge_requests_count","priority","is_project_label","subscribed","archived"],"type":"object"} ```
languages ```json {"additionalProperties":false,"properties":{"languages":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"percentage":{"type":"number"}},"required":["name","percentage"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["languages"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
list_forks ```json {"additionalProperties":false,"properties":{"forks":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["forks","pagination"],"type":"object"} ```
list_groups ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","full_name","full_path"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
list_invited_groups ```json {"additionalProperties":false,"properties":{"groups":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_name":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","full_name","full_path"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["groups","pagination"],"type":"object"} ```
list_starrers ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"starrers":{"items":{"additionalProperties":false,"properties":{"starred_since":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":"object"}},"required":["starred_since","user"],"type":"object"},"type":["null","array"]}},"required":["starrers","pagination"],"type":"object"} ```
list_user_contributed ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
list_user_projects ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
list_user_starred ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
list_users ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","username","state"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
member_add ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"} ```
member_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
member_edit ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"} ```
member_get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"} ```
member_inherited ```json {"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"} ```
members ```json {"additionalProperties":false,"properties":{"members":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"avatar_url":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"email":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"is_using_seat":{"type":"boolean"},"member_role":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"type":"boolean"},"admin_compliance_framework":{"type":"boolean"},"admin_group_member":{"type":"boolean"},"admin_merge_request":{"type":"boolean"},"admin_push_rules":{"type":"boolean"},"admin_terraform_state":{"type":"boolean"},"admin_vulnerability":{"type":"boolean"},"admin_web_hook":{"type":"boolean"},"archive_project":{"type":"boolean"},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"type":"boolean"},"manage_group_access_tokens":{"type":"boolean"},"manage_merge_request_settings":{"type":"boolean"},"manage_project_access_tokens":{"type":"boolean"},"manage_security_policy_link":{"type":"boolean"},"name":{"type":"string"},"read_code":{"type":"boolean"},"read_dependency":{"type":"boolean"},"read_runners":{"type":"boolean"},"read_vulnerability":{"type":"boolean"},"remove_group":{"type":"boolean"},"remove_project":{"type":"boolean"}},"required":["id","name","group_id","base_access_level"],"type":["null","object"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","access_level","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["members","pagination"],"type":"object"} ```
milestone_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","start_date","due_date","web_url","created_at","updated_at","expired"],"type":"object"} ```
milestone_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
milestone_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","start_date","due_date","web_url","created_at","updated_at","expired"],"type":"object"} ```
milestone_issues ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
milestone_list ```json {"additionalProperties":false,"properties":{"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","start_date","due_date","web_url","created_at","updated_at","expired"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["milestones","pagination"],"type":"object"} ```
milestone_merge_requests ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"source_branch":{"type":"string"},"state":{"type":"string"},"target_branch":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","title","state","source_branch","target_branch","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
milestone_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","start_date","due_date","web_url","created_at","updated_at","expired"],"type":"object"} ```
mirror_add ```json {"additionalProperties":false,"properties":{"auth_method":{"type":"string"},"enabled":{"type":"boolean"},"host_keys":{"items":{"additionalProperties":false,"properties":{"fingerprint_sha256":{"type":"string"}},"required":["fingerprint_sha256"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"keep_divergent_refs":{"type":"boolean"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","url","update_status","only_protected_branches","keep_divergent_refs"],"type":"object"} ```
mirror_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
mirror_edit ```json {"additionalProperties":false,"properties":{"auth_method":{"type":"string"},"enabled":{"type":"boolean"},"host_keys":{"items":{"additionalProperties":false,"properties":{"fingerprint_sha256":{"type":"string"}},"required":["fingerprint_sha256"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"keep_divergent_refs":{"type":"boolean"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","url","update_status","only_protected_branches","keep_divergent_refs"],"type":"object"} ```
mirror_force_push ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
mirror_get ```json {"additionalProperties":false,"properties":{"auth_method":{"type":"string"},"enabled":{"type":"boolean"},"host_keys":{"items":{"additionalProperties":false,"properties":{"fingerprint_sha256":{"type":"string"}},"required":["fingerprint_sha256"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"keep_divergent_refs":{"type":"boolean"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","url","update_status","only_protected_branches","keep_divergent_refs"],"type":"object"} ```
mirror_get_public_key ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"public_key":{"type":"string"}},"required":["public_key"],"type":"object"} ```
mirror_list ```json {"additionalProperties":false,"properties":{"mirrors":{"items":{"additionalProperties":false,"properties":{"auth_method":{"type":"string"},"enabled":{"type":"boolean"},"host_keys":{"items":{"additionalProperties":false,"properties":{"fingerprint_sha256":{"type":"string"}},"required":["fingerprint_sha256"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"keep_divergent_refs":{"type":"boolean"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","url","update_status","only_protected_branches","keep_divergent_refs"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["mirrors","pagination"],"type":"object"} ```
pages_domain_create ```json {"additionalProperties":false,"properties":{"auto_ssl_enabled":{"type":"boolean"},"certificate":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"certificate_text":{"type":"string"},"expiration":{"type":"string"},"expired":{"type":"boolean"},"subject":{"type":"string"}},"required":["subject","expired"],"type":"object"},"domain":{"type":"string"},"enabled_until":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"url":{"type":"string"},"verification_code":{"type":"string"},"verified":{"type":"boolean"}},"required":["domain","auto_ssl_enabled","url","project_id","verified","verification_code","certificate"],"type":"object"} ```
pages_domain_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
pages_domain_get ```json {"additionalProperties":false,"properties":{"auto_ssl_enabled":{"type":"boolean"},"certificate":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"certificate_text":{"type":"string"},"expiration":{"type":"string"},"expired":{"type":"boolean"},"subject":{"type":"string"}},"required":["subject","expired"],"type":"object"},"domain":{"type":"string"},"enabled_until":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"url":{"type":"string"},"verification_code":{"type":"string"},"verified":{"type":"boolean"}},"required":["domain","auto_ssl_enabled","url","project_id","verified","verification_code","certificate"],"type":"object"} ```
pages_domain_list ```json {"additionalProperties":false,"properties":{"domains":{"items":{"additionalProperties":false,"properties":{"auto_ssl_enabled":{"type":"boolean"},"certificate":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"certificate_text":{"type":"string"},"expiration":{"type":"string"},"expired":{"type":"boolean"},"subject":{"type":"string"}},"required":["subject","expired"],"type":"object"},"domain":{"type":"string"},"enabled_until":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"url":{"type":"string"},"verification_code":{"type":"string"},"verified":{"type":"boolean"}},"required":["domain","auto_ssl_enabled","url","project_id","verified","verification_code","certificate"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["domains","pagination"],"type":"object"} ```
pages_domain_list_all ```json {"additionalProperties":false,"properties":{"domains":{"items":{"additionalProperties":false,"properties":{"auto_ssl_enabled":{"type":"boolean"},"certificate":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"certificate_text":{"type":"string"},"expiration":{"type":"string"},"expired":{"type":"boolean"},"subject":{"type":"string"}},"required":["subject","expired"],"type":"object"},"domain":{"type":"string"},"enabled_until":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"url":{"type":"string"},"verification_code":{"type":"string"},"verified":{"type":"boolean"}},"required":["domain","auto_ssl_enabled","url","project_id","verified","verification_code","certificate"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["domains"],"type":"object"} ```
pages_domain_update ```json {"additionalProperties":false,"properties":{"auto_ssl_enabled":{"type":"boolean"},"certificate":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"certificate_text":{"type":"string"},"expiration":{"type":"string"},"expired":{"type":"boolean"},"subject":{"type":"string"}},"required":["subject","expired"],"type":"object"},"domain":{"type":"string"},"enabled_until":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"url":{"type":"string"},"verification_code":{"type":"string"},"verified":{"type":"boolean"}},"required":["domain","auto_ssl_enabled","url","project_id","verified","verification_code","certificate"],"type":"object"} ```
pages_get ```json {"additionalProperties":false,"properties":{"deployments":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"path_prefix":{"type":"string"},"root_directory":{"type":"string"},"url":{"type":"string"}},"required":["created_at","url","path_prefix","root_directory"],"type":"object"},"type":["null","array"]},"force_https":{"type":"boolean"},"is_unique_domain_enabled":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary_domain":{"type":"string"},"url":{"type":"string"}},"required":["url","is_unique_domain_enabled","force_https","primary_domain"],"type":"object"} ```
pages_unpublish ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
pages_update ```json {"additionalProperties":false,"properties":{"deployments":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"path_prefix":{"type":"string"},"root_directory":{"type":"string"},"url":{"type":"string"}},"required":["created_at","url","path_prefix","root_directory"],"type":"object"},"type":["null","array"]},"force_https":{"type":"boolean"},"is_unique_domain_enabled":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary_domain":{"type":"string"},"url":{"type":"string"}},"required":["url","is_unique_domain_enabled","force_https","primary_domain"],"type":"object"} ```
pull_mirror_configure ```json {"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"type":"integer"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_mirror_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches"],"type":"object"} ```
pull_mirror_get ```json {"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"type":"integer"},"last_error":{"type":"string"},"last_successful_update_at":{"type":"string"},"last_update_at":{"type":"string"},"last_update_started_at":{"type":"string"},"mirror_branch_regex":{"type":"string"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_mirror_protected_branches":{"type":"boolean"},"update_status":{"type":"string"},"url":{"type":"string"}},"required":["id","enabled","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches"],"type":"object"} ```
push_rule_add ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"project_id":{"type":"integer"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","project_id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
push_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
push_rule_edit ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"project_id":{"type":"integer"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","project_id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
push_rule_get ```json {"additionalProperties":false,"properties":{"author_email_regex":{"type":"string"},"branch_name_regex":{"type":"string"},"commit_committer_check":{"type":"boolean"},"commit_committer_name_check":{"type":"boolean"},"commit_message_negative_regex":{"type":"string"},"commit_message_regex":{"type":"string"},"created_at":{"type":"string"},"deny_delete_tag":{"type":"boolean"},"file_name_regex":{"type":"string"},"id":{"type":"integer"},"max_file_size":{"type":"integer"},"member_check":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"prevent_secrets":{"type":"boolean"},"project_id":{"type":"integer"},"reject_non_dco_commits":{"type":"boolean"},"reject_unsigned_commits":{"type":"boolean"}},"required":["id","project_id","deny_delete_tag","member_check","prevent_secrets","max_file_size","commit_committer_check","commit_committer_name_check","reject_unsigned_commits","reject_non_dco_commits"],"type":"object"} ```
repository_storage_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"disk_path":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"repository_storage":{"type":"string"}},"required":["project_id","disk_path","repository_storage"],"type":"object"} ```
restore ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
security_settings_get ```json {"additionalProperties":false,"properties":{"auto_fix_container_scanning":{"type":"boolean"},"auto_fix_dast":{"type":"boolean"},"auto_fix_dependency_scanning":{"type":"boolean"},"auto_fix_sast":{"type":"boolean"},"container_scanning_for_registry_enabled":{"type":"boolean"},"continuous_vulnerability_scans_enabled":{"type":"boolean"},"created_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"secret_push_protection_enabled":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["project_id","auto_fix_container_scanning","auto_fix_dast","auto_fix_dependency_scanning","auto_fix_sast","continuous_vulnerability_scans_enabled","container_scanning_for_registry_enabled","secret_push_protection_enabled"],"type":"object"} ```
security_settings_update ```json {"additionalProperties":false,"properties":{"auto_fix_container_scanning":{"type":"boolean"},"auto_fix_dast":{"type":"boolean"},"auto_fix_dependency_scanning":{"type":"boolean"},"auto_fix_sast":{"type":"boolean"},"container_scanning_for_registry_enabled":{"type":"boolean"},"continuous_vulnerability_scans_enabled":{"type":"boolean"},"created_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"secret_push_protection_enabled":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["project_id","auto_fix_container_scanning","auto_fix_dast","auto_fix_dependency_scanning","auto_fix_sast","continuous_vulnerability_scans_enabled","container_scanning_for_registry_enabled","secret_push_protection_enabled"],"type":"object"} ```
service_account_create ```json {"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"unconfirmed_email":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"} ```
service_account_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
service_account_list ```json {"additionalProperties":false,"properties":{"accounts":{"items":{"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"unconfirmed_email":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["accounts","pagination"],"type":"object"} ```
service_account_pat_create ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"} ```
service_account_pat_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
service_account_pat_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
service_account_pat_rotate ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","revoked","scopes","user_id","active"],"type":"object"} ```
service_account_update ```json {"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"unconfirmed_email":{"type":"string"},"username":{"type":"string"}},"required":["id","name","username","email"],"type":"object"} ```
share_with_group ```json {"additionalProperties":false,"properties":{"access_role":{"type":"string"},"group_access":{"type":"integer"},"group_id":{"type":"integer"},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
star ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
start_housekeeping ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
start_mirroring ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
statistics_get ```json {"additionalProperties":false,"properties":{"days":{"items":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"date":{"type":"string"}},"required":["date","count"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"total_fetches":{"type":"integer"}},"required":["total_fetches","days"],"type":"object"} ```
target_branch_rule_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"target_branch":{"type":"string"}},"required":["id","name","target_branch"],"type":"object"} ```
target_branch_rule_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
target_branch_rule_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"target_branch_rules":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"target_branch":{"type":"string"}},"required":["id","name","target_branch"],"type":"object"},"type":["null","array"]}},"required":["target_branch_rules"],"type":"object"} ```
transfer ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
unarchive ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
unstar ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
upload ```json {"additionalProperties":false,"properties":{"alt":{"type":"string"},"full_path":{"type":"string"},"full_url":{"type":"string"},"id":{"type":"integer"},"markdown":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["alt","url","full_path","markdown"],"type":"object"} ```
upload_avatar ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"} ```
upload_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
upload_delete_by_secret ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
upload_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"uploads":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"integer"},"size":{"type":"integer"},"uploaded_by":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","size","filename"],"type":"object"},"type":["null","array"]}},"required":["uploads","pagination"],"type":"object"} ```
### gitlab_release **Release** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_release.. Action guidance: - create: Create a release for a tag (and optionally ref when creating a new tag). Use this for publishing release notes and lifecycle artifacts. - delete: Delete a release identified by project_id and tag_name. Use this to remove a release record; the underlying Git tag is not deleted. - get: Get a release by project_id and tag_name. Use this when a specific tag is known and detailed release notes/assets are needed. - get_latest: Get the latest release for a project. Use this when the task asks for the most recent release without knowing the tag name. - link_create: Create a single release asset link. The url must be an absolute http, https, or ftp URL; do not pass local file paths or relative paths as url. To create several links at once (e.g. one per uploaded package file), use link_create_batch instead. - link_create_batch: Create multiple release asset links in one call. Use absolute URLs returned by package publish actions for package assets. - link_delete: Delete a release asset link by link_id. Use to detach a downloadable asset from a release; the underlying file or package is not removed. - link_get: Get one release asset link by link_id. Use when the task references a specific release asset link. - link_list: List asset links attached to a release tag. Use to enumerate downloadable assets for a release before getting, updating, or deleting a specific link. - link_update: Update an existing release asset link by link_id. When changing url, use an absolute http, https, or ftp URL; do not pass local file paths or relative paths as url. - list: List releases for one project. Use this when the task asks for recent releases, release history, or release notes discovery. - update: Update a release identified by project_id and tag_name. Use this to edit the title, notes, release date, or associated milestones. Parameter guidance: - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.ref: git_ref; source: Branch/tag/commit used to create tag when tag_name does not exist.; avoid: ref is only needed when creating a new tag; omit it when releasing an existing tag. - create.tag_name: git_tag; source: Release tag to publish. - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.tag_name: git_tag; source: Release tag name from list output or task context.; avoid: Deleting the release does not delete the Git tag; use gitlab_tag_delete to remove the tag. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.tag_name: git_tag; source: Release tag name from list output or task context.; avoid: Use tag_name for release lookup; do not pass release title in this field. - get_latest.project_id: scope_project; source: Project ID or full path that owns releases. - link_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_create.url: release_asset_absolute_url; source: Absolute URL accepted by GitLab release links. For package assets, use the URL returned by package publish actions.; avoid: Do not use local file paths, relative paths, or package file names as url., Do not construct package registry URLs manually when a package publish action returned the asset URL. - link_create_batch.links: release_asset_links; source: Array of link objects. Each item supports name, url, link_type, and an optional direct_asset_path (prefer it over the deprecated filepath); url must be absolute.; avoid: Prefer direct_asset_path over the deprecated filepath when setting a direct asset link., For package assets, use the package URLs returned by gitlab_package publish actions instead of constructing URLs manually. - link_create_batch.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_update.link_id: release_asset_link_identifier; source: Use the release link ID returned by release.link_create, release.link_create_batch, or release.link_list.; avoid: Do not use link_update to create a new release asset link; call link_create or link_create_batch first. - link_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - link_update.url: release_asset_absolute_url; source: Absolute URL accepted by GitLab release links. For package assets, use the URL returned by package publish actions.; avoid: Do not use local file paths, relative paths, or package file names as url., Do not construct package registry URLs manually when a package publish action returned the asset URL. - list.project_id: scope_project; source: Project ID or full path that owns releases. - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.tag_name: git_tag; source: Release tag name from list output or task context.; avoid: tag_name identifies the release to edit; it cannot be changed by this action. Manage GitLab releases and their asset links (binaries, packages, runbooks). Releases wrap a Git tag with notes, milestones and downloadable assets. Delete is destructive: it removes the release but preserves the underlying tag. When to use: publish a release for a tag, create a release and its tag from a ref, list/get/update releases, attach asset links to a release, batch-attach links after a CI build. NOT for: uploading binaries to the package registry (use gitlab_package), milestones (use gitlab_project milestone_*). Returns: - list: array of releases with pagination. - get / get_latest / create / update: release object {name, tag_name, description, released_at, assets: {sources, links}, evidences, milestones}. - link_list: array of {id, name, url, link_type, direct_asset_path}. - link_create / link_create_batch / link_get / link_update: link object(s). - delete / link_delete: {success: bool, message: string}. Errors: 404 not found (hint: verify tag_name), 403 forbidden (hint: requires Developer+ for create, Maintainer+ for update/delete), 400 invalid params (hint: link url must be absolute (http, https, or ftp)). Param conventions: * = required. All actions need project_id*. Release actions need tag_name*. Link actions need tag_name* + link_id* (except link_create / link_create_batch / link_list). Releases: - create: project_id*, tag_name*, ref (branch/SHA when tag_name does not exist or the prompt says from ref), name, description (Markdown), released_at (ISO 8601), milestones ([]string), tag_message - get: project_id*, tag_name* - get_latest: project_id* - list: project_id*, order_by (released_at/created_at), sort (asc/desc), page, per_page - update: project_id*, tag_name*, name, description, released_at, milestones - delete: project_id*, tag_name* Asset links: - link_create: project_id*, tag_name*, name*, url*, link_type (runbook/package/image/other), filepath, direct_asset_path - link_create_batch: project_id*, tag_name*, links* (array of {name, url, link_type}) - link_get: project_id*, tag_name*, link_id* - link_list: project_id*, tag_name*, page, per_page - link_update: project_id*, tag_name*, link_id*, name, url, filepath, direct_asset_path, link_type - link_delete: project_id*, tag_name*, link_id* See also: gitlab_tag (standalone tag CRUD), gitlab_package (upload binaries; link_create can point at the package URL), gitlab_project (milestones referenced by releases). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"} ```
get_latest ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"} ```
link_create ```json {"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"} ```
link_create_batch ```json {"additionalProperties":false,"properties":{"created":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"},"type":["null","array"]},"failed":{"items":{"type":"string"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["created"],"type":"object"} ```
link_delete ```json {"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"} ```
link_get ```json {"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"} ```
link_list ```json {"additionalProperties":false,"properties":{"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["links","pagination"],"type":"object"} ```
link_update ```json {"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["id","name","url","link_type","external"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"releases":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"},"type":["null","array"]}},"required":["releases","pagination"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"closed_issues_url":{"type":"string"},"closed_merge_requests_url":{"type":"string"},"edit_url":{"type":"string"},"merged_merge_requests_url":{"type":"string"},"opened_issues_url":{"type":"string"},"opened_merge_requests_url":{"type":"string"},"self":{"type":"string"}},"type":["null","object"]},"assets":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"evidence_file_path":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"direct_asset_url":{"type":"string"},"external":{"type":"boolean"},"id":{"type":"integer"},"link_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["id","name","url","external","link_type"],"type":"object"},"type":["null","array"]},"sources":{"items":{"additionalProperties":false,"properties":{"format":{"type":"string"},"url":{"type":"string"}},"required":["format","url"],"type":"object"},"type":["null","array"]}},"required":["count"],"type":["null","object"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","avatar_url","web_url"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","message"],"type":["null","object"]},"commit_path":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"evidences":{"items":{"additionalProperties":false,"properties":{"collected_at":{"type":"string"},"filepath":{"type":"string"},"sha":{"type":"string"}},"type":["null","object"]},"type":["null","array"]},"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"issue_stats":{"additionalProperties":false,"properties":{"closed":{"type":"integer"},"total":{"type":"integer"}},"type":["null","object"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["title"],"type":["null","object"]},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"released_at":{"type":"string"},"tag_name":{"type":"string"},"tag_path":{"type":"string"},"upcoming_release":{"type":"boolean"}},"required":["tag_name","name","description","created_at","released_at"],"type":"object"} ```
### gitlab_repository **Repository** Use {"action":"archive","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_repository.. Action guidance: - archive: Build a downloadable archive URL (zip/tar.gz/tar.bz2/tar) for a repository ref or SHA. Use to export a snapshot of the source tree at a point in time. - blob: Get blob metadata/content for a specific file path and ref. Use when you need one file's content or metadata after locating its path. - changelog_add: Create or append changelog entries in the repository for a version. Use in release workflows when structured changelog updates are requested. - changelog_generate: Render changelog notes for a version range from conventional commits without committing them. Use to preview release notes before writing them to a changelog file. - commit_cherry_pick: Cherry-pick a commit onto a target branch, optionally as a dry run to detect conflicts before creating the commit. Use this to port a single change to another branch. - commit_comment_create: Post a comment on a commit, optionally inline by supplying path, line, and line_type. Use this to leave review feedback on a specific commit or changed line. - commit_comments: List the comments posted on a commit with pagination. Use this before adding a comment or to review existing review notes attached to a commit. - commit_create: Create a commit by applying one or more file actions (create/update/delete/move/chmod) to a branch in a single API call. Use for multi-file changes where single-file repository APIs are not enough. - commit_diff: Get the file diffs for a single commit with offset or keyset pagination. Use unidiff=true for a git-compatible unified-diff format when applying or rendering changes. - commit_discussion_add_note: Reply to an existing commit discussion thread by adding a note. Use this after gitlab_list_commit_discussions or gitlab_create_commit_discussion to continue a thread. Supports backdating via created_at for admins/owners. - commit_discussion_create: Open a new discussion thread on a commit. Provide a position to attach an inline diff comment to a specific file and line, or omit it for a general commit discussion. Supports backdating via created_at for admins/owners. - commit_discussion_delete_note: Permanently delete a note from a commit discussion thread (destructive, requires confirmation). Only the note author or a Maintainer can delete a note. Identify the note with discussion_id plus note_id. - commit_discussion_get: Fetch one discussion thread on a commit by its discussion_id, returning every note in the thread. Use this after gitlab_list_commit_discussions when the target thread is already known. - commit_discussion_list: List all discussion threads tied to a commit SHA, including inline diff comments, system notes, and threaded replies. Use this when the prompt asks for a commit's review conversation, or before replying to a thread. Supports order_by, sort, and keyset pagination. - commit_discussion_update_note: Edit the body of a note in a commit discussion thread. Only the note author can edit the body. Identify the note with discussion_id plus note_id. Supports overriding created_at for admins/owners. - commit_get: Get detailed commit information by sha. Use this when a specific commit is referenced and full metadata, message, stats, trailers, or last pipeline are needed; set stats=true to force inclusion of line stats. - commit_list: List commits for a project/ref with date, path, and author filters plus offset or keyset pagination. Use this to inspect history before selecting a commit for diff, comments, statuses, or revert/cherry-pick workflows. - commit_merge_requests: List the merge requests that include a commit. Use this to trace which MR introduced or carries a commit. - commit_refs: List the branches and tags that contain a commit, filtered by type (branch, tag, or all) with pagination. Use this to discover where a commit has been merged or released. - commit_revert: Revert a commit on a target branch, creating a new commit that undoes its changes. Use this to back out a change that has already been merged. - commit_signature: Get the GPG, X.509, or SSH signature of a commit. Use this to verify commit authenticity; a 404 is also returned for unsigned commits. - commit_status_set: Set the pipeline/check status of a commit SHA (pending, running, success, failed, canceled, skipped). Use this for external CI or reporting integrations that publish commit check results. - commit_statuses: List the pipeline/external statuses of a commit, filtered by ref, stage, name, or pipeline_id, with pagination. Use this to check CI/CD or integration check results for a commit. - compare: Diff two refs to see what changed between them; set params.from to the base ref and params.to to the target ref. Use for release diffs or pre-merge review. - contributors: List who has committed to the repository and how much, with per-author commit counts and line stats. Use to surface top authors or attribute ownership of a codebase. - file_blame: Get per-line blame for a file, optionally restricted to a line range with range_start and range_end. Use to find which commit and author last touched each line. - file_create: Create a new file at file_path on branch with content and a commit_message. Use start_branch to create the target branch from another ref. - file_delete: Delete a file at file_path on branch with a commit_message. Destructive: requires confirmation. Pass last_commit_id for optimistic locking. - file_get: Read one file's content and metadata by project_id and file_path, optionally at a specific ref. Use when the user wants the contents of a known file; base64 content is decoded automatically. - file_history: List commit history for repository content context with path/ref filters and pagination. This action projects to the same individual tool as commit_list and preserves the same discovery guidance. - file_metadata: Get a file's metadata without its content via a HEAD request. Use to check existence or read size, encoding, blob and commit IDs cheaply. - file_raw: Get a file's raw bytes from the raw endpoint at an optional ref. Set lfs to fetch the target of an LFS pointer instead of the pointer file. - file_raw_metadata: Get a raw file's metadata without content via a HEAD request to the raw endpoint. Set lfs to resolve an LFS pointer's target. Use to check existence efficiently. - file_update: Update an existing file at file_path on branch with new content and a commit_message. Pass last_commit_id for optimistic locking to avoid overwriting concurrent changes. - list_submodules: List the Git submodules declared in a repository's .gitmodules, each with its path, remote URL, resolved GitLab project, and the commit SHA the parent currently pins. Use when the prompt asks which submodules a project has or where a submodule points. - markdown_render: Render arbitrary Markdown text to HTML through GitLab's POST /markdown endpoint. Enable gfm for GitLab Flavored Markdown and set project to resolve issue/MR/user references against a project's context. - merge_base: Find the most recent common ancestor commit shared by two or more refs. Use to compute a fork point before diffing or to understand branch divergence. - raw_blob: Fetch the raw, unparsed bytes of a blob identified by its SHA. Use when you already have the blob SHA (e.g. from the tree) and want exact file content rather than metadata. - read_submodule_file: Read a file from inside a submodule at the exact commit the parent repository pins. Resolves the submodule project via .gitmodules, finds the pinned commit SHA from the parent tree, then fetches the file from the submodule's project. Use when the prompt asks for content that lives inside a submodule rather than the parent repo. - tree: List repository tree entries for a project/ref/path. Use this to browse directories and locate files before file/blob operations. - update_submodule: Move a submodule pointer to a new commit SHA, creating a commit on the target branch in the parent repository. Provide project_id, the submodule path, branch, and commit_sha; add commit_message to override the generated message. Use when bumping a submodule to a newer revision. Parameter guidance: - archive.path: path_component; source: Path component relative to the project or repository root (no leading slash). - archive.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - archive.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - blob.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - blob.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - changelog_add.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - changelog_add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - changelog_generate.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - commit_cherry_pick.branch: git_branch; source: Target branch to receive the cherry-picked commit. - commit_cherry_pick.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_cherry_pick.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_comment_create.note: comment_body; source: Markdown comment text to attach to the commit. - commit_comment_create.path: path_component; source: Path component relative to the project or repository root (no leading slash). - commit_comment_create.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_comment_create.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_comments.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_comments.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_create.actions: commit_actions; source: Array of commit actions (create/update/delete/move/chmod) with file paths and content. - commit_create.branch: git_branch; source: Target branch receiving the commit actions. - commit_create.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_diff.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_diff.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_discussion_add_note.body: comment_body; source: Markdown text of the reply to append to the thread. - commit_discussion_add_note.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_add_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_commit_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - commit_discussion_add_note.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_discussion_create.body: comment_body; source: Markdown text for the first note of the new thread. - commit_discussion_create.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_create.position: diff_position; source: Diff anchor (base_sha, head_sha, start_sha, new_path/old_path and line) from gitlab_commit_diff; omit for a general discussion.; avoid: Inline comments require the full SHA triple plus a valid path/line from the commit diff; omit position entirely for a thread that is not tied to a line. - commit_discussion_create.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_discussion_delete_note.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_delete_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_commit_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - commit_discussion_delete_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - commit_discussion_delete_note.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_discussion_get.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_get.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_commit_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - commit_discussion_get.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_discussion_list.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_list.order_by: discussion_list_sort_field; source: Column requested for ordering threads, such as created_at or updated_at.; avoid: Combine order_by with sort; do not pass natural-language phrases as the field value. - commit_discussion_list.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_discussion_update_note.body: comment_body; source: New Markdown body that replaces the current note text. - commit_discussion_update_note.commit_sha: commit_sha; source: Commit SHA where the discussion lives, from a prior gitlab_commit_get or branch/tag response. - commit_discussion_update_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_commit_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - commit_discussion_update_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - commit_discussion_update_note.project_id: scope_project; source: Project ID or full namespace path that owns the commit. - commit_get.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_get.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_list.path: path_component; source: Path component relative to the project or repository root (no leading slash). - commit_list.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_merge_requests.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_merge_requests.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_refs.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_refs.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_revert.branch: git_branch; source: Target branch to receive the revert commit. - commit_revert.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_revert.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_signature.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_signature.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_status_set.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_status_set.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - commit_status_set.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - commit_status_set.state: status_state; source: Target state: pending, running, success, failed, canceled, or skipped. - commit_statuses.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - commit_statuses.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - commit_statuses.sha: commit_sha; source: Commit SHA from list output, branch HEAD, or task context. - compare.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - contributors.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_blame.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_blame.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - file_create.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - file_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_delete.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - file_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_get.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - file_history.path: path_component; source: Path component relative to the project or repository root (no leading slash). - file_history.project_id: scope_project; source: Project numeric ID or full path that owns the repository. - file_metadata.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_metadata.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - file_raw.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_raw.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - file_raw_metadata.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - file_raw_metadata.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - file_update.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - file_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_submodules.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_submodules.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - merge_base.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - raw_blob.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - raw_blob.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - read_submodule_file.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - read_submodule_file.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - tree.path: path_component; source: Path component relative to the project or repository root (no leading slash). - tree.project_id: scope_project; source: Project ID or path containing the repository. - tree.ref: git_ref; source: Branch/tag/commit to inspect; default branch when omitted. - update_submodule.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - update_submodule.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Browse and manage GitLab repository content: file tree, read/write/delete files, commits, diffs, cherry-pick, revert, blame, compare branches, contributors, archives, changelogs, submodules, render markdown, and commit discussions. File delete is destructive. When to use: exact file/commit operations, diffs for a known commit SHA, blame, compare, archives, submodules, markdown rendering. NOT for: full-text code search (use gitlab_search action code), MR changes/diffs by merge_request_iid (use gitlab_mr_review changes_get/raw_diffs), branch CRUD (use gitlab_branch), tag CRUD (use gitlab_tag). Behavior: - Idempotent reads: tree, blob, raw_blob, archive, compare, merge_base, contributors, file_get/raw/metadata/raw_metadata/blame, list_submodules, read_submodule_file, file_history, commit_list/get/diff/refs/comments/merge_requests/statuses/signature, commit_discussion_list/get, markdown_render, changelog_generate. - file_create / file_update / file_delete / commit_create / commit_cherry_pick / commit_revert / update_submodule / changelog_add are NON-idempotent: when preconditions are satisfied each call produces a new commit SHA; otherwise they fail (e.g. 400 on conflict, 409 on stale last_commit_id). Use last_commit_id on file_update/file_delete for optimistic-concurrency safety. - commit_status_set is idempotent per (sha, name, ref); commit_comment_create / commit_discussion_create / commit_discussion_add_note append rather than replace. commit_discussion_update_note replaces the existing note body. - Side effects: any commit-producing action triggers webhooks, CI pipelines, and protected-branch / push-rule checks; archive returns large binary payloads (base64). - File delete is destructive at the working-tree level but git history is preserved. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 (hint: confirm project_id, ref/sha, and file_path — paths are URL-encoded), 403 (hint: file_create/file_update/file_delete and commit_* require Developer+; protected branches may need Maintainer+), 400 (hint: file_update/file_delete accept last_commit_id for optimistic concurrency; commit_create needs at least one entry in actions). Param conventions: * = required. Most actions need project_id*. List actions accept page, per_page. Repository browsing: - tree: project_id*, path, ref, recursive - compare: project_id*, from*, to*, straight - contributors: project_id*, order_by (name/email/commits), sort - merge_base: project_id*, refs* (array of 2+ branch/tag/SHA) - blob / raw_blob: project_id*, sha* - archive: project_id*, sha, format (tar.gz/zip/tar.bz2), path Changelogs: - changelog_add: project_id*, version*, branch, config_file, file, from, to, message, trailer - changelog_generate: project_id*, version*, config_file, from, to, trailer Commits: - commit_create: project_id*, branch*, commit_message*, actions* (array of {action: create/update/delete/move, file_path, content, previous_path}), start_branch, author_email, author_name - commit_list: project_id*, ref_name, since, until, path, author, with_stats - file_history: alias for commit_list filtered by path* — list commits modifying a specific file - commit_get: project_id*, sha* - commit_diff: project_id*, sha* — commit SHA only; not for merge_request_iid or MR changes. - commit_refs: project_id*, sha*, type (branch/tag/all) - commit_comments / commit_merge_requests: project_id*, sha* - commit_comment_create: project_id*, sha*, note*, path, line, line_type (new/old) - commit_statuses: project_id*, sha*, ref, stage, name, pipeline_id, all - commit_status_set: project_id*, sha*, state* (pending/running/success/failed/canceled), ref, name, context, target_url, description, coverage, pipeline_id - commit_cherry_pick: project_id*, sha*, branch*, dry_run, message - commit_revert: project_id*, sha*, branch* - commit_signature: project_id*, sha* Files: - file_get / file_raw / file_metadata / file_raw_metadata / file_blame: project_id*, file_path*, ref. Use only when the exact repository file_path is known; use gitlab_search/code for text search across files. Blame also accepts range_start, range_end. - file_metadata: HEAD-style metadata for the file content endpoint (size, encoding, content_sha256, blob_id, last_commit_id, ref). - file_raw_metadata: HEAD-style metadata for the raw file endpoint (size, content_type, ref) — useful to size-check before downloading via file_raw. - file_create: project_id*, file_path*, branch*, commit_message*, content, start_branch, encoding (text/base64), author_email, author_name, execute_filemode - file_update: project_id*, file_path*, branch*, commit_message*, content, start_branch, encoding, author_email, author_name, last_commit_id, execute_filemode - file_delete: project_id*, file_path*, branch*, commit_message*, start_branch, author_email, author_name, last_commit_id Submodules: - update_submodule: project_id*, submodule* (URL-encoded path), branch*, commit_sha*, commit_message - list_submodules: project_id*, ref - read_submodule_file: project_id*, submodule_path*, file_path*, ref Markdown: - markdown_render: text*, gfm, project (path for resolving references) Commit discussions: - commit_discussion_list: project_id*, commit_id* - commit_discussion_get: project_id*, commit_id*, discussion_id* - commit_discussion_create: project_id*, commit_id*, body*, position - commit_discussion_add_note: project_id*, commit_id*, discussion_id*, body* - commit_discussion_update_note: project_id*, commit_id*, discussion_id*, note_id*, body* - commit_discussion_delete_note: project_id*, commit_id*, discussion_id*, note_id* See also: gitlab_branch, gitlab_tag, gitlab_project, gitlab_merge_request Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
archive ```json {"additionalProperties":false,"properties":{"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"string"},"sha":{"type":"string"},"url":{"type":"string"}},"required":["project_id","format","url"],"type":"object"} ```
blob ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"content_category":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"sha":{"type":"string"},"size":{"type":"integer"}},"required":["sha","size","content","content_category"],"type":"object"} ```
changelog_add ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"success":{"type":"boolean"},"version":{"type":"string"}},"required":["success","version"],"type":"object"} ```
changelog_generate ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"type":"string"}},"required":["notes"],"type":"object"} ```
commit_cherry_pick ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"} ```
commit_comment_create ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"blocked":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"type":["null","object"]},"line":{"type":"integer"},"line_type":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"path":{"type":"string"}},"required":["note"],"type":"object"} ```
commit_comments ```json {"additionalProperties":false,"properties":{"comments":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"blocked":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"type":["null","object"]},"line":{"type":"integer"},"line_type":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"path":{"type":"string"}},"required":["note"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["comments","pagination"],"type":"object"} ```
commit_create ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"} ```
commit_diff ```json {"additionalProperties":false,"properties":{"diffs":{"items":{"additionalProperties":false,"properties":{"a_mode":{"type":"string"},"b_mode":{"type":"string"},"deleted_file":{"type":"boolean"},"diff":{"type":"string"},"new_file":{"type":"boolean"},"new_path":{"type":"string"},"old_path":{"type":"string"},"renamed_file":{"type":"boolean"}},"required":["old_path","new_path","diff","new_file","renamed_file","deleted_file"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["diffs","pagination"],"type":"object"} ```
commit_discussion_add_note ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":"object"} ```
commit_discussion_create ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
commit_discussion_delete_note ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
commit_discussion_get ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
commit_discussion_list ```json {"additionalProperties":false,"properties":{"discussions":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":["null","object"]},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["discussions","pagination"],"type":"object"} ```
commit_discussion_update_note ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","resolved","resolvable","system","internal","confidential"],"type":"object"} ```
commit_get ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","message","author_name","author_email","committer_name","committer_email","committed_date","web_url","parent_ids"],"type":"object"} ```
commit_list ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["commits","pagination"],"type":"object"} ```
commit_merge_requests ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"id":{"type":"integer"},"merge_request_iid":{"type":"integer"},"source_branch":{"type":"string"},"state":{"type":"string"},"target_branch":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","merge_request_iid","title","state","source_branch","target_branch","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["merge_requests"],"type":"object"} ```
commit_refs ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"refs":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["type","name"],"type":"object"},"type":["null","array"]}},"required":["refs","pagination"],"type":"object"} ```
commit_revert ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"} ```
commit_signature ```json {"additionalProperties":false,"properties":{"commit_source":{"type":"string"},"gpg_key_id":{"type":"integer"},"gpg_key_primary_keyid":{"type":"string"},"gpg_key_subkey_id":{"type":"integer"},"gpg_key_user_email":{"type":"string"},"gpg_key_user_name":{"type":"string"},"key":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"signature_type":{"type":"string"},"verification_status":{"type":"string"},"x509_certificate":{"additionalProperties":false,"properties":{"certificate_status":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"serial_number":{"type":"string"},"subject":{"type":"string"},"subject_key_identifier":{"type":"string"},"x509_issuer":{"additionalProperties":false,"properties":{"crl_url":{"type":"string"},"id":{"type":"integer"},"subject":{"type":"string"},"subject_key_identifier":{"type":"string"}},"required":["id"],"type":["null","object"]}},"required":["id"],"type":["null","object"]}},"required":["verification_status","gpg_key_id","gpg_key_primary_keyid","gpg_key_user_name","gpg_key_user_email"],"type":"object"} ```
commit_status_set ```json {"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"author":{"additionalProperties":false,"properties":{"blocked":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"description":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"target_url":{"type":"string"}},"required":["id","sha","ref","status","name"],"type":"object"} ```
commit_statuses ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"statuses":{"items":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"author":{"additionalProperties":false,"properties":{"blocked":{"type":"boolean"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"description":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"target_url":{"type":"string"}},"required":["id","sha","ref","status","name"],"type":"object"},"type":["null","array"]}},"required":["statuses","pagination"],"type":"object"} ```
compare ```json {"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":["null","object"]},"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"},"type":["null","array"]},"compare_same_ref":{"type":"boolean"},"compare_timeout":{"type":"boolean"},"diffs":{"items":{"additionalProperties":false,"properties":{"a_mode":{"type":"string"},"b_mode":{"type":"string"},"deleted_file":{"type":"boolean"},"diff":{"type":"string"},"new_file":{"type":"boolean"},"new_path":{"type":"string"},"old_path":{"type":"string"},"renamed_file":{"type":"boolean"}},"required":["old_path","new_path","diff","new_file","renamed_file","deleted_file"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"web_url":{"type":"string"}},"required":["commits","diffs","compare_timeout","compare_same_ref","web_url"],"type":"object"} ```
contributors ```json {"additionalProperties":false,"properties":{"contributors":{"items":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"commits":{"type":"integer"},"deletions":{"type":"integer"},"email":{"type":"string"},"name":{"type":"string"}},"required":["name","email","commits","additions","deletions"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["contributors","pagination"],"type":"object"} ```
file_blame ```json {"additionalProperties":false,"properties":{"file_path":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ranges":{"items":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"}},"required":["id","message","author_name","author_email"],"type":"object"},"lines":{"items":{"type":"string"},"type":["null","array"]}},"required":["commit","lines"],"type":"object"},"type":["null","array"]}},"required":["file_path","ranges"],"type":"object"} ```
file_create ```json {"additionalProperties":false,"properties":{"branch":{"type":"string"},"commit_id":{"type":"string"},"file_path":{"type":"string"},"last_commit_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["file_path","branch"],"type":"object"} ```
file_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
file_get ```json {"additionalProperties":false,"properties":{"blob_id":{"type":"string"},"commit_id":{"type":"string"},"content":{"type":"string"},"content_category":{"type":"string"},"content_sha256":{"type":"string"},"encoding":{"type":"string"},"execute_filemode":{"type":"boolean"},"file_name":{"type":"string"},"file_path":{"type":"string"},"last_commit_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"size":{"type":"integer"}},"required":["file_name","file_path","size","encoding","content","content_category","content_sha256","ref","blob_id","commit_id","last_commit_id","execute_filemode"],"type":"object"} ```
file_history ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["commits","pagination"],"type":"object"} ```
file_metadata ```json {"additionalProperties":false,"properties":{"blob_id":{"type":"string"},"commit_id":{"type":"string"},"content":{"type":"string"},"content_sha256":{"type":"string"},"encoding":{"type":"string"},"execute_filemode":{"type":"boolean"},"file_name":{"type":"string"},"file_path":{"type":"string"},"last_commit_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"size":{"type":"integer"}},"required":["file_name","file_path","size","encoding","ref","blob_id","commit_id","last_commit_id","execute_filemode","content_sha256"],"type":"object"} ```
file_raw ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"content_category":{"type":"string"},"file_path":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"}},"required":["file_path","size","content","content_category"],"type":"object"} ```
file_raw_metadata ```json {"additionalProperties":false,"properties":{"blob_id":{"type":"string"},"commit_id":{"type":"string"},"content":{"type":"string"},"content_sha256":{"type":"string"},"encoding":{"type":"string"},"execute_filemode":{"type":"boolean"},"file_name":{"type":"string"},"file_path":{"type":"string"},"last_commit_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"size":{"type":"integer"}},"required":["file_name","file_path","size","encoding","ref","blob_id","commit_id","last_commit_id","execute_filemode","content_sha256"],"type":"object"} ```
file_update ```json {"additionalProperties":false,"properties":{"branch":{"type":"string"},"commit_id":{"type":"string"},"file_path":{"type":"string"},"last_commit_id":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["file_path","branch"],"type":"object"} ```
list_submodules ```json {"additionalProperties":false,"properties":{"count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"submodules":{"items":{"additionalProperties":false,"properties":{"commit_sha":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"resolved_project":{"type":"string"},"url":{"type":"string"}},"required":["name","path","url","commit_sha"],"type":"object"},"type":["null","array"]}},"required":["submodules","count"],"type":"object"} ```
markdown_render ```json {"additionalProperties":false,"properties":{"html":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["html"],"type":"object"} ```
merge_base ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"} ```
raw_blob ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"content_category":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"sha":{"type":"string"},"size":{"type":"integer"}},"required":["sha","size","content","content_category"],"type":"object"} ```
read_submodule_file ```json {"additionalProperties":false,"properties":{"commit_sha":{"type":"string"},"content":{"type":"string"},"encoding":{"type":"string"},"file_name":{"type":"string"},"file_path":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"resolved_project":{"type":"string"},"size":{"type":"integer"},"submodule_path":{"type":"string"}},"required":["file_name","file_path","submodule_path","resolved_project","commit_sha","size","content","encoding"],"type":"object"} ```
tree ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tree":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"mode":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"type":{"type":"string"}},"required":["id","name","type","path","mode"],"type":"object"},"type":["null","array"]}},"required":["tree","pagination"],"type":"object"} ```
update_submodule ```json {"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","message"],"type":"object"} ```
### gitlab_runner **Runner** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_runner.. Action guidance: - delete_by_token: Delete a registered runner using its authentication token instead of a runner_id. Use when the runner agent's token is available but the numeric runner_id is not; prefer runner.delete_registered when you have the runner_id. - delete_registered: Delete a registered runner by its numeric runner_id. Use this runner-registration-API variant when you have the runner_id; prefer runner.delete_by_token when only the authentication token is known. - disable_project: Remove a runner assignment from a project. Provide project_id for the project and runner_id for the runner to unassign; this detaches the runner without unregistering it (use runner.remove to delete the runner itself). - enable_project: Assign an existing runner to a project. Provide project_id for the target project and runner_id for the runner to enable; use runner.list to find an available runner_id first. - get: Get the full configuration of one runner by its numeric runner_id. Use after a runner.list result or when the prompt names a concrete runner to inspect tags, lock state, access level, and timeout. - jobs: List the CI jobs processed by a runner, identified by runner_id. Use status, order_by, and sort filters when the prompt asks which jobs a specific runner has executed. - list: List runners owned by the authenticated user. Use type, status, tag_list, and scope filters to narrow results when the prompt asks for the caller's own runners; prefer runner.list_all for an instance-wide admin view. - list_all: List every runner registered on the instance (requires an admin token). Use when the prompt asks for a fleet-wide or instance-level inventory rather than the caller's own runners. - list_group: List the runners available to a group, identified by group_id, including group-specific and shared runners. Use type and status filters when the prompt scopes runners to a group or subgroup. - list_managers: List the managers (individual runner processes/hosts) of a runner by runner_id. Use to see each manager's system id, version, platform, architecture, status, and contact IP for a single runner. - list_project: List the runners assigned to a project, identified by project_id. Use when the prompt scopes runners to one project; use runner.enable_project or runner.disable_project to change those assignments. - register: Register a new runner using a registration token. Provide the token plus optional description, tag_list, locked, run_untagged, and access_level; the response includes the runner's authentication token needed to configure the runner agent. - remove: Remove (unregister) a runner by its numeric runner_id. Use runner.list or runner.list_project to obtain the runner_id first. Destructive: the runner is permanently deleted. - reset_group_reg_token: Reset a group's runner registration token by group_id (deprecated registration flow). Use only for legacy group-scoped runner registration; modern flows use runner.register with a created token. - reset_instance_reg_token: Reset the instance-wide runner registration token (admin only, deprecated registration flow). Use only for legacy instance-level runner registration; modern flows use runner.register with a created token. - reset_project_reg_token: Reset a project's runner registration token by project_id (deprecated registration flow). Use only for legacy project-scoped runner registration; modern flows use runner.register with a created token. - reset_token: Reset a runner's authentication token by runner_id, invalidating the previous token. Use when a runner token is compromised or must be rotated; the response returns the new token. - update: Update a runner's configuration by runner_id. Set description, paused, tag_list, locked, access_level, or maximum_timeout; pass only the fields the prompt asks to change (e.g. paused to pause or resume a runner). - verify: Verify that a runner authentication token is valid without registering or modifying anything. Use to check a token before configuring a runner agent or after runner.reset_token. Parameter guidance: - delete_registered.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - disable_project.project_id: scope_owner_project; source: Use gitlab_project get/list outputs; accepts numeric ID or namespace/project path.; avoid: project_id identifies the project scope, not the runner., Use runner_id for the runner to enable, disable, reset, or inspect. - disable_project.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - enable_project.project_id: scope_owner_project; source: Use gitlab_project get/list outputs; accepts numeric ID or namespace/project path.; avoid: project_id identifies the project scope, not the runner., Use runner_id for the runner to enable, disable, reset, or inspect. - enable_project.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - get.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - jobs.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - list_group.group_id: scope_owner_group; source: Use gitlab_group get/list outputs; accepts numeric ID or full group path. - list_project.project_id: scope_owner_project; source: Use gitlab_project get/list outputs; accepts numeric ID or namespace/project path.; avoid: project_id identifies the project scope, not the runner., Use runner_id for the runner to enable, disable, reset, or inspect. - remove.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - reset_group_reg_token.group_id: scope_owner_group; source: Use gitlab_group get/list outputs; accepts numeric ID or full group path. - reset_project_reg_token.project_id: scope_owner_project; source: Use gitlab_project get/list outputs; accepts numeric ID or namespace/project path.; avoid: project_id identifies the project scope, not the runner., Use runner_id for the runner to enable, disable, reset, or inspect. - reset_token.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. - update.runner_id: runner_identifier; source: Use gitlab_runner_list, gitlab_runner_list_project, gitlab_runner_list_group, or gitlab_runner_get; runner_id is the global runner ID.; avoid: Do not pass project_id as runner_id., For project assignment actions, project_id identifies the project scope while runner_id identifies the runner. Manage GitLab CI/CD runners (instance, group, project) and runner controllers (admin, experimental): CRUD, registration tokens, and job assignments. Remove/delete/revoke and reset_token actions are destructive — revoking the registration token only invalidates future registrations; already-registered runners keep operating using their existing runner authentication tokens. Valid actions: controller_create, controller_delete, controller_get, controller_list, controller_scope_add_instance, controller_scope_add_runner, controller_scope_list, controller_scope_remove_instance, controller_scope_remove_runner, controller_token_create, controller_token_get, controller_token_list, controller_token_revoke, controller_token_rotate, controller_update, delete_by_token, delete_registered, disable_project, enable_project, get, jobs, list, list_all, list_group, list_managers, list_project, register, remove, reset_group_reg_token, reset_instance_reg_token, reset_project_reg_token, reset_token, update, verify When to use: register or pause runners, change runner tags / access_level / maximum_timeout, attach or detach runners from a project / group, rotate registration tokens, drive runner controllers (CRUD + scopes + tokens) for admins. NOT for: pipeline runs (use gitlab_pipeline), job logs / retry / play (use gitlab_job), CI variables (use gitlab_ci_variable), CI lint or templates (use gitlab_template), self-hosted GitLab Runner installation (out of scope — install via the GitLab Runner CLI). Returns: - list / list_all / list_project / list_group / list_managers / jobs / controller_list / controller_scope_list / controller_token_list: arrays with pagination {page, per_page, total, next_page}. - get / update / register / reset_*_token / enable_project / controller_get / controller_create / controller_update / controller_scope_add_* / controller_token_get / controller_token_create / controller_token_rotate: runner / controller / token object. register and reset_*_token / controller_token_create / controller_token_rotate include the cleartext token only ONCE — store it securely. - verify / remove / delete_registered / delete_by_token / disable_project / controller_delete / controller_scope_remove_* / controller_token_revoke: {success, message}. Errors: 401/403 (hint: list_all / register with admin token / runner controller actions require admin), 404 (hint: runner_id and controller_id are global, project / group context only filters), 400 (hint: access_level ∈ not_protected / ref_protected; tag_list is a comma-separated string; deprecated reset_*_reg_token endpoints — prefer controller_token_create). Param conventions: * = required. List actions accept page, per_page. Runner IDs are integers. Runner CRUD: - list: type, status, paused, tag_list (comma-separated) - list_all: (admin) type, status, paused, tag_list - get / remove: runner_id* - update: runner_id*, description, paused, tag_list, run_untagged, locked, access_level, maximum_timeout, maintenance_note - jobs: runner_id*, status (running/success/failed/canceled), order_by, sort, page, per_page Project/Group runners: - list_project: project_id*, type, status, tag_list - enable_project: project_id*, runner_id* - disable_project: project_id*, runner_id* - list_group: group_id*, type, status, tag_list Registration and tokens: - register: token*, description, paused, locked, run_untagged, tag_list, access_level, maximum_timeout, maintenance_note - delete_registered: runner_id* - delete_by_token: token* - verify: token* - reset_token: runner_id* - reset_instance_reg_token: (deprecated, no params) - reset_group_reg_token: group_id* (deprecated) - reset_project_reg_token: project_id* (deprecated) - list_managers: runner_id* Runner controllers (admin, experimental): - controller_list - controller_get / controller_delete: controller_id* - controller_create: description, state (enabled/disabled/dry_run) - controller_update: controller_id*, description, state Controller scopes: - controller_scope_list / controller_scope_add_instance / controller_scope_remove_instance: controller_id* - controller_scope_add_runner / controller_scope_remove_runner: controller_id*, runner_id* Controller tokens: - controller_token_list: controller_id* - controller_token_get / controller_token_rotate / controller_token_revoke: controller_id*, token_id* - controller_token_create: controller_id*, description See also: gitlab_pipeline, gitlab_job Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
controller_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","state"],"type":"object"} ```
controller_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
controller_get ```json {"additionalProperties":false,"properties":{"connected":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","state","connected"],"type":"object"} ```
controller_list ```json {"additionalProperties":false,"properties":{"controllers":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["controllers","pagination"],"type":"object"} ```
controller_scope_add_instance ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"}},"type":"object"} ```
controller_scope_add_runner ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_id":{"type":"integer"},"updated_at":{"type":"string"}},"required":["runner_id"],"type":"object"} ```
controller_scope_list ```json {"additionalProperties":false,"properties":{"instance_level_scopings":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_level_scopings":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"runner_id":{"type":"integer"},"updated_at":{"type":"string"}},"required":["runner_id"],"type":"object"},"type":["null","array"]}},"required":["instance_level_scopings","runner_level_scopings"],"type":"object"} ```
controller_scope_remove_instance ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
controller_scope_remove_runner ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
controller_token_create ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_controller_id":{"type":"integer"},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","runner_controller_id","description"],"type":"object"} ```
controller_token_get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_controller_id":{"type":"integer"},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","runner_controller_id","description"],"type":"object"} ```
controller_token_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tokens":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_controller_id":{"type":"integer"},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","runner_controller_id","description"],"type":"object"},"type":["null","array"]}},"required":["tokens","pagination"],"type":"object"} ```
controller_token_revoke ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
controller_token_rotate ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"runner_controller_id":{"type":"integer"},"token":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","runner_controller_id","description"],"type":"object"} ```
controller_update ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"state":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","description","state"],"type":"object"} ```
delete_by_token ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete_registered ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
disable_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
enable_project ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"access_level":{"type":"string"},"active":{"type":"boolean"},"architecture":{"type":"string"},"contacted_at":{"type":"string"},"description":{"type":"string"},"groups":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","web_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"locked":{"type":"boolean"},"maintenance_note":{"type":"string"},"maximum_timeout":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"platform":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace"],"type":"object"},"type":["null","array"]},"revision":{"type":"string"},"run_untagged":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"version":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","run_untagged","locked","access_level","active"],"type":"object"} ```
jobs ```json {"additionalProperties":false,"properties":{"jobs":{"items":{"additionalProperties":false,"properties":{"allow_failure":{"type":"boolean"},"archived":{"type":"boolean"},"artifacts":{"items":{"additionalProperties":false,"properties":{"file_format":{"type":"string"},"file_type":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer"}},"required":["file_type","filename","size","file_format"],"type":"object"},"type":["null","array"]},"artifacts_expire_at":{"type":"string"},"artifacts_file":{"additionalProperties":false,"properties":{"filename":{"type":"string"},"size":{"type":"integer"}},"required":["filename","size"],"type":["null","object"]},"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id","short_id","title","author_name"],"type":["null","object"]},"coverage":{"type":"number"},"created_at":{"type":"string"},"duration":{"type":"number"},"erased_at":{"type":"string"},"failure_reason":{"type":"string"},"finished_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"status":{"type":"string"}},"required":["id","project_id","ref","sha","status"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"ci_job_token_scope_enabled":{"type":"boolean"}},"required":["ci_job_token_scope_enabled"],"type":["null","object"]},"queued_duration":{"type":"number"},"ref":{"type":"string"},"runner":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"}},"required":["id","description","active","paused","is_shared","name","online"],"type":["null","object"]},"runner_manager":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id"],"type":["null","object"]},"source":{"type":"string"},"stage":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"linkedin":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"organization":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"twitter":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","name","username","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"}},"required":["id","name","stage","status","ref","tag","allow_failure","duration","queued_duration","web_url","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["jobs","pagination"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"runners":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"},"type":["null","array"]}},"required":["runners","pagination"],"type":"object"} ```
list_all ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"runners":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"},"type":["null","array"]}},"required":["runners","pagination"],"type":"object"} ```
list_group ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"runners":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"},"type":["null","array"]}},"required":["runners","pagination"],"type":"object"} ```
list_managers ```json {"additionalProperties":false,"properties":{"managers":{"items":{"additionalProperties":false,"properties":{"architecture":{"type":"string"},"contacted_at":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"platform":{"type":"string"},"revision":{"type":"string"},"status":{"type":"string"},"system_id":{"type":"string"},"version":{"type":"string"}},"required":["id","system_id","version","revision","platform","architecture","ip_address","status"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["managers"],"type":"object"} ```
list_project ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"runners":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"},"type":["null","array"]}},"required":["runners","pagination"],"type":"object"} ```
register ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","active"],"type":"object"} ```
remove ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
reset_group_reg_token ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["token"],"type":"object"} ```
reset_instance_reg_token ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["token"],"type":"object"} ```
reset_project_reg_token ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["token"],"type":"object"} ```
reset_token ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["token"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"access_level":{"type":"string"},"active":{"type":"boolean"},"architecture":{"type":"string"},"contacted_at":{"type":"string"},"description":{"type":"string"},"groups":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","web_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"ip_address":{"type":"string"},"is_shared":{"type":"boolean"},"locked":{"type":"boolean"},"maintenance_note":{"type":"string"},"maximum_timeout":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"online":{"type":"boolean"},"paused":{"type":"boolean"},"platform":{"type":"string"},"projects":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace"],"type":"object"},"type":["null","array"]},"revision":{"type":"string"},"run_untagged":{"type":"boolean"},"runner_type":{"type":"string"},"status":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"version":{"type":"string"}},"required":["id","description","name","paused","is_shared","runner_type","online","status","run_untagged","locked","access_level","active"],"type":"object"} ```
verify ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
### gitlab_search **Search** Use {"action":"code","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_search.. Action guidance: - code: Search code blobs and file contents. Use for text, symbols, snippets, or filenames inside repositories; do not use for project or repository name discovery. - commits: Search commit messages across global, group (group_id), or project (project_id) scope. Use to find commits by message keywords; use repository.commit_get when the SHA is already known. - issues: Search issues by title and description across global, group (group_id), or project (project_id) scope. Use when the prompt gives keywords; if it already names a project plus an issue number, use issue.get instead. - merge_requests: Search merge requests by title and description across global, group (group_id), or project (project_id) scope. Use when the prompt names keywords from an MR rather than a specific MR IID in a known project. - milestones: Search milestones by title and description across global, group (group_id), or project (project_id) scope. Use to locate a milestone by name when its ID is unknown. - notes: Search note bodies within a single project (project_id is required). Use to find comments on issues, merge requests, or commits that mention given keywords. - projects: Search project records by fuzzy project name, path fragment, namespace, or description. Use for broad discovery across many projects; if the prompt gives one exact namespace path like group/project and asks for metadata, use project.get instead. Do not use for code contents. - snippets: Search snippet titles globally (no group or project scope). Use to locate a snippet by its title keywords across the instance. - users: Search users by name or username across global, group (group_id), or project (project_id) scope. Use to resolve a person to their user record before assigning or mentioning them. - wiki: Search wiki page contents across global, group (group_id), or project (project_id) scope. Use to find wiki pages by their body or title keywords. Parameter guidance: - code.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - code.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - code.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - commits.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - commits.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - issues.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - issues.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - merge_requests.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - merge_requests.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - milestones.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - milestones.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - notes.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - projects.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - users.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - users.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - wiki.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - wiki.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Search GitLab by scope (instance / group / project) for code, MRs, issues, commits, milestones, notes, projects, snippets, users, or wiki pages. Read-only. When to use: full-text search across the supplied scope. Use action code for prompts like "search code for ..." or "find occurrences of ...". Most actions accept project_id and / or group_id; if both are omitted the search runs at instance level (an authenticated user always has implicit instance scope on GitLab.com). NOT for: discovering a project from a git remote (use gitlab_discover_project), listing labels / milestones / issues with structured filters (use gitlab_project, gitlab_issue, gitlab_merge_request — those support filters like state/labels/milestone), reading a known file path's contents (use gitlab_repository file_get). Scope precedence: project_id > group_id > global. Pagination: page, per_page (max 100). All actions need query*. Optional search_type selects the GitLab search backend: basic, advanced, or zoekt. The value must match the per-action schema enum and the requested backend must be enabled on the target GitLab instance. Returns: - code: array of {basename, data, path, ref, startline, project_id} blobs. - merge_requests / issues: arrays of MR / issue objects. - commits: array of {id, short_id, title, author_name, committed_date, project_id}. - milestones / projects / snippets / users / wiki: arrays of resource summaries. - notes: array of {id, body, notable_type, notable_id, notable_iid} entries. All lists paginate with {page, per_page, total, next_page}. Errors: 403 (hint: project_id / group_id must be visible to the caller), 404 (hint: project_id / group_id wrong or no permission), 400 (hint: query must not be empty; some scopes only support global — e.g. snippets; if search_type was supplied, retry without it or choose a backend enabled on this GitLab instance). - code: query*, project_id, group_id, ref, search_type - merge_requests / issues / commits / milestones / users / wiki: query*, project_id, group_id, search_type - notes: query*, project_id* (project-scoped only), search_type - projects: query*, group_id, search_type - snippets: query*, search_type (global only) See also: gitlab_discover_project (resolve git remote URL → project_id), gitlab_project / gitlab_merge_request / gitlab_issue (structured filtering). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
code ```json {"additionalProperties":false,"properties":{"blobs":{"items":{"additionalProperties":false,"properties":{"basename":{"type":"string"},"data":{"type":"string"},"filename":{"type":"string"},"path":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"startline":{"type":"integer"}},"required":["basename","data","path","filename","ref","startline","project_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["blobs","pagination"],"type":"object"} ```
commits ```json {"additionalProperties":false,"properties":{"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id","short_id","title","author_name","author_email","committer_name","committer_email","committed_date","web_url"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["commits","pagination"],"type":"object"} ```
issues ```json {"additionalProperties":false,"properties":{"issues":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"discussion_locked":{"type":"boolean"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"epic":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","state","web_url","name","avatar_url","username"],"type":["null","object"]},"closed_at":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"due_date_fixed":{"type":"string"},"due_date_from_milestones":{"type":"string"},"due_date_is_fixed":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"labels":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"start_date":{"type":"string"},"start_date_fixed":{"type":"string"},"start_date_from_milestones":{"type":"string"},"start_date_is_fixed":{"type":"boolean"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"url":{"type":"string"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","iid","group_id","parent_id","title","description","state","confidential","web_url","url"],"type":["null","object"]},"epic_issue_id":{"type":"integer"},"external_id":{"type":"string"},"health_status":{"type":"string"},"id":{"type":"integer"},"iid":{"description":"Project-scoped internal ID (the #N shown in GitLab); pass this value as issue_iid to other issue operations. Distinct from the global id.","type":"integer"},"issue_link_id":{"type":"integer"},"issue_type":{"type":"string"},"iteration":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"sequence":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"integer"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","sequence","group_id","title","description","state","web_url"],"type":["null","object"]},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_requests_count":{"type":"integer"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"service_desk_reply_to":{"type":"string"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"}},"required":["id","iid","title","description","state","labels","assignees","web_url","created_at","updated_at","closed_at","due_date","confidential","discussion_locked","project_id","subscribed"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["issues","pagination"],"type":"object"} ```
merge_requests ```json {"additionalProperties":false,"properties":{"merge_requests":{"items":{"additionalProperties":false,"properties":{"allow_collaboration":{"type":"boolean"},"allow_maintainer_to_push":{"type":"boolean"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"blocking_discussions_resolved":{"type":"boolean"},"changes_count":{"type":"string"},"closed_at":{"type":"string"},"closed_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"created_at":{"type":"string"},"description":{"type":"string"},"detailed_merge_status":{"type":"string"},"diff_refs":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"start_sha":{"type":"string"}},"required":["base_sha","head_sha","start_sha"],"type":["null","object"]},"discussion_locked":{"type":"boolean"},"diverged_commits_count":{"type":"integer"},"downvotes":{"type":"integer"},"draft":{"type":"boolean"},"first_contribution":{"type":"boolean"},"first_deployed_to_production_at":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_conflicts":{"type":"boolean"},"head_pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"id":{"type":"integer"},"iid":{"type":"integer"},"imported":{"type":"boolean"},"imported_from":{"type":"string"},"label_details":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"description_html":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"text_color":{"type":"string"}},"required":["id","name","color","description","description_html","text_color"],"type":["null","object"]},"type":["null","array"]},"labels":{"items":{"type":"string"},"type":["null","array"]},"latest_build_finished_at":{"type":"string"},"latest_build_started_at":{"type":"string"},"merge_after":{"type":"string"},"merge_commit_sha":{"type":"string"},"merge_error":{"type":"string"},"merge_user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"merged_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","sha","name","web_url"],"type":["null","object"]},"prepared_at":{"type":"string"},"project_id":{"type":"integer"},"rebase_in_progress":{"type":"boolean"},"references":{"additionalProperties":false,"properties":{"full":{"type":"string"},"relative":{"type":"string"},"short":{"type":"string"}},"required":["short","relative","full"],"type":["null","object"]},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"squash_commit_sha":{"type":"string"},"squash_on_merge":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user":{"additionalProperties":false,"properties":{"can_merge":{"type":"boolean"}},"required":["can_merge"],"type":["null","object"]},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"work_in_progress":{"type":"boolean"}},"required":["id","iid","project_id","title","description","state","source_branch","target_branch","web_url","draft","has_conflicts","blocking_discussions_resolved","discussion_locked","assignees","reviewers","labels","created_at","updated_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["merge_requests","pagination"],"type":"object"} ```
milestones ```json {"additionalProperties":false,"properties":{"milestones":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":"boolean"},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state","start_date","due_date","web_url","created_at","updated_at","expired"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["milestones","pagination"],"type":"object"} ```
notes ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","updated_at","noteable_type","noteable_id","system"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["notes","pagination"],"type":"object"} ```
projects ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"projects":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"cluster_agents":{"type":"string"},"events":{"type":"string"},"issues":{"type":"string"},"labels":{"type":"string"},"members":{"type":"string"},"merge_requests":{"type":"string"},"repo_branches":{"type":"string"},"self":{"type":"string"}},"required":["self","issues","merge_requests","repo_branches","labels","events","members","cluster_agents"],"type":["null","object"]},"allow_merge_on_skipped_pipeline":{"type":"boolean"},"allow_pipeline_trigger_approve_deployment":{"type":"boolean"},"analytics_access_level":{"type":"string"},"approvals_before_merge":{"type":"integer"},"archived":{"type":"boolean"},"auto_cancel_pending_pipelines":{"type":"string"},"auto_devops_deploy_strategy":{"type":"string"},"auto_devops_enabled":{"type":"boolean"},"auto_duo_code_review_enabled":{"type":"boolean"},"autoclose_referenced_issues":{"type":"boolean"},"avatar_url":{"type":"string"},"build_coverage_regex":{"type":"string"},"build_git_strategy":{"type":"string"},"build_timeout":{"type":"integer"},"builds_access_level":{"type":"string"},"can_create_merge_request_in":{"type":"boolean"},"ci_allow_fork_pipelines_to_run_in_parent_project":{"type":"boolean"},"ci_config_path":{"type":"string"},"ci_default_git_depth":{"type":"integer"},"ci_delete_pipelines_in_seconds":{"type":"integer"},"ci_display_pipeline_variables":{"type":"boolean"},"ci_forward_deployment_enabled":{"type":"boolean"},"ci_forward_deployment_rollback_allowed":{"type":"boolean"},"ci_id_token_sub_claim_components":{"items":{"type":"string"},"type":["null","array"]},"ci_job_token_scope_enabled":{"type":"boolean"},"ci_opt_in_jwt":{"type":"boolean"},"ci_pipeline_variables_minimum_override_role":{"type":"string"},"ci_push_repository_for_job_token_allowed":{"type":"boolean"},"ci_restrict_pipeline_cancellation_role":{"type":"string"},"ci_separated_caches":{"type":"boolean"},"cicd_catalog_enabled":{"type":"boolean"},"compliance_frameworks":{"items":{"type":"string"},"type":["null","array"]},"container_expiration_policy":{"additionalProperties":false,"properties":{"cadence":{"type":"string"},"enabled":{"type":"boolean"},"keep_n":{"type":"integer"},"name_regex":{"type":"string"},"name_regex_delete":{"type":"string"},"name_regex_keep":{"type":"string"},"next_run_at":{"type":"string"},"older_than":{"type":"string"}},"required":["cadence","keep_n","older_than","name_regex_delete","name_regex_keep","enabled"],"type":["null","object"]},"container_registry_access_level":{"type":"string"},"container_registry_enabled":{"type":"boolean"},"container_registry_image_prefix":{"type":"string"},"created_at":{"type":"string"},"creator_id":{"type":"integer"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"default_branch":{"type":"string"},"description":{"type":"string"},"emails_disabled":{"type":"boolean"},"emails_enabled":{"type":"boolean"},"empty_repo":{"type":"boolean"},"enforce_auth_checks_on_uploads":{"type":"boolean"},"environments_access_level":{"type":"string"},"external_authorization_classification_label":{"type":"string"},"feature_flags_access_level":{"type":"string"},"forked_from_project":{"additionalProperties":false,"properties":{"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"repository_storage":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","name_with_namespace","path","path_with_namespace","http_url_to_repo","web_url","repository_storage"],"type":["null","object"]},"forking_access_level":{"type":"string"},"forks_count":{"type":"integer"},"group_runners_enabled":{"type":"boolean"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"import_error":{"type":"string"},"import_status":{"type":"string"},"import_type":{"type":"string"},"import_url":{"type":"string"},"infrastructure_access_level":{"type":"string"},"issue_branch_template":{"type":"string"},"issues_access_level":{"type":"string"},"issues_enabled":{"type":"boolean"},"issues_template":{"type":"string"},"jobs_enabled":{"type":"boolean"},"keep_latest_artifact":{"type":"boolean"},"last_activity_at":{"type":"string"},"lfs_enabled":{"type":"boolean"},"license":{"additionalProperties":false,"properties":{"html_url":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"source_url":{"type":"string"}},"required":["key","name","nickname","html_url","source_url"],"type":["null","object"]},"license_url":{"type":"string"},"marked_for_deletion_at":{"type":"string"},"marked_for_deletion_on":{"type":"string"},"max_artifacts_size":{"type":"integer"},"merge_commit_template":{"type":"string"},"merge_method":{"type":"string"},"merge_pipelines_enabled":{"type":"boolean"},"merge_request_title_regex":{"type":"string"},"merge_request_title_regex_description":{"type":"string"},"merge_requests_access_level":{"type":"string"},"merge_requests_enabled":{"type":"boolean"},"merge_requests_template":{"type":"string"},"merge_trains_enabled":{"type":"boolean"},"merge_trains_skip_train_allowed":{"type":"boolean"},"mirror":{"type":"boolean"},"mirror_overwrites_diverged_branches":{"type":"boolean"},"mirror_trigger_builds":{"type":"boolean"},"mirror_user_id":{"type":"integer"},"model_experiments_access_level":{"type":"string"},"model_registry_access_level":{"type":"string"},"monitor_access_level":{"type":"string"},"mr_default_target_self":{"type":"boolean"},"mr_default_title_template":{"type":"string"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"namespace":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"integer"},"path":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path","parent_id","avatar_url","web_url"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"only_allow_merge_if_all_discussions_are_resolved":{"type":"boolean"},"only_allow_merge_if_pipeline_succeeds":{"type":"boolean"},"only_mirror_protected_branches":{"type":"boolean"},"open_issues_count":{"type":"integer"},"operations_access_level":{"type":"string"},"owner":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"locked":{"type":"boolean"},"name":{"type":"string"},"public_email":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","locked","avatar_url","web_url"],"type":["null","object"]},"package_registry_access_level":{"type":"string"},"packages_enabled":{"type":"boolean"},"pages_access_level":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"},"permissions":{"additionalProperties":false,"properties":{"group_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]},"project_access":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"notification_level":{"type":"integer"}},"required":["access_level","notification_level"],"type":["null","object"]}},"required":["project_access","group_access"],"type":["null","object"]},"pre_receive_secret_detection_enabled":{"type":"boolean"},"prevent_merge_without_jira_issue":{"type":"boolean"},"printing_merge_request_link_enabled":{"type":"boolean"},"protect_merge_request_pipelines":{"type":["null","boolean"]},"public_builds":{"type":"boolean"},"public_jobs":{"type":"boolean"},"readme_url":{"type":"string"},"releases_access_level":{"type":"string"},"remove_source_branch_after_merge":{"type":"boolean"},"repository_access_level":{"type":"string"},"repository_storage":{"type":"string"},"request_access_enabled":{"type":"boolean"},"requirements_access_level":{"type":"string"},"requirements_enabled":{"type":"boolean"},"resolve_outdated_diff_discussions":{"type":"boolean"},"resource_group_default_process_mode":{"type":"string"},"restrict_user_defined_variables":{"type":"boolean"},"reviewer_assignment_strategy":{"type":"string"},"runner_token_expiration_interval":{"type":"integer"},"runners_token":{"type":"string"},"security_and_compliance_access_level":{"type":"string"},"security_and_compliance_enabled":{"type":"boolean"},"service_desk_address":{"type":"string"},"service_desk_enabled":{"type":"boolean"},"shared_runners_enabled":{"type":"boolean"},"shared_with_groups":{"items":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"group_access_level":{"type":"integer"},"group_full_path":{"type":"string"},"group_id":{"type":"integer"},"group_name":{"type":"string"}},"required":["group_id","group_name","group_full_path","group_access_level"],"type":"object"},"type":["null","array"]},"snippets_access_level":{"type":"string"},"snippets_enabled":{"type":"boolean"},"squash_commit_template":{"type":"string"},"squash_option":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"star_count":{"type":"integer"},"statistics":{"additionalProperties":false,"properties":{"commit_count":{"type":"integer"},"container_registry_size":{"type":"integer"},"job_artifacts_size":{"type":"integer"},"lfs_objects_size":{"type":"integer"},"packages_size":{"type":"integer"},"pipeline_artifacts_size":{"type":"integer"},"repository_size":{"type":"integer"},"snippets_size":{"type":"integer"},"storage_size":{"type":"integer"},"uploads_size":{"type":"integer"},"wiki_size":{"type":"integer"}},"required":["commit_count","storage_size","repository_size","wiki_size","lfs_objects_size","job_artifacts_size","pipeline_artifacts_size","packages_size","snippets_size","uploads_size","container_registry_size"],"type":["null","object"]},"suggestion_commit_message":{"type":"string"},"tag_list":{"items":{"type":"string"},"type":["null","array"]},"topics":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"},"wiki_access_level":{"type":"string"},"wiki_enabled":{"type":"boolean"}},"required":["id","name","path","path_with_namespace","visibility","default_branch","web_url","description","archived","topics","only_allow_merge_if_pipeline_succeeds","only_allow_merge_if_all_discussions_are_resolved","remove_source_branch_after_merge","created_at","request_access_enabled","lfs_enabled","allow_merge_on_skipped_pipeline","merge_pipelines_enabled","merge_trains_enabled","autoclose_referenced_issues","resolve_outdated_diff_discussions","ci_display_pipeline_variables","allow_pipeline_trigger_approve_deployment","prevent_merge_without_jira_issue","printing_merge_request_link_enabled","cicd_catalog_enabled","ci_forward_deployment_enabled","ci_forward_deployment_rollback_allowed","ci_push_repository_for_job_token_allowed","ci_separated_caches","ci_job_token_scope_enabled","ci_opt_in_jwt","ci_allow_fork_pipelines_to_run_in_parent_project","auto_devops_enabled","keep_latest_artifact","merge_trains_skip_train_allowed","public_jobs","mirror","mirror_trigger_builds","only_mirror_protected_branches","mirror_overwrites_diverged_branches","security_and_compliance_enabled","pre_receive_secret_detection_enabled","auto_duo_code_review_enabled","service_desk_enabled","requirements_enabled","emails_enabled","group_runners_enabled","can_create_merge_request_in","mr_default_target_self","issues_enabled","merge_requests_enabled","wiki_enabled","jobs_enabled","restrict_user_defined_variables","emails_disabled"],"type":"object"},"type":["null","array"]}},"required":["projects","pagination"],"type":"object"} ```
snippets ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"snippets":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"created_at":{"type":"string"},"description":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","author","web_url","raw_url","created_at","updated_at"],"type":"object"},"type":["null","array"]}},"required":["snippets","pagination"],"type":"object"} ```
users ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
wiki ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"wiki_blobs":{"items":{"additionalProperties":false,"properties":{"content":{"type":"string"},"format":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["slug","title","content","format"],"type":"object"},"type":["null","array"]}},"required":["wiki_blobs","pagination"],"type":"object"} ```
### gitlab_snippet **Snippet** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_snippet.. Action guidance: - content: Read the raw content of a single-file personal snippet by snippet_id. For multi-file snippets use snippet.file_content with a specific file path. - create: Create a personal snippet. Provide title plus either files[] (multi-file) or file_name and content (single-file). Set visibility to private, internal, or public. - delete: Permanently delete a personal snippet by snippet_id. Destructive; confirm the snippet ID before calling. - discussion_add_note: Reply to an existing snippet discussion thread by adding a note. Use this after gitlab_list_snippet_discussions or gitlab_create_snippet_discussion to continue a thread. Supports backdating via created_at for admins/owners. - discussion_create: Open a new discussion thread on a project snippet with an initial note. Use this to start a threaded conversation rather than a flat comment (use gitlab_snippet_note_create for a non-threaded note). Supports backdating via created_at for admins/owners. - discussion_delete_note: Permanently delete a note from a snippet discussion thread (destructive, requires confirmation). Only the note author or a Maintainer can delete a note. Identify the note with discussion_id plus note_id. - discussion_get: Fetch one discussion thread on a project snippet by its discussion_id, returning every note in the thread. Use this after gitlab_list_snippet_discussions when the target thread is already known. - discussion_list: List all discussion threads on one project snippet, including system notes and threaded replies. Use this when the prompt asks for a snippet's comment threads or conversation history, or before replying to a thread with gitlab_add_snippet_discussion_note. Supports order_by, sort, and keyset pagination. - discussion_update_note: Edit the body of an existing note in a snippet discussion thread. Only the note author can edit a note. Identify the note with discussion_id plus note_id. - emoji_snippet_create: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_delete: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_get: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_list: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_note_create: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_note_delete: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_note_get: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - emoji_snippet_note_list: Manage snippet and snippet-note award emojis (list/get/create/delete). Use for reaction workflows around snippets. - explore: List public snippets visible across the instance. Use order_by/sort and keyset pagination to browse public snippets the user does not own. - file_content: Read the raw content of one file inside a multi-file personal snippet at a given Git ref. Use when the snippet has multiple files and you need a specific one. - get: Fetch one personal snippet by its global snippet_id. Use after a snippet list or when the prompt already names a concrete snippet ID; returns a structured not-found result on 404. - list: List snippets owned by the authenticated user. Use order_by and sort for keyset ordering and page/per_page or page_token for pagination when the prompt asks for the caller's own snippets. - list_all: List every snippet on the instance (admin only). Use created_after/created_before and repository_storage filters, plus order_by/sort and keyset pagination, for cross-instance audits. - note_create: Add a comment (note) to a project snippet. Use when the task asks to comment on, reply to, or annotate an existing snippet. - note_delete: Permanently delete a snippet note. Destructive and irreversible. Only the note author or a project Maintainer/Owner can delete a note; system notes cannot be deleted. Requires explicit confirmation. - note_get: Get one snippet note by params.note_id. Use when the task references a specific comment or note ID on a snippet. - note_list: List all comments (notes) on a project snippet, including system notes. Use when the task asks to read a snippet's discussion, recent comments, or activity. Supports order_by, sort, and keyset pagination. - note_update: Replace the body of an existing snippet note. Only the original author or a Maintainer/Owner can edit a note; system notes cannot be edited. Use when the task asks to edit, fix, or amend a comment. - project_content: Read the raw content of a project snippet by project_id and snippet_id. - project_create: Create a project snippet. Provide project_id and title plus either files[] (multi-file) or file_name and content (single-file); set visibility to private, internal, or public. - project_delete: Permanently delete a project snippet by project_id and snippet_id. Destructive; confirm both identifiers before calling. - project_get: Fetch one project snippet by project_id and snippet_id. Use after a project snippet list or when both identifiers are already known. - project_list: List snippets belonging to one project. Provide project_id; use order_by/sort and keyset pagination when the prompt scopes snippets to a known project. - project_update: Update a project snippet's metadata or files. Pass files[] with action set to create, update, delete, or move and use the file_path from project_get; use file_name/content only for single-file legacy snippets. - update: Update a personal snippet's metadata or files. Pass files[] with action set to create, update, delete, or move to modify content; use file_name/content only for single-file legacy snippets. Parameter guidance: - discussion_add_note.body: comment_body; source: Markdown text of the reply to append to the thread. - discussion_add_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_snippet_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_add_note.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_add_note.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - discussion_create.body: comment_body; source: Markdown text for the first note of the new thread. - discussion_create.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_create.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - discussion_delete_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_snippet_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_delete_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_delete_note.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_delete_note.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - discussion_get.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_snippet_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_get.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_get.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - discussion_list.order_by: discussion_list_sort_field; source: Column requested for ordering threads, such as created_at or updated_at.; avoid: Combine order_by with sort; do not pass natural-language phrases as the field value. - discussion_list.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_list.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - discussion_update_note.discussion_id: discussion_id; source: Discussion thread id from a prior gitlab_list_snippet_discussions response.; avoid: The discussion_id is the thread hash, not a note id; pass note_id separately for note actions. - discussion_update_note.note_id: note_id; source: Numeric note id within the discussion thread, from a prior discussion response.; avoid: note_id is the numeric id of a single note; discussion_id is the thread hash. - discussion_update_note.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or a personal snippet id. - discussion_update_note.snippet_id: snippet_id; source: Numeric snippet id within the project, usually from a prior gitlab_project_snippet_list response.; avoid: Use the project snippet id, not a personal snippet id or the discussion id. - emoji_snippet_create.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_create.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_delete.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_delete.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_get.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_get.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_list.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_list.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_note_create.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_note_create.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_note_delete.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_note_delete.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_note_get.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_note_get.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - emoji_snippet_note_list.project_id: scope_project; source: Project ID or path that owns the snippet. - emoji_snippet_note_list.snippet_id: snippet_iid; source: Snippet IID from snippet list/get outputs. - file_content.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - note_create.body; source: The comment text the user wants to post; Markdown is supported.; avoid: body is the comment content, not a snippet content update; updating the snippet body is snippet.update. - note_create.created_at; source: Optional RFC 3339 timestamp to backdate the note; requires admin or owner permissions.; avoid: created_at is ignored unless you have administrator or project/group owner permissions. - note_create.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or global snippet ID. - note_create.snippet_id: snippet_id; source: Numeric snippet ID from a prior gitlab_snippet_list or gitlab_project_snippet_list result.; avoid: snippet_id is the project snippet ID, not the note_id. - note_delete.note_id: note_id; source: Numeric note ID from a prior snippet.note_list or snippet.note_create result.; avoid: note_id is the comment ID, not the snippet_id; obtain it from snippet.note_list. - note_delete.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or global snippet ID. - note_delete.snippet_id: snippet_id; source: Numeric snippet ID from a prior gitlab_snippet_list or gitlab_project_snippet_list result.; avoid: snippet_id is the project snippet ID, not the note_id. - note_get.note_id: note_id; source: Numeric note ID from a prior snippet.note_list or snippet.note_create result.; avoid: note_id is the comment ID, not the snippet_id; obtain it from snippet.note_list. - note_get.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or global snippet ID. - note_get.snippet_id: snippet_id; source: Numeric snippet ID from a prior gitlab_snippet_list or gitlab_project_snippet_list result.; avoid: snippet_id is the project snippet ID, not the note_id. - note_list.order_by; source: Field to order notes by: created_at or updated_at.; avoid: Combine order_by with sort; pass the field name, not a phrase like 'newest first'. - note_list.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or global snippet ID. - note_list.snippet_id: snippet_id; source: Numeric snippet ID from a prior gitlab_snippet_list or gitlab_project_snippet_list result.; avoid: snippet_id is the project snippet ID, not the note_id. - note_update.body; source: The new comment text that replaces the existing note body; Markdown is supported.; avoid: This replaces the whole note body; it does not append to it. - note_update.note_id: note_id; source: Numeric note ID from a prior snippet.note_list or snippet.note_create result.; avoid: note_id is the comment ID, not the snippet_id; obtain it from snippet.note_list. - note_update.project_id: scope_project; source: Project ID or full namespace path that owns the snippet.; avoid: Use the snippet's parent project here, not a group path or global snippet ID. - note_update.snippet_id: snippet_id; source: Numeric snippet ID from a prior gitlab_snippet_list or gitlab_project_snippet_list result.; avoid: snippet_id is the project snippet ID, not the note_id. - project_content.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - project_create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - project_delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - project_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - project_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - project_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab snippets (personal, project-scoped, and explore feed): CRUD snippet metadata and content, threaded discussions, notes (project snippets only), and award emoji on snippets and snippet notes. Delete is destructive and irreversible. When to use: store/share standalone code or text outside a repo, comment on existing snippets, react with emoji on a snippet or snippet note, browse public snippets via explore. NOT for: files in a repository (use gitlab_repository), wiki pages (use gitlab_wiki), MR/issue notes (use gitlab_mr_review or gitlab_issue), custom group emoji (use gitlab_custom_emoji — enterprise). Returns: - *_list / list_all / explore: array with pagination. - *_get / *_create / *_update: snippet object {id, title, file_name, files, visibility, author, web_url, raw_url}. - content / project_content: raw snippet body as text. - file_content: raw content of a single file in a multi-file snippet. - discussion_* / note_*: discussion or note object. - emoji_*: award emoji object. - *_delete: {success: bool, message: string}. Errors: 404 not found, 403 forbidden (hint: requires Reporter+ for project snippets; private snippets require ownership), 400 invalid params (hint: visibility ∈ private/internal/public). Param conventions: * = required. List actions accept page, per_page. visibility ∈ private/internal/public. Personal snippets: - list / list_all / explore: (no required params) - get / content: snippet_id* - file_content: snippet_id*, file_path* - create: title*, file_name*, content*, visibility, description - update: snippet_id*, title, file_name, content, visibility, description - delete: snippet_id* Project snippets: - project_list: project_id* - project_get / project_content: project_id*, snippet_id* - project_create: project_id*, title*, file_name*, content*, visibility - project_update: project_id*, snippet_id*, title, visibility, files* to change snippet file content. For updating existing content use files: [{"action":"update","file_path":"","content":"..."}]; do not put file_path/content directly under params. - project_delete: project_id*, snippet_id* Discussions (threaded): - discussion_list: snippet_id* - discussion_get: snippet_id*, discussion_id* - discussion_create: snippet_id*, body* - discussion_add_note: snippet_id*, discussion_id*, body* - discussion_update_note: snippet_id*, discussion_id*, note_id*, body* - discussion_delete_note: snippet_id*, discussion_id*, note_id* Notes (project snippets only) — all need project_id*, snippet_id*: - note_list: order_by, sort - note_get / note_delete: note_id* - note_create: body* - note_update: note_id*, body* Award emoji — all need project_id*, snippet_id* (snippet emoji) or project_id*, snippet_id*, note_id* (note emoji): - emoji_snippet_list / emoji_snippet_note_list: (no extra params) - emoji_snippet_get / emoji_snippet_note_get: award_id* - emoji_snippet_create / emoji_snippet_note_create: name* - emoji_snippet_delete / emoji_snippet_note_delete: award_id* See also: gitlab_repository (project files and commits), gitlab_wiki (long-form project docs), gitlab_project (project membership and visibility), gitlab_custom_emoji (define group-level custom emoji). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
content ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet_id":{"type":"integer"}},"required":["snippet_id","content"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
discussion_add_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
discussion_create ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_delete_note ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
discussion_get ```json {"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"} ```
discussion_list ```json {"additionalProperties":false,"properties":{"discussions":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"individual_note":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"},"type":["null","array"]}},"required":["id","individual_note","notes"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["discussions","pagination"],"type":"object"} ```
discussion_update_note ```json {"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"system":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["id","body","author","created_at","system"],"type":"object"} ```
emoji_snippet_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_snippet_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_snippet_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_snippet_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
emoji_snippet_note_create ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_snippet_note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
emoji_snippet_note_get ```json {"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"} ```
emoji_snippet_note_list ```json {"additionalProperties":false,"properties":{"award_emoji":{"items":{"additionalProperties":false,"properties":{"awardable_id":{"type":"integer"},"awardable_type":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]}},"required":["id","name","awardable_id","awardable_type"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["award_emoji","pagination"],"type":"object"} ```
explore ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"snippets":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"},"type":["null","array"]}},"required":["snippets","pagination"],"type":"object"} ```
file_content ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"file_name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"ref":{"type":"string"},"snippet_id":{"type":"integer"}},"required":["snippet_id","ref","file_name","content"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"snippets":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"},"type":["null","array"]}},"required":["snippets","pagination"],"type":"object"} ```
list_all ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"snippets":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"},"type":["null","array"]}},"required":["snippets","pagination"],"type":"object"} ```
note_create ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system","internal","confidential"],"type":"object"} ```
note_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
note_get ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system","internal","confidential"],"type":"object"} ```
note_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notes":{"items":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system","internal","confidential"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["notes","pagination"],"type":"object"} ```
note_update ```json {"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","body","created_at","system","internal","confidential"],"type":"object"} ```
project_content ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet_id":{"type":"integer"}},"required":["snippet_id","content"],"type":"object"} ```
project_create ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
project_delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
project_get ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
project_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"snippets":{"items":{"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"},"type":["null","array"]}},"required":["snippets","pagination"],"type":"object"} ```
project_update ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"author":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"}},"required":["id","username","email","name","state"],"type":["null","object"]},"created_at":{"type":["null","string"]},"description":{"type":"string"},"file_name":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"path":{"type":"string"},"raw_url":{"type":"string"}},"required":["path","raw_url"],"type":"object"},"type":["null","array"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"repository_storage":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","file_name","description","visibility","web_url","raw_url"],"type":"object"} ```
### gitlab_storage_move **Storage Move** Use {"action":"get_project","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_storage_move.. Action guidance: - get_project: Get one repository storage move by its global move id (admin-only, self-managed). Use after a retrieve_all listing to inspect a specific move's state and shards. - get_project_for_project: Get one repository storage move scoped to a specific project by project_id plus move id (admin-only, self-managed). Use to inspect a known move on a known project. - get_snippet: Fetch a single snippet repository storage move by its global move ID. Use when you already have a move ID from a list and need its current state, source shard, and destination shard. - get_snippet_for_snippet: Fetch a single repository storage move scoped to a specific snippet, using both the snippet ID and the move ID. Use to confirm a particular move belongs to that snippet and inspect its state and shards. - retrieve_all_project: List every project repository storage move on the instance (admin-only, self-managed). Use to audit in-flight or completed Gitaly shard migrations across all projects before scheduling new ones. - retrieve_all_snippet: List every snippet repository storage move across the whole instance. Use to audit in-flight or completed Gitaly shard migrations of snippet repositories, ordered and paginated, when you do not have a specific snippet in mind. - retrieve_project: List repository storage moves for one project (admin-only, self-managed). Use to track that project's Gitaly shard migration history or in-flight move state. - retrieve_snippet: List repository storage moves scoped to one snippet by snippet ID. Use to track the Gitaly shard migration history of a single snippet's repository, ordered and paginated. - schedule_all_project: Schedule every project on one Gitaly storage shard to migrate to another (admin-only, self-managed). Bulk operation used to drain a shard; may enqueue many concurrent moves. - schedule_all_snippet: Schedule repository storage moves for every snippet sitting on a given source Gitaly storage shard. Use to bulk-evacuate or drain a shard of all snippet repositories in one operation; moves run asynchronously. - schedule_project: Schedule a single project's repository to migrate to another Gitaly storage shard (admin-only, self-managed). Omit destination_storage_name to let GitLab pick a shard by configured weight. - schedule_snippet: Schedule a repository storage move for one snippet onto a destination Gitaly storage shard. Use to migrate a single snippet's repository when rebalancing or evacuating a shard; the move runs asynchronously. Parameter guidance: - get_project.id: target_resource; source: Numeric ID of the repository storage move, taken from a retrieve_all/retrieve_project listing.; avoid: This is the storage move record ID, not the project ID. - get_project_for_project.id: target_resource; source: Numeric ID of the repository storage move, taken from a retrieve_all/retrieve_project listing.; avoid: This is the storage move record ID, not the project ID. - get_project_for_project.project_id: scope_project; source: Numeric project ID whose repository storage move(s) you want to inspect or schedule.; avoid: This endpoint takes the numeric project ID only, not a namespace path or the storage move ID. - retrieve_project.project_id: scope_project; source: Numeric project ID whose repository storage move(s) you want to inspect or schedule.; avoid: This endpoint takes the numeric project ID only, not a namespace path or the storage move ID. - schedule_all_project.destination_storage_name: config_value; source: Name of a Gitaly storage shard already configured on the instance to move the repository to.; avoid: Must reference an existing storage shard; cannot equal the shard the project currently lives on. Omit to let GitLab pick a shard by weight. - schedule_all_project.source_storage_name: config_value; source: Name of the Gitaly storage shard to drain; every project on this shard is scheduled to move.; avoid: This is the shard to move projects away from, not the destination. - schedule_project.destination_storage_name: config_value; source: Name of a Gitaly storage shard already configured on the instance to move the repository to.; avoid: Must reference an existing storage shard; cannot equal the shard the project currently lives on. Omit to let GitLab pick a shard by weight. - schedule_project.project_id: scope_project; source: Numeric project ID whose repository storage move(s) you want to inspect or schedule.; avoid: This endpoint takes the numeric project ID only, not a namespace path or the storage move ID. Manage repository storage moves for projects, groups, and snippets (admin only). Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Errors: 404 not found, 403 forbidden — with actionable hints. Param conventions: * = required. retrieve_all/list actions accept page, per_page. Each resource type (project/group/snippet) has the same action pattern. Project storage moves: - retrieve_all_project: page, per_page - retrieve_project: project_id*, page, per_page - get_project: id* - get_project_for_project: project_id*, id* - schedule_project: project_id*, destination_storage_name - schedule_all_project: source_storage_name, destination_storage_name Group storage moves: - retrieve_all_group: page, per_page - retrieve_group: group_id*, page, per_page - get_group: id* - get_group_for_group: group_id*, id* - schedule_group: group_id*, destination_storage_name - schedule_all_group: source_storage_name, destination_storage_name Snippet storage moves: - retrieve_all_snippet: page, per_page - retrieve_snippet: snippet_id*, page, per_page - get_snippet: id* - get_snippet_for_snippet: snippet_id*, id* - schedule_snippet: snippet_id*, destination_storage_name - schedule_all_snippet: source_storage_name, destination_storage_name See also: gitlab_admin Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true **Action Output Schemas:**
get_group ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
get_group_for_group ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
get_project ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
get_project_for_project ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
get_snippet ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
get_snippet_for_snippet ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
retrieve_all_group ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
retrieve_all_project ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
retrieve_all_snippet ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
retrieve_group ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
retrieve_project ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
retrieve_snippet ```json {"additionalProperties":false,"properties":{"moves":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["moves","pagination"],"type":"object"} ```
schedule_all_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
schedule_all_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
schedule_all_snippet ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
schedule_group ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"group":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name"],"type":["null","object"]},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
schedule_project ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","name","path_with_namespace"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
schedule_snippet ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"destination_storage_name":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"snippet":{"additionalProperties":false,"properties":{"created_at":{"type":["null","string"]},"description":{"type":"string"},"http_url_to_repo":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"raw_url":{"type":"string"},"ssh_url_to_repo":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["null","string"]},"visibility":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title"],"type":["null","object"]},"source_storage_name":{"type":"string"},"state":{"type":"string"}},"required":["id","created_at","state","source_storage_name","destination_storage_name"],"type":"object"} ```
### gitlab_tag **Tag** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_tag.. Action guidance: - create: Create a new tag for a project ref. Use message only when creating annotated tags or when task requires tag annotations. - delete: Delete a tag from a project by name. Destructive and not recoverable; protected tags must be unprotected first. - get: Get one tag by project_id and tag_name. Use when a concrete tag is already known and detailed metadata/signature are needed. - get_protected: Get a single protected tag or wildcard rule by name. Use when a concrete protected pattern is already known. - get_signature: Get the X.509 signature attached to a tag. Use to verify tag provenance and certificate status. - list: List tags in one project. Use this to discover release points, version tags, and candidates for release/tag workflows. - list_protected: List protected tags for a project with offset or keyset pagination. Use to audit which tag patterns are protected and their create access levels. - protect: Protect a tag or wildcard pattern with create access levels. Provide create_access_level for a simple rule, or allowed_to_create for granular user/group/deploy-key permissions. - unprotect: Remove protection from a tag or wildcard pattern by name. Destructive; allows the matched tags to be created or deleted again. Parameter guidance: - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - create.ref: git_ref; source: Branch, tag, or commit to tag.; avoid: Use ref for source revision; do not pass project paths or URLs. - create.tag_name: git_tag; source: Tag name requested for the release/version. - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.tag_name: git_tag; source: Tag string from task context or tag list output. - get_protected.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get_signature.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.project_id: scope_project; source: Project ID or path containing tags. - list_protected.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - protect.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unprotect.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage Git tags and tag protections in a project, plus GPG signature inspection. Delete is destructive and also removes any release attached to the tag. When to use: create/list/delete tags, protect or unprotect tag patterns, verify a tag's GPG/X.509 signature. NOT for: releases (use gitlab_release — a release wraps a tag with notes/assets), branches (use gitlab_branch), repository file/commit operations (use gitlab_repository). Returns: - list / list_protected: array of {name, target, message, protected, ...} with pagination. - get / create / get_protected / protect: tag or protection object. - get_signature: {signature_type, gpg_key_id, verification_status, ...} or X.509 equivalent. - delete / unprotect: {success: bool, message: string}. Errors: 404 not found, 403 forbidden (hint: requires Maintainer+ to protect/unprotect), 400 invalid params (hint: tag name must not exist for create). Param conventions: * = required. All actions need project_id*. Access levels: 0 = no one, 30 = Developer, 40 = Maintainer. - create: project_id*, tag_name*, ref* (branch/tag/SHA), message (annotated tag if non-empty) - get / delete: project_id*, tag_name* - list: project_id*, search, order_by (name/updated/version), sort (asc/desc) - get_signature: project_id*, tag_name* - list_protected: project_id* - get_protected / unprotect: project_id*, tag_name* - protect: project_id*, tag_name* (literal or wildcard e.g. 'v*'), create_access_level (0/30/40), allowed_to_create (array of {user_id|group_id|deploy_key_id|access_level}) See also: gitlab_release (releases use tags as anchors), gitlab_repository (commits referenced by tags), gitlab_branch (branches). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"created_at":{"type":"string"},"message":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"release":{"additionalProperties":false,"properties":{"description":{"type":"string"},"tag_name":{"type":"string"}},"required":["tag_name","description"],"type":["null","object"]},"target":{"type":"string"}},"required":["name","target","message","protected"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"created_at":{"type":"string"},"message":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"release":{"additionalProperties":false,"properties":{"description":{"type":"string"},"tag_name":{"type":"string"}},"required":["tag_name","description"],"type":["null","object"]},"target":{"type":"string"}},"required":["name","target","message","protected"],"type":"object"} ```
get_protected ```json {"additionalProperties":false,"properties":{"create_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","create_access_levels"],"type":"object"} ```
get_signature ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"signature_type":{"type":"string"},"verification_status":{"type":"string"},"x509_certificate":{"additionalProperties":false,"properties":{"certificate_status":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"serial_number":{"type":"string"},"subject":{"type":"string"},"subject_key_identifier":{"type":"string"},"x509_issuer":{"additionalProperties":false,"properties":{"crl_url":{"type":"string"},"id":{"type":"integer"},"subject":{"type":"string"},"subject_key_identifier":{"type":"string"}},"required":["id","subject","subject_key_identifier"],"type":"object"}},"required":["id","subject","subject_key_identifier","email","serial_number","certificate_status","x509_issuer"],"type":"object"}},"required":["signature_type","verification_status","x509_certificate"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tags":{"items":{"additionalProperties":false,"properties":{"commit":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"short_id":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":["null","object"]},"created_at":{"type":"string"},"message":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"protected":{"type":"boolean"},"release":{"additionalProperties":false,"properties":{"description":{"type":"string"},"tag_name":{"type":"string"}},"required":["tag_name","description"],"type":["null","object"]},"target":{"type":"string"}},"required":["name","target","message","protected"],"type":"object"},"type":["null","array"]}},"required":["tags","pagination"],"type":"object"} ```
list_protected ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"tags":{"items":{"additionalProperties":false,"properties":{"create_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","create_access_levels"],"type":"object"},"type":["null","array"]}},"required":["tags","pagination"],"type":"object"} ```
protect ```json {"additionalProperties":false,"properties":{"create_access_levels":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"access_level_description":{"type":"string"},"deploy_key_id":{"type":"integer"},"group_id":{"type":"integer"},"id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["id","access_level","access_level_description"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","create_access_levels"],"type":"object"} ```
unprotect ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
### gitlab_template **Template** Use {"action":"ci_yml_get","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_template.. Action guidance: - ci_yml_get: Fetch one GitLab-provided CI/CD pipeline YAML template by its key (for example Android, Go, or Docker) and return the full .gitlab-ci.yml content. Use after template.ci_yml_list reveals the key, or when the prompt already names the pipeline template to scaffold. - ci_yml_list: List the GitLab-provided starter CI/CD pipeline YAML templates (the presets offered when creating a new .gitlab-ci.yml). Use when the prompt asks which built-in CI pipeline templates exist, or to discover a template key before fetching its contents with template.ci_yml_get. - dockerfile_get: Fetch the full Dockerfile boilerplate for one template key (e.g. "Go", "Python") to scaffold a project's container image build file. - dockerfile_list: Browse the catalog of GitLab-provided Dockerfile templates to discover template keys before fetching one for container image scaffolding. - gitignore_get: Get one .gitignore template by key for repository bootstrap workflows. - gitignore_list: List available .gitignore templates. - license_get: Get one license template by key for project README/LICENSE scaffolding. - license_list: List available license templates with optional popular filter, ordering, and keyset pagination. - lint: Validate a .gitlab-ci.yml snippet against a project's namespace without committing it. Use when the prompt provides raw CI YAML to check, or to confirm edits before pushing; pass content with the YAML and project_id for include/component resolution, and set dry_run to simulate pipeline creation. - lint_project: Validate the .gitlab-ci.yml already committed to a project at a given ref. Use when the prompt names a project rather than supplying YAML; pass project_id and optionally content_ref/ref to choose the branch or tag, and dry_run to simulate pipeline creation for that ref. - project_template_get: Get one project-scoped template (license, gitignore, Dockerfile, .gitlab-ci.yml) by template_type and key, returning its full rendered content. - project_template_list: List the project-scoped templates of a given template_type (licenses, gitignores, dockerfiles, gitlab_ci_ymls), with optional id/type filters, ordering, and keyset pagination. Parameter guidance: - dockerfile_get.key: template_key; source: Template key returned by dockerfile template list output. - gitignore_get.key: template_key; source: Template key returned by gitignore template list output. - license_get.fullname: placeholder_fullname; source: Full name substituted into the rendered license copyright placeholder. - license_get.key: template_key; source: License key returned by license template list output. - license_get.project: placeholder_project; source: Project name substituted into the rendered license content placeholder. - license_list.order_by: order_by; source: Column by which to order keyset-paginated results. - license_list.popular: popular_filter; source: Set true to restrict the listing to popular/featured license templates. - license_list.sort: sort; source: Sort direction for ordered results. - lint.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - lint.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - lint_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - lint_project.ref: branch_or_tag; source: Branch or tag name (without the "refs/heads/" or "refs/tags/" prefix).; avoid: Use "sha" for an exact commit hash, not "ref". - project_template_get.key: template_key; source: Template key from project template list output (e.g. mit, apache-2.0, Go, Python). - project_template_get.project_id: scope_project; source: Project ID or path whose template namespace is queried. - project_template_get.template_type: template_type; source: Template family, one of: dockerfiles, gitignores, gitlab_ci_ymls, licenses, issues, merge_requests. - project_template_list.id: template_id_filter; source: Optional numeric template id to fetch a single template entry. - project_template_list.order_by: order_by; source: Column by which to order keyset-paginated results. - project_template_list.project_id: scope_project; source: Project ID or path whose template namespace is queried. - project_template_list.sort: sort; source: Sort direction for ordered results. - project_template_list.template_type: template_type; source: Template family, one of: dockerfiles, gitignores, gitlab_ci_ymls, licenses, issues, merge_requests. - project_template_list.type: template_type_filter; source: Optional secondary filter passed as the 'type' query parameter; Template family, one of: dockerfiles, gitignores, gitlab_ci_ymls, licenses, issues, merge_requests. Browse GitLab built-in templates (gitignore, CI/CD YAML, Dockerfile, license, project scaffolding) and lint CI configuration. Read-only; ci_lint may resolve `include:` directives that fetch remote URLs. When to use: discover available built-in templates, fetch a template body to commit into a project, validate a .gitlab-ci.yml before pushing, or list project scaffolds. NOT for: reusable Catalog components published by groups (use gitlab_ci_catalog), running pipelines (use gitlab_pipeline), CI/CD variables (use gitlab_ci_variable), repository files (use gitlab_repository). Returns: - *_list: [{key, name}] with pagination (page, per_page, total, next_page). - *_get: {name, content} — paste `content` into the target file. - lint / lint_project: {valid (bool), errors: [string], warnings: [string], merged_yaml (string), jobs: [...] when include_jobs=true}. Errors: 404 not found (hint: check key or template_type), 403 forbidden, 400 invalid params (hint: content required for lint, project_id required for project_template_*). Param conventions: * = required. template_type ∈ {dockerfiles, gitignores, gitlab_ci_ymls, licenses}. CI lint: - lint: project_id*, content*, dry_run (bool), include_jobs (bool), ref - lint_project: project_id*, content_ref, dry_run (bool), dry_run_ref, include_jobs (bool), ref Global templates: - ci_yml_list / dockerfile_list / gitignore_list: page, per_page - ci_yml_get / dockerfile_get / gitignore_get: key* - license_list: page, per_page, popular (bool) - license_get: key*, project, fullname Project templates: - project_template_list: project_id*, template_type*, page, per_page - project_template_get: project_id*, template_type*, key* See also: gitlab_ci_catalog (reusable Catalog components), gitlab_pipeline (run pipelines), gitlab_project (project membership/settings). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
ci_yml_get ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","content"],"type":"object"} ```
ci_yml_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"templates":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"type":["null","array"]}},"required":["templates","pagination"],"type":"object"} ```
dockerfile_get ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","content"],"type":"object"} ```
dockerfile_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"templates":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"type":["null","array"]}},"required":["templates","pagination"],"type":"object"} ```
gitignore_get ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["name","content"],"type":"object"} ```
gitignore_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"templates":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"type":["null","array"]}},"required":["templates","pagination"],"type":"object"} ```
license_get ```json {"additionalProperties":false,"properties":{"conditions":{"items":{"type":"string"},"type":["null","array"]},"content":{"type":"string"},"description":{"type":"string"},"featured":{"type":"boolean"},"html_url":{"type":"string"},"key":{"type":"string"},"limitations":{"items":{"type":"string"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"nickname":{"type":"string"},"permissions":{"items":{"type":"string"},"type":["null","array"]},"source_url":{"type":"string"}},"required":["key","name","featured"],"type":"object"} ```
license_list ```json {"additionalProperties":false,"properties":{"licenses":{"items":{"additionalProperties":false,"properties":{"conditions":{"items":{"type":"string"},"type":["null","array"]},"content":{"type":"string"},"description":{"type":"string"},"featured":{"type":"boolean"},"html_url":{"type":"string"},"key":{"type":"string"},"limitations":{"items":{"type":"string"},"type":["null","array"]},"name":{"type":"string"},"nickname":{"type":"string"},"permissions":{"items":{"type":"string"},"type":["null","array"]},"source_url":{"type":"string"}},"required":["key","name","featured"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["licenses","pagination"],"type":"object"} ```
lint ```json {"additionalProperties":false,"properties":{"errors":{"items":{"type":"string"},"type":["null","array"]},"includes":{"items":{"additionalProperties":false,"properties":{"context_project":{"type":"string"},"location":{"type":"string"},"type":{"type":"string"}},"required":["type","location"],"type":"object"},"type":["null","array"]},"merged_yaml":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"valid":{"type":"boolean"},"warnings":{"items":{"type":"string"},"type":["null","array"]}},"required":["valid"],"type":"object"} ```
lint_project ```json {"additionalProperties":false,"properties":{"errors":{"items":{"type":"string"},"type":["null","array"]},"includes":{"items":{"additionalProperties":false,"properties":{"context_project":{"type":"string"},"location":{"type":"string"},"type":{"type":"string"}},"required":["type","location"],"type":"object"},"type":["null","array"]},"merged_yaml":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"valid":{"type":"boolean"},"warnings":{"items":{"type":"string"},"type":["null","array"]}},"required":["valid"],"type":"object"} ```
project_template_get ```json {"additionalProperties":false,"properties":{"conditions":{"items":{"type":"string"},"type":["null","array"]},"content":{"type":"string"},"description":{"type":"string"},"html_url":{"type":"string"},"key":{"type":"string"},"limitations":{"items":{"type":"string"},"type":["null","array"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"nickname":{"type":"string"},"permissions":{"items":{"type":"string"},"type":["null","array"]},"popular":{"type":"boolean"},"source_url":{"type":"string"}},"required":["key","name"],"type":"object"} ```
project_template_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"templates":{"items":{"additionalProperties":false,"properties":{"conditions":{"items":{"type":"string"},"type":["null","array"]},"content":{"type":"string"},"description":{"type":"string"},"html_url":{"type":"string"},"key":{"type":"string"},"limitations":{"items":{"type":"string"},"type":["null","array"]},"name":{"type":"string"},"nickname":{"type":"string"},"permissions":{"items":{"type":"string"},"type":["null","array"]},"popular":{"type":"boolean"},"source_url":{"type":"string"}},"required":["key","name"],"type":"object"},"type":["null","array"]}},"required":["templates","pagination"],"type":"object"} ```
### gitlab_user **User** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_user.. Action guidance: - activate: Activate a deactivated user account by user_id (admin only). Use when the prompt asks to reactivate a dormant user. - activities: List recent user activities (last_activity_on per username) optionally filtered by a from-date (admin only). Use when the prompt asks who has been active recently. - add_email: Add a new email address to the authenticated user's own account. The email must be a valid RFC 5322 address that is not already taken; skip_confirmation requires an admin token. - add_email_for_user: Add a new email address to a specific user's account by user_id (admin only). The email must be a valid RFC 5322 address that is not already taken. - add_gpg_key: Add a GPG key to the authenticated user's own account. The key must be an ASCII-armored OpenPGP public key block whose fingerprint is unique across GitLab. - add_gpg_key_for_user: Add a GPG key to a specific user's account by user_id (admin only). The key must be an ASCII-armored OpenPGP public key block whose fingerprint is unique across GitLab. - add_ssh_key: Add an SSH public key to the authenticated user's account with a title and optional expiry and usage type. Use when the prompt asks to register a new key. - add_ssh_key_for_user: Add an SSH public key to a specific user's account (admin only) with title and optional expiry. Use when the prompt asks to register a key on behalf of another user. - approve: Approve a pending user sign-up by user_id (admin only). Use when the prompt asks to approve a user awaiting admin approval. - associations_count: Get a user's association counts (groups, projects, issues, merge requests) by user_id. Use when the prompt asks how much a user owns or is involved in before deletion. - avatar_get: Resolve the avatar URL for a known email address. Use this when the task already provides an email; do not use it to search for users by name or username. - ban: Ban a user by user_id (admin only); reversible via unban. Use when the prompt asks to ban a user, hiding their content. - block: Block a user from signing in by user_id (admin only); reversible via unblock. Use when the prompt asks to suspend a user's access. - contribution_events: List a user's recent contribution events (pushes, comments, merges) filtered by action, target type, date range, and scope. Use when the prompt asks what a user has done recently. - create: Create a new user account with required fields email, name, and username. Add optional admin/external flags only when explicitly requested. - create_current_user_pat: Create a personal access token for the authenticated user with a name, scopes, and optional expiry. Use when the prompt asks to mint a new token for the current account. - create_impersonation_token: Create an impersonation token for a user (admin token required). Use to mint a token with explicit scopes and an optional expiry that can act on behalf of the target user. - create_personal_access_token: Create a personal access token for another user (admin token required). Use to provision a PAT with explicit scopes, an optional description, and an optional expiry on behalf of the target user. - create_runner: Register a CI runner scoped to the current user as instance, group, or project type. Use when the prompt asks to create a runner and provide an authentication token. - create_service_account: Create an instance-level service account with optional name, username, and email. Admin-only. Use when the prompt asks to provision a service account. - current: Get the authenticated user profile for the current token. Use this when the prompt asks who the caller is, what permissions they have, or what user identity is currently active. - current_user_status: Get the authenticated user's own status (emoji, message, availability). Use when the prompt asks about the caller's current status. - deactivate: Deactivate an inactive user account by user_id (admin only); reversible via activate. Use when the prompt asks to deactivate a dormant user. - delete: Delete a user account by user_id (admin only); supports hard delete to remove all contributions. Use only when the prompt explicitly asks to remove a user. - delete_email: Delete an email address from the authenticated user's own account by email_id. The primary email cannot be deleted. - delete_email_for_user: Delete an email address from a specific user's account by user_id and email_id (admin only). The primary email cannot be deleted. - delete_gpg_key: Delete a GPG key from the authenticated user's own account by key_id. Destructive and irreversible; confirm the key_id before calling. - delete_gpg_key_for_user: Delete a GPG key from a specific user's account by user_id and key_id (admin only). Destructive and irreversible; confirm both IDs before calling. - delete_identity: Delete a user's external authentication identity by user_id and provider name (admin only). Use when the prompt asks to unlink an SSO/LDAP identity from a user. - delete_ssh_key: Delete one of the authenticated user's SSH keys by key_id. Use when the prompt asks to remove a key from the current account. - delete_ssh_key_for_user: Delete a specific SSH key from a specific user's account (admin only) by user_id and key_id. Use when the prompt asks to remove another user's key. - disable_two_factor: Disable two-factor authentication for a user by user_id (admin only). Use when the prompt asks to clear a user's locked-out 2FA. - emails: List the authenticated user's registered email addresses. Use when the prompt asks which emails are on the current account. - emails_for_user: List every email address registered on a specific user's account by user_id. Use after resolving a user with gitlab_get_user; reading another user's emails requires an admin token. Supports offset and keyset pagination plus order_by and sort. - event_list_contributions: List the authenticated user's contribution events (pushes, comments, issue and merge request activity) across visible resources, with action/target filters and offset or keyset pagination. - event_list_project: List the visible activity events for one specific project (pushes, comments, member changes, issue and merge request actions), with action/target filters and offset or keyset pagination. - get: Get a single user by numeric user_id. Use this when the prompt already references a concrete user account and needs detailed profile fields. - get_email: Fetch a single email address belonging to the authenticated user by email_id. Use after listing emails when the exact email ID is known. - get_gpg_key: Fetch a single GPG key belonging to the authenticated user by key_id. Use after listing keys when the exact key ID is known and the full armored key is needed. - get_gpg_key_for_user: Fetch a single GPG key for a specific user by user_id and key_id. Use after listing that user's keys; admin token may be required to read another user's keys. - get_impersonation_token: Retrieve one impersonation token for a user by token id (admin token required). Use after listing to inspect a single token's state and scopes. - get_ssh_key: Get one of the authenticated user's SSH keys by key_id. Use when the prompt references a specific key and needs its details. - get_ssh_key_for_user: Get a specific SSH key for a specific user by user_id and key_id. Use when the prompt references one of another user's keys. - get_status: Get a user's status (emoji, message, availability, clear-at time) by numeric user_id. Use when the prompt asks whether someone is busy or what their status message says. - gpg_keys: List every GPG key on the authenticated user's own account. Use when the prompt asks to view, audit, or pick one of your own GPG signing keys; no parameters are required. - gpg_keys_for_user: List every GPG key registered on a specific user's account by user_id. Use after resolving a user with gitlab_get_user; viewing another user's GPG keys may require an admin token. - key_get_by_fingerprint: Look up a single SSH key or deploy key by its fingerprint and return the owning user. Admin-only on self-managed instances. Accepts the modern SHA256:base64 form or the legacy MD5:aa:bb:cc hex-pairs form. Use when you have only a key fingerprint (for example from an auth log) and need to identify its owner. - key_get_with_user: Look up a single SSH key by its global numeric key ID and return the owning user. Admin-only on self-managed instances. Use when a prompt or audit log gives a bare key ID and you need to identify who owns it; for a specific user's own keys use the per-user SSH-key tools instead. - list: List users visible to the authenticated caller. Use filters like search, username, active, blocked, and pagination when the task asks for matching users or account inventories. - list_impersonation_tokens: List all impersonation tokens for a user (admin token required). Use to audit a user's impersonation tokens, optionally filtering by state and paginating with offset or keyset pagination. - list_service_accounts: List instance-level service accounts with order_by/sort and pagination. Admin-only. Use when the prompt asks which service accounts exist. - me: Get the authenticated user profile for the current token. Use this when the prompt asks who the caller is, what permissions they have, or what user identity is currently active. - memberships: List a user's project and group memberships by user_id, optionally filtered by type (Project or Namespace). Use when the prompt asks where a user is a member and at what access level. - modify: Update an existing user's profile fields (email, name, flags, social links) by user_id (admin only). Use when the prompt asks to change a user's account details. - namespace_exists: Check whether a namespace path is available before creating a group or project. Optionally scope the check to a parent namespace with parent_id. - namespace_get: Get one namespace by numeric ID or full path. Use after a list or search result, or when the prompt already names a concrete namespace. - namespace_list: List namespaces (user and group namespaces) visible to the authenticated user. Use filters such as search, owned_only, top_level_only, order_by, sort, and pagination when scoping the result set. - namespace_search: Search namespaces by query string across name and path. Use when the user provides a partial namespace name or path fragment. - notification_global_get: Read the authenticated user's account-wide (global) notification settings. Use when the prompt asks what notifications a user receives by default, or before changing them with the global update action. Requires read_user token scope. - notification_global_update: Update the authenticated user's account-wide (global) notification settings. Set level (disabled, participating, watch, global, mention, custom), notification_email, and individual event flags when level is custom; only the fields you pass are changed. - notification_group_get: Read the authenticated user's notification settings for one group. Use when the prompt asks how a user is notified for a specific group, or before overriding them with the group update action. Requires group membership. - notification_group_update: Update the authenticated user's notification settings for one group. Pass group_id plus level (disabled, participating, watch, global, mention, custom), notification_email, and event flags when level is custom; only the fields you pass are changed. - notification_project_get: Read the authenticated user's notification settings for one project. Use when the prompt asks how a user is notified for a specific project, or before overriding them with the project update action. Requires project membership. - notification_project_update: Update the authenticated user's notification settings for one project. Pass project_id plus level (disabled, participating, watch, global, mention, custom), notification_email, and event flags when level is custom; only the fields you pass are changed. - reject: Reject a pending user sign-up by user_id (admin only); this permanently deletes the pending user. Use only when the prompt asks to reject a registration. - revoke_impersonation_token: Revoke (delete) an impersonation token for a user by token id (admin token required, destructive). Use to invalidate a token that should no longer be usable. - set_status: Set the authenticated user's status with emoji, message, availability, and an optional auto-clear duration. Use when the prompt asks to update your own status. - ssh_keys: List the authenticated user's SSH keys with pagination. Use when the prompt asks which SSH keys are on the current account. - ssh_keys_for_user: List SSH keys belonging to a specific user by user_id with pagination. Use when the prompt asks which keys another user has registered. - todo_list: List the authenticated user's to-do items. Use filters such as action, state, project_id, group_id, author_id, type, order_by, sort, and pagination to narrow pending or done items. - todo_mark_all_done: Mark every pending to-do item for the authenticated user as done in one call. - todo_mark_done: Mark a single pending to-do item as done by its ID. Find the ID with gitlab_todo_list first. - unban: Unban a previously banned user by user_id (admin only). Use when the prompt asks to lift a ban. - unblock: Unblock a previously blocked user by user_id (admin only). Use when the prompt asks to restore a blocked user's access. - update_service_account: Update an instance-level service account. Allows updating name, username, and email. Returns: updated service account with id, username, name, email, and unconfirmed_email. Admin-only. - upload_avatar: Set or replace the current authenticated user's avatar image. Provide a filename plus exactly one of file_path (a local image on the MCP server) or content_base64 (base64-encoded JPG/PNG/GIF under 200 KB). Targets the token's own user; there is no user_id parameter. Parameter guidance: - activate.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - add_email_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - add_gpg_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - add_ssh_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - approve.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - associations_count.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - avatar_get.email: email_address; source: Email address supplied by the task or returned by another GitLab user lookup.; avoid: Do not send a username or display name as email. - avatar_get.size: image_size_pixels; source: Optional avatar size in pixels; omit it to let GitLab choose the default size.; avoid: Send a numeric pixel size such as 64 or 128, not CSS strings like 64px. - ban.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - block.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - contribution_events.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - create.email: email_address; source: New account email address from task requirements.; avoid: Provide a real email address; do not pass usernames in the email field. - create.username: username; source: GitLab username slug for the new account.; avoid: Use username without spaces; it is different from display name. - create_impersonation_token.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - create_personal_access_token.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - create_runner.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - create_runner.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - deactivate.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - delete.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - delete_email_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - delete_gpg_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - delete_identity.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - delete_ssh_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - disable_two_factor.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - emails_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - event_list_project.project_id: scope_project; source: Project ID or full namespace path whose activity events should be listed.; avoid: Use the project that owns the events; do not pass a group path or user ID here. - get.user_id: scope_user; source: Numeric GitLab user ID from prior list/get output or explicit task input.; avoid: Use numeric user_id; do not pass username where an ID is required. - get_gpg_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - get_impersonation_token.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - get_ssh_key_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - get_status.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - gpg_keys_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - list.search; source: Name, username, or email fragment from the user's request.; avoid: search narrows users globally; it is not a project/group membership filter. - list_impersonation_tokens.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - memberships.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - modify.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - namespace_exists.id: namespace_identifier; source: Namespace numeric ID or full path from namespace list output. - namespace_get.id: namespace_identifier; source: Namespace numeric ID or full path from namespace list output. - namespace_search.query: search_query; source: User-provided namespace search text. - notification_group_get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - notification_group_update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - notification_project_get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - notification_project_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - reject.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - revoke_impersonation_token.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - ssh_keys_for_user.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - todo_list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - todo_list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - unban.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - unblock.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). User management for GitLab: full user account CRUD plus SSH/GPG keys, emails, personal access tokens (PATs), impersonation tokens, user status, todos, contribution events, notification settings, namespaces, and avatars. This is the canonical user management tool — covers the entire /users API surface. Delete / block / ban / reject actions are destructive. When to use: any user-management workflow — user CRUD (create / modify / delete / block / unblock / ban / unban / approve / reject / activate / deactivate), SSH/GPG key management, personal access token (PAT) management, impersonation tokens (admin), todos, contribution events, notification settings, namespaces, avatars, current-user status. NOT for: deploy tokens or project/group access tokens (use gitlab_access), instance-wide admin operations (use gitlab_admin), project/group memberships (use gitlab_project / gitlab_group). Param conventions: * = required. User IDs are integers. List actions accept page, per_page. Actions ending in _for_user take the same params as the base action plus user_id*. Plain ssh_keys / gpg_keys / emails (no suffix) operate on the current authenticated user with no params. Current user: - current: returns authenticated user info. The legacy alias me is accepted and normalized to current, but current is the canonical action to emit. - current_user_status: returns emoji, message, availability. - set_status: emoji, message, availability (not_set/busy), clear_status_after (30_minutes/3_hours/8_hours/1_day/3_days/7_days/30_days) User CRUD (admin): - list: search, username, active, blocked, external, order_by, sort - get: user_id* - get_status: user_id* - create: email*, name*, username*, password, reset_password, force_random_password, skip_confirmation, admin, external, bio, location, job_title, organization, projects_limit, note - modify: user_id*, email, name, username, bio, location, job_title, organization, projects_limit, admin, external, note - delete: user_id* - associations_count: user_id* User state (admin): - block / unblock / ban / unban / activate / deactivate / approve / reject / disable_two_factor: user_id* SSH keys: - get_ssh_key: key_id* - get_ssh_key_for_user: user_id*, key_id* - add_ssh_key: title*, key*, expires_at, usage_type (auth/signing) - delete_ssh_key: key_id* - delete_ssh_key_for_user: user_id*, key_id* GPG keys: - get_gpg_key: key_id* - get_gpg_key_for_user: user_id*, key_id* - add_gpg_key: key* (armored GPG public key) - delete_gpg_key: key_id* - delete_gpg_key_for_user: user_id*, key_id* Emails: - get_email: email_id* - add_email: email*, skip_confirmation - add_email_for_user: user_id*, email*, skip_confirmation - delete_email: email_id* - delete_email_for_user: user_id*, email_id* Tokens: - list_impersonation_tokens: user_id*, state (active/inactive) - get_impersonation_token: user_id*, token_id* - create_impersonation_token: user_id*, name*, scopes*, expires_at - revoke_impersonation_token: user_id*, token_id* - create_personal_access_token: user_id*, name*, scopes*, description, expires_at - create_current_user_pat: name*, scopes*, description, expires_at Activity and events: - activities: (admin) from (YYYY-MM-DD) - memberships: user_id*, type (Project/Namespace) - contribution_events: user_id*, action, target_type, before, after, sort - event_list_project: project_id*, action, target_type, before, after, sort - event_list_contributions: action, target_type, before, after, sort Todos: - todo_list: action, author_id, project_id, group_id, state (pending/done), type - todo_mark_done: id* - todo_mark_all_done: no params Notifications: - notification_global_get / notification_global_update: no ID needed. Update params: level, notification_email, event booleans - notification_project_get / notification_project_update: project_id*. Update params: level, event booleans - notification_group_get / notification_group_update: group_id*. Update params: level, event booleans Keys and namespaces: - key_get_with_user: key_id*. Returns SSH key with user info. - key_get_by_fingerprint: fingerprint* - namespace_list: search, owned_only - namespace_get: namespace_id* - namespace_exists: namespace*, parent_id - namespace_search: search* - avatar_get: email*, size Misc: - create_runner: runner_type*, group_id, project_id, description, paused, locked, run_untagged, tag_list, access_level, maximum_timeout, maintenance_note - delete_identity: user_id*, provider* Service Accounts (Premium+ — GITLAB_TIER=premium): - create_service_account: name, username, email - list_service_accounts: order_by, sort See also: gitlab_access (deploy/access tokens), gitlab_admin (instance administration) Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
activate ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
activities ```json {"additionalProperties":false,"properties":{"activities":{"items":{"additionalProperties":false,"properties":{"last_activity_on":{"type":"string"},"username":{"type":"string"}},"required":["username"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["activities","pagination"],"type":"object"} ```
add_email ```json {"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","email"],"type":"object"} ```
add_email_for_user ```json {"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","email"],"type":"object"} ```
add_gpg_key ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"} ```
add_gpg_key_for_user ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"} ```
add_ssh_key ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
add_ssh_key_for_user ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
approve ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
associations_count ```json {"additionalProperties":false,"properties":{"groups_count":{"type":"integer"},"issues_count":{"type":"integer"},"merge_requests_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"projects_count":{"type":"integer"}},"required":["groups_count","projects_count","issues_count","merge_requests_count"],"type":"object"} ```
avatar_get ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["avatar_url"],"type":"object"} ```
ban ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
block ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
contribution_events ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action_name":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"project_id":{"type":"integer"},"target_id":{"type":"integer"},"target_iid":{"type":"integer"},"target_title":{"type":"string"},"target_type":{"type":"string"},"target_url":{"type":"string"},"title":{"type":"string"}},"required":["id","project_id","action_name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
create_current_user_pat ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","active","scopes","revoked","user_id"],"type":"object"} ```
create_impersonation_token ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"}},"required":["id","name","active","scopes","revoked"],"type":"object"} ```
create_personal_access_token ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"},"user_id":{"type":"integer"}},"required":["id","name","active","scopes","revoked","user_id"],"type":"object"} ```
create_runner ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"token":{"type":"string"},"token_expires_at":{"type":"string"}},"required":["id","token"],"type":"object"} ```
create_service_account ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
current ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
current_user_status ```json {"additionalProperties":false,"properties":{"availability":{"type":"string"},"clear_status_at":{"type":"string"},"emoji":{"type":"string"},"message":{"type":"string"},"message_html":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"type":"object"} ```
deactivate ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","deleted"],"type":"object"} ```
delete_email ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"email_id":{"type":"integer"}},"required":["email_id","deleted"],"type":"object"} ```
delete_email_for_user ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"email_id":{"type":"integer"}},"required":["email_id","deleted"],"type":"object"} ```
delete_gpg_key ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"key_id":{"type":"integer"}},"required":["key_id","deleted"],"type":"object"} ```
delete_gpg_key_for_user ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"key_id":{"type":"integer"}},"required":["key_id","deleted"],"type":"object"} ```
delete_identity ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"provider":{"type":"string"},"user_id":{"type":"integer"}},"required":["user_id","provider","deleted"],"type":"object"} ```
delete_ssh_key ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"key_id":{"type":"integer"}},"required":["key_id","deleted"],"type":"object"} ```
delete_ssh_key_for_user ```json {"additionalProperties":false,"properties":{"deleted":{"type":"boolean"},"key_id":{"type":"integer"}},"required":["key_id","deleted"],"type":"object"} ```
disable_two_factor ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
emails ```json {"additionalProperties":false,"properties":{"emails":{"items":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"}},"required":["id","email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["emails"],"type":"object"} ```
emails_for_user ```json {"additionalProperties":false,"properties":{"emails":{"items":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","email"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["emails"],"type":"object"} ```
event_list_contributions ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action_name":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"author_id":{"type":"integer"},"author_username":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"note":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"body":{"type":"string"},"commit_id":{"type":"string"},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"file_name":{"type":"string"},"id":{"type":"integer"},"internal":{"type":"boolean"},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"position":{"additionalProperties":false,"properties":{"base_sha":{"type":"string"},"head_sha":{"type":"string"},"line_range":{"additionalProperties":false,"properties":{"end":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]},"start":{"additionalProperties":false,"properties":{"line_code":{"type":"string"},"new_line":{"type":"integer"},"old_line":{"type":"integer"},"type":{"type":"string"}},"type":["null","object"]}},"type":["null","object"]},"new_line":{"type":"integer"},"new_path":{"type":"string"},"old_line":{"type":"integer"},"old_path":{"type":"string"},"position_type":{"type":"string"},"start_sha":{"type":"string"}},"type":["null","object"]},"project_id":{"type":"integer"},"resolvable":{"type":"boolean"},"resolved":{"type":"boolean"},"resolved_at":{"type":"string"},"resolved_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"system":{"type":"boolean"},"title":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","system","resolvable","resolved","internal","confidential"],"type":["null","object"]},"project_id":{"type":"integer"},"push_data":{"additionalProperties":false,"properties":{"action":{"type":"string"},"commit_count":{"type":"integer"},"commit_from":{"type":"string"},"commit_title":{"type":"string"},"commit_to":{"type":"string"},"ref":{"type":"string"},"ref_type":{"type":"string"}},"required":["commit_count"],"type":["null","object"]},"target_id":{"type":"integer"},"target_iid":{"type":"integer"},"target_title":{"type":"string"},"target_type":{"type":"string"},"target_url":{"type":"string"},"title":{"type":"string"}},"required":["id","project_id","action_name","author_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
event_list_project ```json {"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"action_name":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"author_id":{"type":"integer"},"author_username":{"type":"string"},"created_at":{"type":"string"},"data":{"additionalProperties":false,"properties":{"after":{"type":"string"},"before":{"type":"string"},"commits":{"items":{"additionalProperties":false,"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"authored_date":{"type":"string"},"committed_date":{"type":"string"},"committer_email":{"type":"string"},"committer_name":{"type":"string"},"created_at":{"type":"string"},"extended_trailers":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"last_pipeline":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id"],"type":["null","object"]},"message":{"type":"string"},"parent_ids":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"short_id":{"type":"string"},"stats":{"additionalProperties":false,"properties":{"additions":{"type":"integer"},"deletions":{"type":"integer"},"total":{"type":"integer"}},"required":["additions","deletions","total"],"type":["null","object"]},"status":{"type":"string"},"title":{"type":"string"},"trailers":{"additionalProperties":{"type":"string"},"type":"object"},"web_url":{"type":"string"}},"required":["id"],"type":"object"},"type":["null","array"]},"ref":{"type":"string"},"repository":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"default_branch":{"type":"string"},"description":{"type":"string"},"git_http_url":{"type":"string"},"git_ssh_url":{"type":"string"},"homepage":{"type":"string"},"http_url":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"path_with_namespace":{"type":"string"},"ssh_url":{"type":"string"},"url":{"type":"string"},"visibility":{"type":"string"},"web_url":{"type":"string"}},"type":["null","object"]},"total_commits_count":{"type":"integer"},"user_id":{"type":"integer"},"user_name":{"type":"string"}},"required":["total_commits_count"],"type":["null","object"]},"id":{"type":"integer"},"note":{"additionalProperties":false,"properties":{"attachment":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"noteable_id":{"type":"integer"},"noteable_iid":{"type":"integer"},"noteable_type":{"type":"string"},"system":{"type":"boolean"}},"required":["id","system"],"type":["null","object"]},"project_id":{"type":"integer"},"push_data":{"additionalProperties":false,"properties":{"action":{"type":"string"},"commit_count":{"type":"integer"},"commit_from":{"type":"string"},"commit_title":{"type":"string"},"commit_to":{"type":"string"},"ref":{"type":"string"},"ref_type":{"type":"string"}},"required":["commit_count"],"type":["null","object"]},"target_id":{"type":"integer"},"target_iid":{"type":"integer"},"target_title":{"type":"string"},"target_type":{"type":"string"},"target_url":{"type":"string"},"title":{"type":"string"}},"required":["id","project_id","action_name","author_id"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["events","pagination"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
get_email ```json {"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","email"],"type":"object"} ```
get_gpg_key ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"} ```
get_gpg_key_for_user ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"} ```
get_impersonation_token ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"}},"required":["id","name","active","scopes","revoked"],"type":"object"} ```
get_ssh_key ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
get_ssh_key_for_user ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"} ```
get_status ```json {"additionalProperties":false,"properties":{"availability":{"type":"string"},"clear_status_at":{"type":"string"},"emoji":{"type":"string"},"message":{"type":"string"},"message_html":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"type":"object"} ```
gpg_keys ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["keys"],"type":"object"} ```
gpg_keys_for_user ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["keys"],"type":"object"} ```
key_get_by_fingerprint ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"},"user":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":"object"}},"required":["id","title","key","user"],"type":"object"} ```
key_get_with_user ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"title":{"type":"string"},"user":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":"object"}},"required":["id","title","key","user"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
list_impersonation_tokens ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"tokens":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"last_used_at":{"type":"string"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"scopes":{"items":{"type":"string"},"type":["null","array"]},"token":{"type":"string"}},"required":["id","name","active","scopes","revoked"],"type":"object"},"type":["null","array"]}},"required":["tokens"],"type":"object"} ```
list_service_accounts ```json {"additionalProperties":false,"properties":{"accounts":{"items":{"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"unconfirmed_email":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":"object"},"type":["null","array"]}},"required":["accounts"],"type":"object"} ```
me ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
memberships ```json {"additionalProperties":false,"properties":{"memberships":{"items":{"additionalProperties":false,"properties":{"access_level":{"type":"integer"},"source_id":{"type":"integer"},"source_name":{"type":"string"},"source_type":{"type":"string"}},"required":["source_id","source_name","source_type","access_level"],"type":"object"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["memberships","pagination"],"type":"object"} ```
modify ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
namespace_exists ```json {"additionalProperties":false,"properties":{"exists":{"type":"boolean"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"suggests":{"items":{"type":"string"},"type":["null","array"]}},"required":["exists"],"type":"object"} ```
namespace_get ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"billable_members_count":{"type":"integer"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"max_seats_used":{"type":["null","integer"]},"members_count_with_descendants":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"path":{"type":"string"},"plan":{"type":"string"},"seats_in_use":{"type":["null","integer"]},"trial":{"type":"boolean"},"trial_ends_on":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path"],"type":"object"} ```
namespace_list ```json {"additionalProperties":false,"properties":{"namespaces":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"billable_members_count":{"type":"integer"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"max_seats_used":{"type":["null","integer"]},"members_count_with_descendants":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"path":{"type":"string"},"plan":{"type":"string"},"seats_in_use":{"type":["null","integer"]},"trial":{"type":"boolean"},"trial_ends_on":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["namespaces","pagination"],"type":"object"} ```
namespace_search ```json {"additionalProperties":false,"properties":{"namespaces":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"billable_members_count":{"type":"integer"},"full_path":{"type":"string"},"id":{"type":"integer"},"kind":{"type":"string"},"max_seats_used":{"type":["null","integer"]},"members_count_with_descendants":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"parent_id":{"type":"integer"},"path":{"type":"string"},"plan":{"type":"string"},"seats_in_use":{"type":["null","integer"]},"trial":{"type":"boolean"},"trial_ends_on":{"type":"string"},"web_url":{"type":"string"}},"required":["id","name","path","kind","full_path"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["namespaces","pagination"],"type":"object"} ```
notification_global_get ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
notification_global_update ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
notification_group_get ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
notification_group_update ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
notification_project_get ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
notification_project_update ```json {"additionalProperties":false,"properties":{"events":{"additionalProperties":false,"properties":{"close_issue":{"type":"boolean"},"close_merge_request":{"type":"boolean"},"failed_pipeline":{"type":"boolean"},"fixed_pipeline":{"type":"boolean"},"issue_due":{"type":"boolean"},"merge_merge_request":{"type":"boolean"},"merge_when_pipeline_succeeds":{"type":"boolean"},"moved_project":{"type":"boolean"},"new_epic":{"type":"boolean"},"new_issue":{"type":"boolean"},"new_merge_request":{"type":"boolean"},"new_note":{"type":"boolean"},"push_to_merge_request":{"type":"boolean"},"reassign_issue":{"type":"boolean"},"reassign_merge_request":{"type":"boolean"},"reopen_issue":{"type":"boolean"},"reopen_merge_request":{"type":"boolean"},"success_pipeline":{"type":"boolean"}},"required":["close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_when_pipeline_succeeds","merge_merge_request","moved_project","new_issue","new_merge_request","new_epic","new_note","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","success_pipeline"],"type":["null","object"]},"level":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"notification_email":{"type":"string"}},"required":["level"],"type":"object"} ```
reject ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
revoke_impersonation_token ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"revoked":{"type":"boolean"},"token_id":{"type":"integer"},"user_id":{"type":"integer"}},"required":["user_id","token_id","revoked"],"type":"object"} ```
set_status ```json {"additionalProperties":false,"properties":{"availability":{"type":"string"},"clear_status_at":{"type":"string"},"emoji":{"type":"string"},"message":{"type":"string"},"message_html":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"type":"object"} ```
ssh_keys ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["keys","pagination"],"type":"object"} ```
ssh_keys_for_user ```json {"additionalProperties":false,"properties":{"keys":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"usage_type":{"type":"string"}},"required":["id","title","key"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["keys","pagination"],"type":"object"} ```
todo_list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"todos":{"items":{"additionalProperties":false,"properties":{"action_name":{"type":"string"},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"body":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"project":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"name_with_namespace":{"type":"string"},"path":{"type":"string"},"path_with_namespace":{"type":"string"}},"required":["id","description","name","name_with_namespace","path","path_with_namespace"],"type":["null","object"]},"state":{"type":"string"},"target":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"award_emoji":{"type":"string"},"notes":{"type":"string"},"project":{"type":"string"},"self":{"type":"string"}},"required":["self","notes","award_emoji","project"],"type":["null","object"]},"approvals_before_merge":{"type":"integer"},"assignee":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"assignees":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"author":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"confidential":{"type":"boolean"},"created_at":{"type":"string"},"description":{"type":"string"},"downvotes":{"type":"integer"},"due_date":{"type":"string"},"filename":{"type":"string"},"force_remove_source_branch":{"type":"boolean"},"has_tasks":{"type":"boolean"},"id":true,"iid":{"type":"integer"},"image_url":{"type":"string"},"labels":{"items":{"type":"string"},"type":["null","array"]},"merge_commit_sha":{"type":"string"},"merge_status":{"type":"string"},"merge_when_pipeline_succeeds":{"type":"boolean"},"merged_at":{"type":"string"},"milestone":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"expired":{"type":["null","boolean"]},"group_id":{"type":"integer"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"start_date":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","group_id","project_id","title","description","state","web_url"],"type":["null","object"]},"moved_to_id":{"type":"integer"},"project_id":{"type":"integer"},"reference":{"type":"string"},"reviewers":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"type":["null","array"]},"sha":{"type":"string"},"should_remove_source_branch":{"type":"boolean"},"source_branch":{"type":"string"},"source_project_id":{"type":"integer"},"squash":{"type":"boolean"},"state":{"type":"string"},"subscribed":{"type":"boolean"},"target_branch":{"type":"string"},"target_project_id":{"type":"integer"},"task_completion_status":{"additionalProperties":false,"properties":{"completed_count":{"type":"integer"},"count":{"type":"integer"}},"required":["count","completed_count"],"type":["null","object"]},"time_stats":{"additionalProperties":false,"properties":{"human_time_estimate":{"type":"string"},"human_total_time_spent":{"type":"string"},"time_estimate":{"type":"integer"},"total_time_spent":{"type":"integer"}},"required":["human_time_estimate","human_total_time_spent","time_estimate","total_time_spent"],"type":["null","object"]},"title":{"type":"string"},"updated_at":{"type":"string"},"upvotes":{"type":"integer"},"user_notes_count":{"type":"integer"},"web_url":{"type":"string"},"weight":{"type":"integer"},"work_in_progress":{"type":"boolean"}},"type":["null","object"]},"target_type":{"type":"string"},"target_url":{"type":"string"}},"required":["id","action_name","target_type","target_url","state"],"type":"object"},"type":["null","array"]}},"required":["todos","pagination"],"type":"object"} ```
todo_mark_all_done ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["message"],"type":"object"} ```
todo_mark_done ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","message"],"type":"object"} ```
unban ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
unblock ```json {"additionalProperties":false,"properties":{"action":{"type":"string"},"success":{"type":"boolean"},"user_id":{"type":"integer"}},"required":["user_id","action","success"],"type":"object"} ```
update_service_account ```json {"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"unconfirmed_email":{"type":"string"},"username":{"type":"string"}},"required":["id","username","name"],"type":"object"} ```
upload_avatar ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","avatar_url","is_admin","is_auditor","bot","two_factor_enabled","external","locked","private_profile","projects_limit","can_create_project","can_create_group","can_create_organization","using_license_seat"],"type":"object"} ```
### gitlab_wiki **Wiki** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_wiki.. Action guidance: - create: Create a new wiki page in a project. Provide a title and content; set format to markdown, rdoc, asciidoc, or org when the default markdown is not wanted. - delete: Permanently delete a wiki page by slug. Destructive; requires Maintainer or Owner role and confirmation of the project and slug. - get: Fetch one wiki page by its slug. Use after wiki.list to read a page's content, optionally rendering HTML or retrieving a specific version SHA. - list: List the wiki pages of a project. Set with_content only when the page bodies are needed, since it returns the full content of every page. - update: Update an existing wiki page identified by slug. Provide at least one of title, content, or format to change. - upload_attachment: Upload a file to the wiki's uploads folder so it can be referenced from wiki pages. Provide either content_base64 or file_path, plus a filename and optional branch. Parameter guidance: - create.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - upload_attachment.branch: branch_name; source: Branch name (without the "refs/heads/" prefix). - upload_attachment.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). CRUD project wiki pages and upload attachments to wikis. Delete is destructive and irreversible. When to use: read, write, or delete wiki pages of a project; attach images or files referenced from wiki content. NOT for: repository files or commits (use gitlab_repository), code snippets (use gitlab_snippet), group-level wikis (Enterprise/Premium — use gitlab_group when GITLAB_TIER is premium or ultimate), issues or MR descriptions (use gitlab_issue / gitlab_merge_request). Returns: - get / create / update: {slug, title, format, content, encoding}. - list: array of {slug, title, format} (content omitted unless with_content=true). - delete: {success: bool, message: string}. - upload_attachment: {file_name, url, alt, markdown} — embed `markdown` directly in a page. Errors: 404 not found (hint: check slug or project_id), 403 forbidden (hint: wiki disabled or insufficient role), 400 invalid params (hint: title/content required, slug must be URL-encoded). Param conventions: * = required. All actions need project_id* (numeric ID or url-encoded path). slug is the URL-encoded page path (e.g. `docs%2Fsetup`). format default = markdown. content max ~1 MB. - list: project_id*, with_content (bool) - get: project_id*, slug*, render_html (bool), version (commit SHA) - create: project_id*, title*, content*, format (markdown/rdoc/asciidoc/org) - update: project_id*, slug*, title, content, format - delete: project_id*, slug* - upload_attachment: project_id*, filename*, content_base64 OR file_path (exactly one), branch See also: gitlab_project (settings/membership), gitlab_repository (file commits), gitlab_snippet (standalone code snippets). Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"wiki_pages":{"items":{"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"},"type":["null","array"]}},"required":["wiki_pages"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"format":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"slug":{"type":"string"},"title":{"type":"string"}},"required":["title","slug","format"],"type":"object"} ```
upload_attachment ```json {"additionalProperties":false,"properties":{"branch":{"type":"string"},"file_name":{"type":"string"},"file_path":{"type":"string"},"markdown":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"url":{"type":"string"}},"required":["file_name","file_path","branch","url","markdown"],"type":"object"} ```
## Enterprise-Only Meta-Tools These 18 tools require GITLAB_TIER=premium or GITLAB_TIER=ultimate (or a detected Premium/Ultimate license). GitLab.com-only tools, including Orbit, also require GITLAB_URL=https://gitlab.com. ### gitlab_attestation **Attestation** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_attestation.. Action guidance: - download: Download the raw in-toto attestation bundle for a single attestation by its project-scoped IID. Use this after gitlab_list_attestations identifies the attestation you want to verify; the response carries the base64-encoded bundle content and its byte size. Requires an Ultimate license. - list: List SLSA build provenance attestations for a project artifact identified by its subject digest. Use this to discover which signed attestations exist for a built image or package before downloading one, and to obtain each attestation's IID, predicate type, and status. Requires an Ultimate license; provide the project plus the OCI-style subject digest of the artifact. Parameter guidance: - download.attestation_iid: attestation_iid; source: Project-scoped attestation IID returned by gitlab_list_attestations.; avoid: attestation_iid is the per-project IID from the list action, not the global id field and not the artifact subject digest. - download.project_id: scope_project; source: Project ID or full namespace path that owns the attestation.; avoid: Use the project that owns the attestation, not the registry or group path. - list.project_id: scope_project; source: Project ID or full namespace path that owns the attested artifact.; avoid: Use the project that built and attested the artifact, not the registry or group path. - list.subject_digest: artifact_digest; source: OCI-style content digest of the attested artifact (algorithm-prefixed hash).; avoid: Use the artifact's content digest (for example sha256:...), not a Git commit SHA, package version, or attestation IID. List and download build attestations (SLSA provenance) for project artifacts. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Errors: 404 not found, 403 forbidden — with actionable hints. - list: project_id*, subject_digest* - download: project_id*, attestation_iid* See also: gitlab_pipeline, gitlab_package Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
download ```json {"additionalProperties":false,"properties":{"attestation_iid":{"type":"integer"},"content_base64":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"size":{"type":"integer"}},"required":["attestation_iid","size","content_base64"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"attestations":{"items":{"additionalProperties":false,"properties":{"build_id":{"type":"integer"},"created_at":{"type":"string"},"download_url":{"type":"string"},"expire_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"predicate_kind":{"type":"string"},"predicate_type":{"type":"string"},"project_id":{"type":"integer"},"status":{"type":"string"},"subject_digest":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","iid","project_id","build_id","status"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["attestations"],"type":"object"} ```
### gitlab_audit_event **Audit Event** Use {"action":"get_group","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_audit_event.. Action guidance: - get_group: Get one exact group-level audit event by group_id plus event_id. Use after a group audit list result or when the prompt already names a concrete group audit event ID. Requires the Owner role plus Premium/Ultimate. - get_instance: Get one exact instance-level audit event by event_id. Use after a list result or when the prompt already names a concrete instance audit event ID. Requires administrator access on self-managed Premium/Ultimate. - get_project: Get one exact project-level audit event by project_id plus event_id. Use after a project audit list result or when the prompt already names a concrete project audit event ID. Requires the Maintainer role plus Premium/Ultimate. - list_group: List audit events for one group and its subgroups/projects. Use when the prompt asks for a group's security or compliance trail. Identify the group with group_id (ID or URL-encoded path), filter with created_after and created_before (ISO 8601 dates), and paginate with page and per_page. Requires the Owner role plus Premium/Ultimate. - list_instance: List instance-level audit events across the whole GitLab instance. Use when an administrator asks for a security or compliance trail spanning all groups and projects. Filter with created_after and created_before (ISO 8601 dates) and paginate with page and per_page. Requires administrator access on self-managed Premium/Ultimate. - list_project: List audit events for one project. Use when the prompt asks for a project's security or compliance trail. Identify the project with project_id (ID or URL-encoded path), filter with created_after and created_before (ISO 8601 dates), and paginate with page and per_page. Requires the Maintainer role plus Premium/Ultimate. Parameter guidance: - get_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - get_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - list_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). List and get GitLab audit events at instance, group, and project levels for compliance tracking. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Errors: 404 not found, 403 forbidden — with actionable hints. Common optional params: created_after (YYYY-MM-DD), created_before, page, per_page. - list_instance: (admin only) created_after, created_before - get_instance: event_id* - list_group: group_id*, created_after, created_before - get_group: group_id*, event_id* - list_project: project_id*, created_after, created_before - get_project: project_id*, event_id* See also: gitlab_admin Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
get_group ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"} ```
get_instance ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"} ```
get_project ```json {"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"} ```
list_group ```json {"additionalProperties":false,"properties":{"audit_events":{"items":{"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["audit_events","pagination"],"type":"object"} ```
list_instance ```json {"additionalProperties":false,"properties":{"audit_events":{"items":{"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["audit_events","pagination"],"type":"object"} ```
list_project ```json {"additionalProperties":false,"properties":{"audit_events":{"items":{"additionalProperties":false,"properties":{"author_id":{"type":"integer"},"created_at":{"type":"string"},"details":{"additionalProperties":false,"properties":{"add":{"type":"string"},"as":{"type":"string"},"author_class":{"type":"string"},"author_email":{"type":"string"},"author_name":{"type":"string"},"change":{"type":"string"},"change_object":{"description":"Object form of the change field. Populated when the API returns change as a JSON object instead of a plain string (e.g. project_group_link_updated); holds the raw JSON object so the object-valued change is not lost"},"changes":{"description":"Plural list of changes emitted by some audit events; each entry records a changed setting with its previous (from) and new (to) values","items":{"additionalProperties":false,"properties":{"change":{"description":"The setting or attribute that was changed","type":"string"},"from":{"description":"Previous value before the change","type":"string"},"to":{"description":"New value after the change","type":"string"}},"type":"object"},"type":["null","array"]},"custom_message":{"type":"string"},"entity_path":{"type":"string"},"event_name":{"type":"string"},"failed_login":{"type":"string"},"from":{"type":"string"},"ip_address":{"type":"string"},"remove":{"type":"string"},"target_details":{"type":"string"},"target_id":{"type":"string"},"target_type":{"type":"string"},"to":{"type":"string"},"with":{"type":"string"}},"type":"object"},"entity_id":{"type":"integer"},"entity_type":{"type":"string"},"event_name":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["id","author_id","entity_id","entity_type","event_name","event_type","details","created_at"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["audit_events","pagination"],"type":"object"} ```
### gitlab_compliance_policy **Compliance Policy** Use {"action":"get","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_compliance_policy.. Action guidance: - get: Read the instance-level compliance policy settings to discover which namespace hosts the centralized compliance security policy (CSP) project. Use this before updating to confirm the current CSP namespace binding. - update: Bind the centralized compliance security policy (CSP) project to a top-level group namespace so its compliance frameworks and security policies apply instance-wide. Requires an Ultimate license and the Owner role; GitLab may lock CSP namespace changes for several minutes after each update. Parameter guidance: - update.csp_namespace_id: compliance_namespace_id; source: ID of an existing top-level group namespace that should host the compliance security policy (CSP) project.; avoid: Use a top-level group namespace ID, not a project ID or a subgroup; GitLab rejects empty update requests. Get and update admin compliance policy settings (CSP namespace configuration). Returns: JSON with resource data for get/update actions. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. - get: no params - update: csp_namespace_id (int64) See also: gitlab_admin Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true **Action Output Schemas:**
get ```json {"additionalProperties":false,"properties":{"csp_namespace_id":{"type":["null","integer"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["csp_namespace_id"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"csp_namespace_id":{"type":["null","integer"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["csp_namespace_id"],"type":"object"} ```
### gitlab_dependency **Dependency** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_dependency.. Action guidance: - export_create: Create a dependency list export from a pipeline. - export_download: Download generated dependency list export content. - export_get: Get dependency list export status and metadata. - list: List project dependency inventory. Parameter guidance: - export_create.pipeline_id: pipeline_id; source: Pipeline numeric ID to export dependencies from. - export_download.export_id: dependency_export_id; source: Export numeric ID returned by create/get export operations. - export_get.export_id: dependency_export_id; source: Export numeric ID returned by create/get export operations. - list.project_id: scope_project; source: Project ID or path containing dependencies. List project dependencies and create/download SBOM exports (CycloneDX). Returns: JSON with resource data. The list action includes pagination (page, per_page, total, next_page). export_create/export_get return export metadata, and export_download returns the CycloneDX payload. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. - list: project_id*, package_manager, page, per_page - export_create: pipeline_id*, export_type (default: sbom) - export_get: export_id* - export_download: export_id*. CycloneDX JSON, max 1MB. See also: gitlab_project, gitlab_vulnerability Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true **Action Output Schemas:**
export_create ```json {"additionalProperties":false,"properties":{"download":{"type":"string"},"has_finished":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"self":{"type":"string"}},"required":["id","has_finished","self","download"],"type":"object"} ```
export_download ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["content"],"type":"object"} ```
export_get ```json {"additionalProperties":false,"properties":{"download":{"type":"string"},"has_finished":{"type":"boolean"},"id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"self":{"type":"string"}},"required":["id","has_finished","self","download"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"dependencies":{"items":{"additionalProperties":false,"properties":{"dependency_file_path":{"type":"string"},"licenses":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"name":{"type":"string"},"package_manager":{"type":"string"},"version":{"type":"string"},"vulnerabilities":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"severity":{"type":"string"},"url":{"type":"string"}},"required":["name","severity","id"],"type":"object"},"type":["null","array"]}},"required":["name","version","package_manager","dependency_file_path"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["dependencies","pagination"],"type":"object"} ```
### gitlab_dora_metrics **Dora Metrics** Use {"action":"group","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_dora_metrics.. Action guidance: - group: Retrieves one DORA metric (deployment_frequency, lead_time_for_changes, time_to_restore_service, or change_failure_rate) for a group_id over a date window. interval is the bucket size (daily, monthly, all); for a prompt like `last 30 days`, compute start_date and end_date as YYYY-MM-DD and pass them — there is no `days` or `days_back` parameter. - project: Retrieves one DORA metric (deployment_frequency, lead_time_for_changes, time_to_restore_service, or change_failure_rate) for a project_id over a date window. interval is the bucket size (daily, monthly, all); for a prompt like `last 30 days`, compute start_date and end_date as YYYY-MM-DD and pass them — there is no `days` or `days_back` parameter. Parameter guidance: - group.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Get DORA metrics: deployment frequency, lead time, MTTR, change failure rate. Returns: JSON with metric data. Errors: 404 not found, 403 forbidden — with actionable hints. Common params: metric* (deployment_frequency|lead_time_for_changes|time_to_restore_service|change_failure_rate), start_date (YYYY-MM-DD), end_date, interval (daily/monthly/all), environment_tiers (array). - project: project_id*, metric*, start_date, end_date, interval, environment_tiers - group: group_id*, metric*, start_date, end_date, interval, environment_tiers See also: gitlab_environment, gitlab_pipeline Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
group ```json {"additionalProperties":false,"properties":{"metrics":{"items":{"additionalProperties":false,"properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["metrics"],"type":"object"} ```
project ```json {"additionalProperties":false,"properties":{"metrics":{"items":{"additionalProperties":false,"properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["metrics"],"type":"object"} ```
### gitlab_enterprise_user **Enterprise User** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_enterprise_user.. Action guidance: - delete: Delete an enterprise user from the group's enterprise namespace. Use hard_delete to permanently remove the user instead of soft-deleting; this action is irreversible. - disable_2fa: Disable two-factor authentication for an enterprise user by group_id plus user_id. Use when a user is locked out of 2FA and the group administrator must reset it. - get: Get one enterprise user by group_id plus user_id. Use after a list result or when the prompt already names a concrete enterprise user. - list: List the enterprise users managed by a top-level group's enterprise namespace. Use filters such as username, search, active, blocked, two_factor, created_after/created_before, plus order_by/sort and offset or keyset pagination. Parameter guidance: - delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - delete.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - disable_2fa.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - disable_2fa.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - get.user_id: scope_user; source: Numeric user ID (the global GitLab user ID, not a username). - list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). Manage enterprise users for a GitLab group: list, get, disable 2FA, delete. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. All actions need group_id*. - list: group_id*, username, search, active, blocked, created_after, created_before, two_factor, page, per_page - get: group_id*, user_id* - disable_2fa: group_id*, user_id* - delete: group_id*, user_id*, hard_delete See also: gitlab_group, gitlab_user Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
disable_2fa ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","bot","is_admin","is_auditor","can_create_group","can_create_project","can_create_organization","projects_limit","two_factor_enabled","external","private_profile","using_license_seat","locked"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"users":{"items":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"bot":{"type":"boolean"},"can_create_group":{"type":"boolean"},"can_create_organization":{"type":"boolean"},"can_create_project":{"type":"boolean"},"color_scheme_id":{"type":"integer"},"confirmed_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state"],"type":["null","object"]},"current_sign_in_at":{"type":"string"},"current_sign_in_ip":{"type":"string"},"custom_attributes":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":["null","array"]},"email":{"type":"string"},"extern_uid":{"type":"string"},"external":{"type":"boolean"},"extra_shared_runners_minutes_limit":{"type":"integer"},"id":{"type":"integer"},"identities":{"items":{"additionalProperties":false,"properties":{"extern_uid":{"type":"string"},"provider":{"type":"string"}},"required":["provider","extern_uid"],"type":"object"},"type":["null","array"]},"is_admin":{"type":"boolean"},"is_auditor":{"type":"boolean"},"job_title":{"type":"string"},"last_activity_on":{"type":"string"},"last_sign_in_at":{"type":"string"},"last_sign_in_ip":{"type":"string"},"linkedin":{"type":"string"},"location":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"namespace_id":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"note":{"type":"string"},"organization":{"type":"string"},"private_profile":{"type":"boolean"},"projects_limit":{"type":"integer"},"provider":{"type":"string"},"public_email":{"type":"string"},"scim_identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"extern_uid":{"type":"string"},"group_id":{"type":"integer"}},"required":["extern_uid","group_id","active"],"type":"object"},"type":["null","array"]},"shared_runners_minutes_limit":{"type":"integer"},"skype":{"type":"string"},"state":{"type":"string"},"theme_id":{"type":"integer"},"twitter":{"type":"string"},"two_factor_enabled":{"type":"boolean"},"username":{"type":"string"},"using_license_seat":{"type":"boolean"},"web_url":{"type":"string"},"website_url":{"type":"string"}},"required":["id","username","email","name","state","web_url","bot","is_admin","is_auditor","can_create_group","can_create_project","can_create_organization","projects_limit","two_factor_enabled","external","private_profile","using_license_seat","locked"],"type":"object"},"type":["null","array"]}},"required":["users","pagination"],"type":"object"} ```
### gitlab_external_status_check **External Status Check** Use {"action":"create_project","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_external_status_check.. Action guidance: - create_project: Create an external status check service for a project, optionally scoping it to protected branches and supplying a shared secret for HMAC verification. Requires Maintainer role and a Premium/Ultimate license. - delete_project: Permanently delete a project external status check service. Destructive and irreversible; confirm project_id and check_id before calling. Requires Maintainer role and a Premium/Ultimate license. - list_project: List the external status check services configured for a project, including their HMAC setting and protected-branch scope. Requires Maintainer role and a Premium/Ultimate license. Supports order_by, sort, and keyset pagination. - list_project_checks: List a project's external status check services (deprecated path). Prefer gitlab_list_project_external_status_checks; use this only when matching the legacy endpoint. Requires Maintainer role and a Premium/Ultimate license. - list_project_mr_checks: List the external status checks that apply to a specific merge request along with each check's current status. Use merge_request_iid (project-scoped). Requires Maintainer role and a Premium/Ultimate license. Supports order_by, sort, and keyset pagination. - retry_project: Retry a failed external status check for a merge request so the external service is re-invoked. The check must currently be in the failed state. Requires Maintainer role and a Premium/Ultimate license. - set_project_mr_status: Set the status (passed or failed) of an external status check for a merge request, identified by sha and external_status_check_id. Typically called by the HMAC-authenticated external service that owns the check. - update_project: Update a project external status check service: change its name, external_url, shared secret, or protected-branch scope. Requires Maintainer role and a Premium/Ultimate license. Parameter guidance: - create_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - delete_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_project_checks.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_project_mr_checks.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - retry_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - set_project_mr_status.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - set_project_mr_status.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - update_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage external status checks for MRs and projects. CRUD checks and set/retry status. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. Param conventions: * = required. - list_project_checks: project_id*, page, per_page - list_project_mr_checks: project_id*, merge_request_iid*, page, per_page - list_project: project_id*, page, per_page - create_project: project_id*, name*, external_url*, shared_secret, protected_branch_ids - delete_project: project_id*, check_id* - update_project: project_id*, check_id*, name, external_url, shared_secret, protected_branch_ids - retry_project: project_id*, merge_request_iid*, check_id* - set_project_mr_status: project_id*, merge_request_iid*, sha*, external_status_check_id*, status* See also: gitlab_merge_request Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create_project ```json {"additionalProperties":false,"properties":{"external_url":{"type":"string"},"hmac":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"code_owner_approval_required":{"type":"boolean"},"created_at":{"type":["null","string"]},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":["null","string"]}},"required":["id","project_id","name","code_owner_approval_required"],"type":"object"},"type":["null","array"]}},"required":["id","name","project_id","external_url","hmac"],"type":"object"} ```
delete_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
list_project ```json {"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"hmac":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"code_owner_approval_required":{"type":"boolean"},"created_at":{"type":["null","string"]},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":["null","string"]}},"required":["id","project_id","name","code_owner_approval_required"],"type":"object"},"type":["null","array"]}},"required":["id","name","project_id","external_url","hmac"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["items","pagination"],"type":"object"} ```
list_project_checks ```json {"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"hmac":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"code_owner_approval_required":{"type":"boolean"},"created_at":{"type":["null","string"]},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":["null","string"]}},"required":["id","project_id","name","code_owner_approval_required"],"type":"object"},"type":["null","array"]}},"required":["id","name","project_id","external_url","hmac"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["items","pagination"],"type":"object"} ```
list_project_mr_checks ```json {"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"external_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"status":{"type":"string"}},"required":["id","name","external_url","status"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"}},"required":["items","pagination"],"type":"object"} ```
retry_project ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
set_project_mr_status ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
update_project ```json {"additionalProperties":false,"properties":{"external_url":{"type":"string"},"hmac":{"type":"boolean"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"},"protected_branches":{"items":{"additionalProperties":false,"properties":{"code_owner_approval_required":{"type":"boolean"},"created_at":{"type":["null","string"]},"id":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"updated_at":{"type":["null","string"]}},"required":["id","project_id","name","code_owner_approval_required"],"type":"object"},"type":["null","array"]}},"required":["id","name","project_id","external_url","hmac"],"type":"object"} ```
### gitlab_geo **Geo** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_geo.. Action guidance: - create: Register a new Geo site (secondary or primary) on the instance. Provide a unique name and a reachable url; only one site may be primary. Requires admin access and GitLab Premium/Ultimate. - delete: Permanently remove a Geo site. Destructive and irreversible; the primary cannot be deleted while secondaries exist. Confirm the id before calling. - edit: Update settings of an existing Geo site (enabled, name, url, capacities, selective sync). The primary flag cannot be toggled; recreate the site to change it. - get: Fetch one Geo site by its numeric id. Use after listing sites or when the prompt names a concrete site id. Requires admin access. - get_status: Fetch the full replication and verification status of one Geo site by id. The site must have reported status at least once. Requires admin access. - list: List all configured Geo sites on the instance. Use order_by/sort and offset or keyset pagination for large fleets. Requires admin access. - list_status: List the full replication and verification status of every Geo site. Use order_by/sort and offset or keyset pagination. Status is collected by the primary; secondaries may show stale data when lagging. - repair: Repair the OAuth authentication of a Geo secondary by re-creating its OAuth application. Must be run from the primary site. Manage Geo replication sites: CRUD, repair OAuth, and check replication status (admin, Premium/Ultimate). Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. Param conventions: * = required. - list / list_status: page, per_page - get / get_status / delete / repair: id* - create: name, url, primary, enabled, internal_url, files_max_capacity, repos_max_capacity, verification_max_capacity, container_repositories_max_capacity, sync_object_storage, selective_sync_type, selective_sync_shards, selective_sync_namespace_ids, minimum_reverification_interval - edit: id*, plus create params (except primary, sync_object_storage) See also: gitlab_admin Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"repair":{"type":"string"},"self":{"type":"string"},"status":{"type":"string"}},"type":"object"},"container_repositories_max_capacity":{"type":"integer"},"current":{"type":"boolean"},"enabled":{"type":"boolean"},"files_max_capacity":{"type":"integer"},"id":{"type":"integer"},"internal_url":{"type":"string"},"minimum_reverification_interval":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary":{"type":"boolean"},"repos_max_capacity":{"type":"integer"},"selective_sync_namespace_ids":{"items":{"type":"integer"},"type":["null","array"]},"selective_sync_shards":{"items":{"type":"string"},"type":["null","array"]},"selective_sync_type":{"type":"string"},"sync_object_storage":{"type":"boolean"},"url":{"type":"string"},"verification_max_capacity":{"type":"integer"},"web_edit_url":{"type":"string"},"web_geo_replication_details_url":{"type":"string"}},"required":["id","name","url","primary","enabled","current","files_max_capacity","repos_max_capacity","verification_max_capacity","container_repositories_max_capacity","minimum_reverification_interval","sync_object_storage","_links"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
edit ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"repair":{"type":"string"},"self":{"type":"string"},"status":{"type":"string"}},"type":"object"},"container_repositories_max_capacity":{"type":"integer"},"current":{"type":"boolean"},"enabled":{"type":"boolean"},"files_max_capacity":{"type":"integer"},"id":{"type":"integer"},"internal_url":{"type":"string"},"minimum_reverification_interval":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary":{"type":"boolean"},"repos_max_capacity":{"type":"integer"},"selective_sync_namespace_ids":{"items":{"type":"integer"},"type":["null","array"]},"selective_sync_shards":{"items":{"type":"string"},"type":["null","array"]},"selective_sync_type":{"type":"string"},"sync_object_storage":{"type":"boolean"},"url":{"type":"string"},"verification_max_capacity":{"type":"integer"},"web_edit_url":{"type":"string"},"web_geo_replication_details_url":{"type":"string"}},"required":["id","name","url","primary","enabled","current","files_max_capacity","repos_max_capacity","verification_max_capacity","container_repositories_max_capacity","minimum_reverification_interval","sync_object_storage","_links"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"repair":{"type":"string"},"self":{"type":"string"},"status":{"type":"string"}},"type":"object"},"container_repositories_max_capacity":{"type":"integer"},"current":{"type":"boolean"},"enabled":{"type":"boolean"},"files_max_capacity":{"type":"integer"},"id":{"type":"integer"},"internal_url":{"type":"string"},"minimum_reverification_interval":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary":{"type":"boolean"},"repos_max_capacity":{"type":"integer"},"selective_sync_namespace_ids":{"items":{"type":"integer"},"type":["null","array"]},"selective_sync_shards":{"items":{"type":"string"},"type":["null","array"]},"selective_sync_type":{"type":"string"},"sync_object_storage":{"type":"boolean"},"url":{"type":"string"},"verification_max_capacity":{"type":"integer"},"web_edit_url":{"type":"string"},"web_geo_replication_details_url":{"type":"string"}},"required":["id","name","url","primary","enabled","current","files_max_capacity","repos_max_capacity","verification_max_capacity","container_repositories_max_capacity","minimum_reverification_interval","sync_object_storage","_links"],"type":"object"} ```
get_status ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"self":{"type":"string"},"site":{"type":"string"}},"type":"object"},"ci_secure_files_checksum_failed_count":{"type":"integer"},"ci_secure_files_checksum_total_count":{"type":"integer"},"ci_secure_files_checksummed_count":{"type":"integer"},"ci_secure_files_count":{"type":"integer"},"ci_secure_files_failed_count":{"type":"integer"},"ci_secure_files_registry_count":{"type":"integer"},"ci_secure_files_synced_count":{"type":"integer"},"ci_secure_files_synced_in_percentage":{"type":"string"},"ci_secure_files_verification_failed_count":{"type":"integer"},"ci_secure_files_verification_total_count":{"type":"integer"},"ci_secure_files_verified_count":{"type":"integer"},"ci_secure_files_verified_in_percentage":{"type":"string"},"container_repositories_checksum_failed_count":{"type":"integer"},"container_repositories_checksum_total_count":{"type":"integer"},"container_repositories_checksummed_count":{"type":"integer"},"container_repositories_count":{"type":"integer"},"container_repositories_failed_count":{"type":"integer"},"container_repositories_registry_count":{"type":"integer"},"container_repositories_replication_enabled":{"type":"boolean"},"container_repositories_synced_count":{"type":"integer"},"container_repositories_synced_in_percentage":{"type":"string"},"container_repositories_verification_failed_count":{"type":"integer"},"container_repositories_verification_total_count":{"type":"integer"},"container_repositories_verified_count":{"type":"integer"},"container_repositories_verified_in_percentage":{"type":"string"},"cursor_last_event_id":{"type":"integer"},"cursor_last_event_timestamp":{"type":"integer"},"db_replication_lag_seconds":{"type":"integer"},"dependency_proxy_blobs_checksum_failed_count":{"type":"integer"},"dependency_proxy_blobs_checksum_total_count":{"type":"integer"},"dependency_proxy_blobs_checksummed_count":{"type":"integer"},"dependency_proxy_blobs_count":{"type":"integer"},"dependency_proxy_blobs_failed_count":{"type":"integer"},"dependency_proxy_blobs_registry_count":{"type":"integer"},"dependency_proxy_blobs_synced_count":{"type":"integer"},"dependency_proxy_blobs_synced_in_percentage":{"type":"string"},"dependency_proxy_blobs_verification_failed_count":{"type":"integer"},"dependency_proxy_blobs_verification_total_count":{"type":"integer"},"dependency_proxy_blobs_verified_count":{"type":"integer"},"dependency_proxy_blobs_verified_in_percentage":{"type":"string"},"dependency_proxy_manifests_checksum_failed_count":{"type":"integer"},"dependency_proxy_manifests_checksum_total_count":{"type":"integer"},"dependency_proxy_manifests_checksummed_count":{"type":"integer"},"dependency_proxy_manifests_count":{"type":"integer"},"dependency_proxy_manifests_failed_count":{"type":"integer"},"dependency_proxy_manifests_registry_count":{"type":"integer"},"dependency_proxy_manifests_synced_count":{"type":"integer"},"dependency_proxy_manifests_synced_in_percentage":{"type":"string"},"dependency_proxy_manifests_verification_failed_count":{"type":"integer"},"dependency_proxy_manifests_verification_total_count":{"type":"integer"},"dependency_proxy_manifests_verified_count":{"type":"integer"},"dependency_proxy_manifests_verified_in_percentage":{"type":"string"},"geo_node_id":{"type":"integer"},"git_fetch_event_count_weekly":{"type":"integer"},"git_push_event_count_weekly":{"type":"integer"},"group_wiki_repositories_checksum_failed_count":{"type":"integer"},"group_wiki_repositories_checksum_total_count":{"type":"integer"},"group_wiki_repositories_checksummed_count":{"type":"integer"},"group_wiki_repositories_count":{"type":"integer"},"group_wiki_repositories_failed_count":{"type":"integer"},"group_wiki_repositories_registry_count":{"type":"integer"},"group_wiki_repositories_synced_count":{"type":"integer"},"group_wiki_repositories_synced_in_percentage":{"type":"string"},"group_wiki_repositories_verification_failed_count":{"type":"integer"},"group_wiki_repositories_verification_total_count":{"type":"integer"},"group_wiki_repositories_verified_count":{"type":"integer"},"group_wiki_repositories_verified_in_percentage":{"type":"string"},"health":{"type":"string"},"health_status":{"type":"string"},"healthy":{"type":"boolean"},"job_artifacts_checksum_failed_count":{"type":"integer"},"job_artifacts_checksum_total_count":{"type":"integer"},"job_artifacts_checksummed_count":{"type":"integer"},"job_artifacts_count":{"type":"integer"},"job_artifacts_failed_count":{"type":"integer"},"job_artifacts_registry_count":{"type":"integer"},"job_artifacts_synced_count":{"type":"integer"},"job_artifacts_synced_in_percentage":{"type":"string"},"job_artifacts_verification_failed_count":{"type":"integer"},"job_artifacts_verification_total_count":{"type":"integer"},"job_artifacts_verified_count":{"type":"integer"},"job_artifacts_verified_in_percentage":{"type":"string"},"last_event_id":{"type":"integer"},"last_event_timestamp":{"type":"integer"},"last_successful_status_check_timestamp":{"type":"integer"},"lfs_objects_checksum_failed_count":{"type":"integer"},"lfs_objects_checksum_total_count":{"type":"integer"},"lfs_objects_checksummed_count":{"type":"integer"},"lfs_objects_count":{"type":"integer"},"lfs_objects_failed_count":{"type":"integer"},"lfs_objects_registry_count":{"type":"integer"},"lfs_objects_synced_count":{"type":"integer"},"lfs_objects_synced_in_percentage":{"type":"string"},"lfs_objects_verification_failed_count":{"type":"integer"},"lfs_objects_verification_total_count":{"type":"integer"},"lfs_objects_verified_count":{"type":"integer"},"lfs_objects_verified_in_percentage":{"type":"string"},"merge_request_diffs_checksum_failed_count":{"type":"integer"},"merge_request_diffs_checksum_total_count":{"type":"integer"},"merge_request_diffs_checksummed_count":{"type":"integer"},"merge_request_diffs_count":{"type":"integer"},"merge_request_diffs_failed_count":{"type":"integer"},"merge_request_diffs_registry_count":{"type":"integer"},"merge_request_diffs_synced_count":{"type":"integer"},"merge_request_diffs_synced_in_percentage":{"type":"string"},"merge_request_diffs_verification_failed_count":{"type":"integer"},"merge_request_diffs_verification_total_count":{"type":"integer"},"merge_request_diffs_verified_count":{"type":"integer"},"merge_request_diffs_verified_in_percentage":{"type":"string"},"missing_oauth_application":{"type":"boolean"},"namespaces":{"items":{"type":"string"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_files_checksum_failed_count":{"type":"integer"},"package_files_checksum_total_count":{"type":"integer"},"package_files_checksummed_count":{"type":"integer"},"package_files_count":{"type":"integer"},"package_files_failed_count":{"type":"integer"},"package_files_registry_count":{"type":"integer"},"package_files_synced_count":{"type":"integer"},"package_files_synced_in_percentage":{"type":"string"},"package_files_verification_failed_count":{"type":"integer"},"package_files_verification_total_count":{"type":"integer"},"package_files_verified_count":{"type":"integer"},"package_files_verified_in_percentage":{"type":"string"},"pages_deployments_checksum_failed_count":{"type":"integer"},"pages_deployments_checksum_total_count":{"type":"integer"},"pages_deployments_checksummed_count":{"type":"integer"},"pages_deployments_count":{"type":"integer"},"pages_deployments_failed_count":{"type":"integer"},"pages_deployments_registry_count":{"type":"integer"},"pages_deployments_synced_count":{"type":"integer"},"pages_deployments_synced_in_percentage":{"type":"string"},"pages_deployments_verification_failed_count":{"type":"integer"},"pages_deployments_verification_total_count":{"type":"integer"},"pages_deployments_verified_count":{"type":"integer"},"pages_deployments_verified_in_percentage":{"type":"string"},"pipeline_artifacts_checksum_failed_count":{"type":"integer"},"pipeline_artifacts_checksum_total_count":{"type":"integer"},"pipeline_artifacts_checksummed_count":{"type":"integer"},"pipeline_artifacts_count":{"type":"integer"},"pipeline_artifacts_failed_count":{"type":"integer"},"pipeline_artifacts_registry_count":{"type":"integer"},"pipeline_artifacts_synced_count":{"type":"integer"},"pipeline_artifacts_synced_in_percentage":{"type":"string"},"pipeline_artifacts_verification_failed_count":{"type":"integer"},"pipeline_artifacts_verification_total_count":{"type":"integer"},"pipeline_artifacts_verified_count":{"type":"integer"},"pipeline_artifacts_verified_in_percentage":{"type":"string"},"project_wiki_repositories_checksum_failed_count":{"type":"integer"},"project_wiki_repositories_checksum_total_count":{"type":"integer"},"project_wiki_repositories_checksummed_count":{"type":"integer"},"project_wiki_repositories_count":{"type":"integer"},"project_wiki_repositories_failed_count":{"type":"integer"},"project_wiki_repositories_registry_count":{"type":"integer"},"project_wiki_repositories_synced_count":{"type":"integer"},"project_wiki_repositories_synced_in_percentage":{"type":"string"},"project_wiki_repositories_verification_failed_count":{"type":"integer"},"project_wiki_repositories_verification_total_count":{"type":"integer"},"project_wiki_repositories_verified_count":{"type":"integer"},"project_wiki_repositories_verified_in_percentage":{"type":"string"},"projects_count":{"type":"integer"},"proxy_local_requests_event_count_weekly":{"type":"integer"},"proxy_remote_requests_event_count_weekly":{"type":"integer"},"replication_slots_count":{"type":"integer"},"replication_slots_max_retained_wal_bytes":{"type":"integer"},"replication_slots_used_count":{"type":"integer"},"replication_slots_used_in_percentage":{"type":"string"},"repositories_checked_count":{"type":"integer"},"repositories_checked_failed_count":{"type":"integer"},"repositories_checked_in_percentage":{"type":"string"},"revision":{"type":"string"},"selective_sync_type":{"type":"string"},"snippet_repositories_checksum_failed_count":{"type":"integer"},"snippet_repositories_checksum_total_count":{"type":"integer"},"snippet_repositories_checksummed_count":{"type":"integer"},"snippet_repositories_count":{"type":"integer"},"snippet_repositories_failed_count":{"type":"integer"},"snippet_repositories_registry_count":{"type":"integer"},"snippet_repositories_synced_count":{"type":"integer"},"snippet_repositories_synced_in_percentage":{"type":"string"},"snippet_repositories_verification_failed_count":{"type":"integer"},"snippet_repositories_verification_total_count":{"type":"integer"},"snippet_repositories_verified_count":{"type":"integer"},"snippet_repositories_verified_in_percentage":{"type":"string"},"storage_shards_match":{"type":"boolean"},"terraform_state_versions_checksum_failed_count":{"type":"integer"},"terraform_state_versions_checksum_total_count":{"type":"integer"},"terraform_state_versions_checksummed_count":{"type":"integer"},"terraform_state_versions_count":{"type":"integer"},"terraform_state_versions_failed_count":{"type":"integer"},"terraform_state_versions_registry_count":{"type":"integer"},"terraform_state_versions_synced_count":{"type":"integer"},"terraform_state_versions_synced_in_percentage":{"type":"string"},"terraform_state_versions_verification_failed_count":{"type":"integer"},"terraform_state_versions_verification_total_count":{"type":"integer"},"terraform_state_versions_verified_count":{"type":"integer"},"terraform_state_versions_verified_in_percentage":{"type":"string"},"updated_at":{"type":"string"},"uploads_checksum_failed_count":{"type":"integer"},"uploads_checksum_total_count":{"type":"integer"},"uploads_checksummed_count":{"type":"integer"},"uploads_count":{"type":"integer"},"uploads_failed_count":{"type":"integer"},"uploads_registry_count":{"type":"integer"},"uploads_synced_count":{"type":"integer"},"uploads_synced_in_percentage":{"type":"string"},"uploads_verification_failed_count":{"type":"integer"},"uploads_verification_total_count":{"type":"integer"},"uploads_verified_count":{"type":"integer"},"uploads_verified_in_percentage":{"type":"string"},"version":{"type":"string"}},"required":["geo_node_id","projects_count","container_repositories_replication_enabled","lfs_objects_count","lfs_objects_checksum_total_count","lfs_objects_checksummed_count","lfs_objects_checksum_failed_count","lfs_objects_synced_count","lfs_objects_failed_count","lfs_objects_registry_count","lfs_objects_verification_total_count","lfs_objects_verified_count","lfs_objects_verification_failed_count","merge_request_diffs_count","merge_request_diffs_checksum_total_count","merge_request_diffs_checksummed_count","merge_request_diffs_checksum_failed_count","merge_request_diffs_synced_count","merge_request_diffs_failed_count","merge_request_diffs_registry_count","merge_request_diffs_verification_total_count","merge_request_diffs_verified_count","merge_request_diffs_verification_failed_count","package_files_count","package_files_checksum_total_count","package_files_checksummed_count","package_files_checksum_failed_count","package_files_synced_count","package_files_failed_count","package_files_registry_count","package_files_verification_total_count","package_files_verified_count","package_files_verification_failed_count","terraform_state_versions_count","terraform_state_versions_checksum_total_count","terraform_state_versions_checksummed_count","terraform_state_versions_checksum_failed_count","terraform_state_versions_synced_count","terraform_state_versions_failed_count","terraform_state_versions_registry_count","terraform_state_versions_verification_total_count","terraform_state_versions_verified_count","terraform_state_versions_verification_failed_count","snippet_repositories_count","snippet_repositories_checksum_total_count","snippet_repositories_checksummed_count","snippet_repositories_checksum_failed_count","snippet_repositories_synced_count","snippet_repositories_failed_count","snippet_repositories_registry_count","snippet_repositories_verification_total_count","snippet_repositories_verified_count","snippet_repositories_verification_failed_count","group_wiki_repositories_count","group_wiki_repositories_checksum_total_count","group_wiki_repositories_checksummed_count","group_wiki_repositories_checksum_failed_count","group_wiki_repositories_synced_count","group_wiki_repositories_failed_count","group_wiki_repositories_registry_count","group_wiki_repositories_verification_total_count","group_wiki_repositories_verified_count","group_wiki_repositories_verification_failed_count","pipeline_artifacts_count","pipeline_artifacts_checksum_total_count","pipeline_artifacts_checksummed_count","pipeline_artifacts_checksum_failed_count","pipeline_artifacts_synced_count","pipeline_artifacts_failed_count","pipeline_artifacts_registry_count","pipeline_artifacts_verification_total_count","pipeline_artifacts_verified_count","pipeline_artifacts_verification_failed_count","pages_deployments_count","pages_deployments_checksum_total_count","pages_deployments_checksummed_count","pages_deployments_checksum_failed_count","pages_deployments_synced_count","pages_deployments_failed_count","pages_deployments_registry_count","pages_deployments_verification_total_count","pages_deployments_verified_count","pages_deployments_verification_failed_count","uploads_count","uploads_checksum_total_count","uploads_checksummed_count","uploads_checksum_failed_count","uploads_synced_count","uploads_failed_count","uploads_registry_count","uploads_verification_total_count","uploads_verified_count","uploads_verification_failed_count","job_artifacts_count","job_artifacts_checksum_total_count","job_artifacts_checksummed_count","job_artifacts_checksum_failed_count","job_artifacts_synced_count","job_artifacts_failed_count","job_artifacts_registry_count","job_artifacts_verification_total_count","job_artifacts_verified_count","job_artifacts_verification_failed_count","ci_secure_files_count","ci_secure_files_checksum_total_count","ci_secure_files_checksummed_count","ci_secure_files_checksum_failed_count","ci_secure_files_synced_count","ci_secure_files_failed_count","ci_secure_files_registry_count","ci_secure_files_verification_total_count","ci_secure_files_verified_count","ci_secure_files_verification_failed_count","container_repositories_count","container_repositories_checksum_total_count","container_repositories_checksummed_count","container_repositories_checksum_failed_count","container_repositories_synced_count","container_repositories_failed_count","container_repositories_registry_count","container_repositories_verification_total_count","container_repositories_verified_count","container_repositories_verification_failed_count","dependency_proxy_blobs_count","dependency_proxy_blobs_checksum_total_count","dependency_proxy_blobs_checksummed_count","dependency_proxy_blobs_checksum_failed_count","dependency_proxy_blobs_synced_count","dependency_proxy_blobs_failed_count","dependency_proxy_blobs_registry_count","dependency_proxy_blobs_verification_total_count","dependency_proxy_blobs_verified_count","dependency_proxy_blobs_verification_failed_count","dependency_proxy_manifests_count","dependency_proxy_manifests_checksum_total_count","dependency_proxy_manifests_checksummed_count","dependency_proxy_manifests_checksum_failed_count","dependency_proxy_manifests_synced_count","dependency_proxy_manifests_failed_count","dependency_proxy_manifests_registry_count","dependency_proxy_manifests_verification_total_count","dependency_proxy_manifests_verified_count","dependency_proxy_manifests_verification_failed_count","project_wiki_repositories_count","project_wiki_repositories_checksum_total_count","project_wiki_repositories_checksummed_count","project_wiki_repositories_checksum_failed_count","project_wiki_repositories_synced_count","project_wiki_repositories_failed_count","project_wiki_repositories_registry_count","project_wiki_repositories_verification_total_count","project_wiki_repositories_verified_count","project_wiki_repositories_verification_failed_count","git_fetch_event_count_weekly","git_push_event_count_weekly","proxy_remote_requests_event_count_weekly","proxy_local_requests_event_count_weekly","repositories_checked_in_percentage","replication_slots_used_in_percentage","lfs_objects_synced_in_percentage","lfs_objects_verified_in_percentage","merge_request_diffs_synced_in_percentage","merge_request_diffs_verified_in_percentage","package_files_synced_in_percentage","package_files_verified_in_percentage","terraform_state_versions_synced_in_percentage","terraform_state_versions_verified_in_percentage","snippet_repositories_synced_in_percentage","snippet_repositories_verified_in_percentage","group_wiki_repositories_synced_in_percentage","group_wiki_repositories_verified_in_percentage","pipeline_artifacts_synced_in_percentage","pipeline_artifacts_verified_in_percentage","pages_deployments_synced_in_percentage","pages_deployments_verified_in_percentage","uploads_synced_in_percentage","uploads_verified_in_percentage","job_artifacts_synced_in_percentage","job_artifacts_verified_in_percentage","ci_secure_files_synced_in_percentage","ci_secure_files_verified_in_percentage","container_repositories_synced_in_percentage","container_repositories_verified_in_percentage","dependency_proxy_blobs_synced_in_percentage","dependency_proxy_blobs_verified_in_percentage","dependency_proxy_manifests_synced_in_percentage","dependency_proxy_manifests_verified_in_percentage","project_wiki_repositories_synced_in_percentage","project_wiki_repositories_verified_in_percentage","replication_slots_count","replication_slots_used_count","healthy","health","health_status","missing_oauth_application","db_replication_lag_seconds","replication_slots_max_retained_wal_bytes","repositories_checked_count","repositories_checked_failed_count","last_event_id","last_event_timestamp","cursor_last_event_id","cursor_last_event_timestamp","last_successful_status_check_timestamp","version","revision","selective_sync_type","updated_at","storage_shards_match","_links"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"sites":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"repair":{"type":"string"},"self":{"type":"string"},"status":{"type":"string"}},"type":"object"},"container_repositories_max_capacity":{"type":"integer"},"current":{"type":"boolean"},"enabled":{"type":"boolean"},"files_max_capacity":{"type":"integer"},"id":{"type":"integer"},"internal_url":{"type":"string"},"minimum_reverification_interval":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary":{"type":"boolean"},"repos_max_capacity":{"type":"integer"},"selective_sync_namespace_ids":{"items":{"type":"integer"},"type":["null","array"]},"selective_sync_shards":{"items":{"type":"string"},"type":["null","array"]},"selective_sync_type":{"type":"string"},"sync_object_storage":{"type":"boolean"},"url":{"type":"string"},"verification_max_capacity":{"type":"integer"},"web_edit_url":{"type":"string"},"web_geo_replication_details_url":{"type":"string"}},"required":["id","name","url","primary","enabled","current","files_max_capacity","repos_max_capacity","verification_max_capacity","container_repositories_max_capacity","minimum_reverification_interval","sync_object_storage","_links"],"type":"object"},"type":["null","array"]}},"required":["sites","pagination"],"type":"object"} ```
list_status ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"statuses":{"items":{"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"self":{"type":"string"},"site":{"type":"string"}},"type":"object"},"ci_secure_files_checksum_failed_count":{"type":"integer"},"ci_secure_files_checksum_total_count":{"type":"integer"},"ci_secure_files_checksummed_count":{"type":"integer"},"ci_secure_files_count":{"type":"integer"},"ci_secure_files_failed_count":{"type":"integer"},"ci_secure_files_registry_count":{"type":"integer"},"ci_secure_files_synced_count":{"type":"integer"},"ci_secure_files_synced_in_percentage":{"type":"string"},"ci_secure_files_verification_failed_count":{"type":"integer"},"ci_secure_files_verification_total_count":{"type":"integer"},"ci_secure_files_verified_count":{"type":"integer"},"ci_secure_files_verified_in_percentage":{"type":"string"},"container_repositories_checksum_failed_count":{"type":"integer"},"container_repositories_checksum_total_count":{"type":"integer"},"container_repositories_checksummed_count":{"type":"integer"},"container_repositories_count":{"type":"integer"},"container_repositories_failed_count":{"type":"integer"},"container_repositories_registry_count":{"type":"integer"},"container_repositories_replication_enabled":{"type":"boolean"},"container_repositories_synced_count":{"type":"integer"},"container_repositories_synced_in_percentage":{"type":"string"},"container_repositories_verification_failed_count":{"type":"integer"},"container_repositories_verification_total_count":{"type":"integer"},"container_repositories_verified_count":{"type":"integer"},"container_repositories_verified_in_percentage":{"type":"string"},"cursor_last_event_id":{"type":"integer"},"cursor_last_event_timestamp":{"type":"integer"},"db_replication_lag_seconds":{"type":"integer"},"dependency_proxy_blobs_checksum_failed_count":{"type":"integer"},"dependency_proxy_blobs_checksum_total_count":{"type":"integer"},"dependency_proxy_blobs_checksummed_count":{"type":"integer"},"dependency_proxy_blobs_count":{"type":"integer"},"dependency_proxy_blobs_failed_count":{"type":"integer"},"dependency_proxy_blobs_registry_count":{"type":"integer"},"dependency_proxy_blobs_synced_count":{"type":"integer"},"dependency_proxy_blobs_synced_in_percentage":{"type":"string"},"dependency_proxy_blobs_verification_failed_count":{"type":"integer"},"dependency_proxy_blobs_verification_total_count":{"type":"integer"},"dependency_proxy_blobs_verified_count":{"type":"integer"},"dependency_proxy_blobs_verified_in_percentage":{"type":"string"},"dependency_proxy_manifests_checksum_failed_count":{"type":"integer"},"dependency_proxy_manifests_checksum_total_count":{"type":"integer"},"dependency_proxy_manifests_checksummed_count":{"type":"integer"},"dependency_proxy_manifests_count":{"type":"integer"},"dependency_proxy_manifests_failed_count":{"type":"integer"},"dependency_proxy_manifests_registry_count":{"type":"integer"},"dependency_proxy_manifests_synced_count":{"type":"integer"},"dependency_proxy_manifests_synced_in_percentage":{"type":"string"},"dependency_proxy_manifests_verification_failed_count":{"type":"integer"},"dependency_proxy_manifests_verification_total_count":{"type":"integer"},"dependency_proxy_manifests_verified_count":{"type":"integer"},"dependency_proxy_manifests_verified_in_percentage":{"type":"string"},"geo_node_id":{"type":"integer"},"git_fetch_event_count_weekly":{"type":"integer"},"git_push_event_count_weekly":{"type":"integer"},"group_wiki_repositories_checksum_failed_count":{"type":"integer"},"group_wiki_repositories_checksum_total_count":{"type":"integer"},"group_wiki_repositories_checksummed_count":{"type":"integer"},"group_wiki_repositories_count":{"type":"integer"},"group_wiki_repositories_failed_count":{"type":"integer"},"group_wiki_repositories_registry_count":{"type":"integer"},"group_wiki_repositories_synced_count":{"type":"integer"},"group_wiki_repositories_synced_in_percentage":{"type":"string"},"group_wiki_repositories_verification_failed_count":{"type":"integer"},"group_wiki_repositories_verification_total_count":{"type":"integer"},"group_wiki_repositories_verified_count":{"type":"integer"},"group_wiki_repositories_verified_in_percentage":{"type":"string"},"health":{"type":"string"},"health_status":{"type":"string"},"healthy":{"type":"boolean"},"job_artifacts_checksum_failed_count":{"type":"integer"},"job_artifacts_checksum_total_count":{"type":"integer"},"job_artifacts_checksummed_count":{"type":"integer"},"job_artifacts_count":{"type":"integer"},"job_artifacts_failed_count":{"type":"integer"},"job_artifacts_registry_count":{"type":"integer"},"job_artifacts_synced_count":{"type":"integer"},"job_artifacts_synced_in_percentage":{"type":"string"},"job_artifacts_verification_failed_count":{"type":"integer"},"job_artifacts_verification_total_count":{"type":"integer"},"job_artifacts_verified_count":{"type":"integer"},"job_artifacts_verified_in_percentage":{"type":"string"},"last_event_id":{"type":"integer"},"last_event_timestamp":{"type":"integer"},"last_successful_status_check_timestamp":{"type":"integer"},"lfs_objects_checksum_failed_count":{"type":"integer"},"lfs_objects_checksum_total_count":{"type":"integer"},"lfs_objects_checksummed_count":{"type":"integer"},"lfs_objects_count":{"type":"integer"},"lfs_objects_failed_count":{"type":"integer"},"lfs_objects_registry_count":{"type":"integer"},"lfs_objects_synced_count":{"type":"integer"},"lfs_objects_synced_in_percentage":{"type":"string"},"lfs_objects_verification_failed_count":{"type":"integer"},"lfs_objects_verification_total_count":{"type":"integer"},"lfs_objects_verified_count":{"type":"integer"},"lfs_objects_verified_in_percentage":{"type":"string"},"merge_request_diffs_checksum_failed_count":{"type":"integer"},"merge_request_diffs_checksum_total_count":{"type":"integer"},"merge_request_diffs_checksummed_count":{"type":"integer"},"merge_request_diffs_count":{"type":"integer"},"merge_request_diffs_failed_count":{"type":"integer"},"merge_request_diffs_registry_count":{"type":"integer"},"merge_request_diffs_synced_count":{"type":"integer"},"merge_request_diffs_synced_in_percentage":{"type":"string"},"merge_request_diffs_verification_failed_count":{"type":"integer"},"merge_request_diffs_verification_total_count":{"type":"integer"},"merge_request_diffs_verified_count":{"type":"integer"},"merge_request_diffs_verified_in_percentage":{"type":"string"},"missing_oauth_application":{"type":"boolean"},"namespaces":{"items":{"type":"string"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"package_files_checksum_failed_count":{"type":"integer"},"package_files_checksum_total_count":{"type":"integer"},"package_files_checksummed_count":{"type":"integer"},"package_files_count":{"type":"integer"},"package_files_failed_count":{"type":"integer"},"package_files_registry_count":{"type":"integer"},"package_files_synced_count":{"type":"integer"},"package_files_synced_in_percentage":{"type":"string"},"package_files_verification_failed_count":{"type":"integer"},"package_files_verification_total_count":{"type":"integer"},"package_files_verified_count":{"type":"integer"},"package_files_verified_in_percentage":{"type":"string"},"pages_deployments_checksum_failed_count":{"type":"integer"},"pages_deployments_checksum_total_count":{"type":"integer"},"pages_deployments_checksummed_count":{"type":"integer"},"pages_deployments_count":{"type":"integer"},"pages_deployments_failed_count":{"type":"integer"},"pages_deployments_registry_count":{"type":"integer"},"pages_deployments_synced_count":{"type":"integer"},"pages_deployments_synced_in_percentage":{"type":"string"},"pages_deployments_verification_failed_count":{"type":"integer"},"pages_deployments_verification_total_count":{"type":"integer"},"pages_deployments_verified_count":{"type":"integer"},"pages_deployments_verified_in_percentage":{"type":"string"},"pipeline_artifacts_checksum_failed_count":{"type":"integer"},"pipeline_artifacts_checksum_total_count":{"type":"integer"},"pipeline_artifacts_checksummed_count":{"type":"integer"},"pipeline_artifacts_count":{"type":"integer"},"pipeline_artifacts_failed_count":{"type":"integer"},"pipeline_artifacts_registry_count":{"type":"integer"},"pipeline_artifacts_synced_count":{"type":"integer"},"pipeline_artifacts_synced_in_percentage":{"type":"string"},"pipeline_artifacts_verification_failed_count":{"type":"integer"},"pipeline_artifacts_verification_total_count":{"type":"integer"},"pipeline_artifacts_verified_count":{"type":"integer"},"pipeline_artifacts_verified_in_percentage":{"type":"string"},"project_wiki_repositories_checksum_failed_count":{"type":"integer"},"project_wiki_repositories_checksum_total_count":{"type":"integer"},"project_wiki_repositories_checksummed_count":{"type":"integer"},"project_wiki_repositories_count":{"type":"integer"},"project_wiki_repositories_failed_count":{"type":"integer"},"project_wiki_repositories_registry_count":{"type":"integer"},"project_wiki_repositories_synced_count":{"type":"integer"},"project_wiki_repositories_synced_in_percentage":{"type":"string"},"project_wiki_repositories_verification_failed_count":{"type":"integer"},"project_wiki_repositories_verification_total_count":{"type":"integer"},"project_wiki_repositories_verified_count":{"type":"integer"},"project_wiki_repositories_verified_in_percentage":{"type":"string"},"projects_count":{"type":"integer"},"proxy_local_requests_event_count_weekly":{"type":"integer"},"proxy_remote_requests_event_count_weekly":{"type":"integer"},"replication_slots_count":{"type":"integer"},"replication_slots_max_retained_wal_bytes":{"type":"integer"},"replication_slots_used_count":{"type":"integer"},"replication_slots_used_in_percentage":{"type":"string"},"repositories_checked_count":{"type":"integer"},"repositories_checked_failed_count":{"type":"integer"},"repositories_checked_in_percentage":{"type":"string"},"revision":{"type":"string"},"selective_sync_type":{"type":"string"},"snippet_repositories_checksum_failed_count":{"type":"integer"},"snippet_repositories_checksum_total_count":{"type":"integer"},"snippet_repositories_checksummed_count":{"type":"integer"},"snippet_repositories_count":{"type":"integer"},"snippet_repositories_failed_count":{"type":"integer"},"snippet_repositories_registry_count":{"type":"integer"},"snippet_repositories_synced_count":{"type":"integer"},"snippet_repositories_synced_in_percentage":{"type":"string"},"snippet_repositories_verification_failed_count":{"type":"integer"},"snippet_repositories_verification_total_count":{"type":"integer"},"snippet_repositories_verified_count":{"type":"integer"},"snippet_repositories_verified_in_percentage":{"type":"string"},"storage_shards_match":{"type":"boolean"},"terraform_state_versions_checksum_failed_count":{"type":"integer"},"terraform_state_versions_checksum_total_count":{"type":"integer"},"terraform_state_versions_checksummed_count":{"type":"integer"},"terraform_state_versions_count":{"type":"integer"},"terraform_state_versions_failed_count":{"type":"integer"},"terraform_state_versions_registry_count":{"type":"integer"},"terraform_state_versions_synced_count":{"type":"integer"},"terraform_state_versions_synced_in_percentage":{"type":"string"},"terraform_state_versions_verification_failed_count":{"type":"integer"},"terraform_state_versions_verification_total_count":{"type":"integer"},"terraform_state_versions_verified_count":{"type":"integer"},"terraform_state_versions_verified_in_percentage":{"type":"string"},"updated_at":{"type":"string"},"uploads_checksum_failed_count":{"type":"integer"},"uploads_checksum_total_count":{"type":"integer"},"uploads_checksummed_count":{"type":"integer"},"uploads_count":{"type":"integer"},"uploads_failed_count":{"type":"integer"},"uploads_registry_count":{"type":"integer"},"uploads_synced_count":{"type":"integer"},"uploads_synced_in_percentage":{"type":"string"},"uploads_verification_failed_count":{"type":"integer"},"uploads_verification_total_count":{"type":"integer"},"uploads_verified_count":{"type":"integer"},"uploads_verified_in_percentage":{"type":"string"},"version":{"type":"string"}},"required":["geo_node_id","projects_count","container_repositories_replication_enabled","lfs_objects_count","lfs_objects_checksum_total_count","lfs_objects_checksummed_count","lfs_objects_checksum_failed_count","lfs_objects_synced_count","lfs_objects_failed_count","lfs_objects_registry_count","lfs_objects_verification_total_count","lfs_objects_verified_count","lfs_objects_verification_failed_count","merge_request_diffs_count","merge_request_diffs_checksum_total_count","merge_request_diffs_checksummed_count","merge_request_diffs_checksum_failed_count","merge_request_diffs_synced_count","merge_request_diffs_failed_count","merge_request_diffs_registry_count","merge_request_diffs_verification_total_count","merge_request_diffs_verified_count","merge_request_diffs_verification_failed_count","package_files_count","package_files_checksum_total_count","package_files_checksummed_count","package_files_checksum_failed_count","package_files_synced_count","package_files_failed_count","package_files_registry_count","package_files_verification_total_count","package_files_verified_count","package_files_verification_failed_count","terraform_state_versions_count","terraform_state_versions_checksum_total_count","terraform_state_versions_checksummed_count","terraform_state_versions_checksum_failed_count","terraform_state_versions_synced_count","terraform_state_versions_failed_count","terraform_state_versions_registry_count","terraform_state_versions_verification_total_count","terraform_state_versions_verified_count","terraform_state_versions_verification_failed_count","snippet_repositories_count","snippet_repositories_checksum_total_count","snippet_repositories_checksummed_count","snippet_repositories_checksum_failed_count","snippet_repositories_synced_count","snippet_repositories_failed_count","snippet_repositories_registry_count","snippet_repositories_verification_total_count","snippet_repositories_verified_count","snippet_repositories_verification_failed_count","group_wiki_repositories_count","group_wiki_repositories_checksum_total_count","group_wiki_repositories_checksummed_count","group_wiki_repositories_checksum_failed_count","group_wiki_repositories_synced_count","group_wiki_repositories_failed_count","group_wiki_repositories_registry_count","group_wiki_repositories_verification_total_count","group_wiki_repositories_verified_count","group_wiki_repositories_verification_failed_count","pipeline_artifacts_count","pipeline_artifacts_checksum_total_count","pipeline_artifacts_checksummed_count","pipeline_artifacts_checksum_failed_count","pipeline_artifacts_synced_count","pipeline_artifacts_failed_count","pipeline_artifacts_registry_count","pipeline_artifacts_verification_total_count","pipeline_artifacts_verified_count","pipeline_artifacts_verification_failed_count","pages_deployments_count","pages_deployments_checksum_total_count","pages_deployments_checksummed_count","pages_deployments_checksum_failed_count","pages_deployments_synced_count","pages_deployments_failed_count","pages_deployments_registry_count","pages_deployments_verification_total_count","pages_deployments_verified_count","pages_deployments_verification_failed_count","uploads_count","uploads_checksum_total_count","uploads_checksummed_count","uploads_checksum_failed_count","uploads_synced_count","uploads_failed_count","uploads_registry_count","uploads_verification_total_count","uploads_verified_count","uploads_verification_failed_count","job_artifacts_count","job_artifacts_checksum_total_count","job_artifacts_checksummed_count","job_artifacts_checksum_failed_count","job_artifacts_synced_count","job_artifacts_failed_count","job_artifacts_registry_count","job_artifacts_verification_total_count","job_artifacts_verified_count","job_artifacts_verification_failed_count","ci_secure_files_count","ci_secure_files_checksum_total_count","ci_secure_files_checksummed_count","ci_secure_files_checksum_failed_count","ci_secure_files_synced_count","ci_secure_files_failed_count","ci_secure_files_registry_count","ci_secure_files_verification_total_count","ci_secure_files_verified_count","ci_secure_files_verification_failed_count","container_repositories_count","container_repositories_checksum_total_count","container_repositories_checksummed_count","container_repositories_checksum_failed_count","container_repositories_synced_count","container_repositories_failed_count","container_repositories_registry_count","container_repositories_verification_total_count","container_repositories_verified_count","container_repositories_verification_failed_count","dependency_proxy_blobs_count","dependency_proxy_blobs_checksum_total_count","dependency_proxy_blobs_checksummed_count","dependency_proxy_blobs_checksum_failed_count","dependency_proxy_blobs_synced_count","dependency_proxy_blobs_failed_count","dependency_proxy_blobs_registry_count","dependency_proxy_blobs_verification_total_count","dependency_proxy_blobs_verified_count","dependency_proxy_blobs_verification_failed_count","dependency_proxy_manifests_count","dependency_proxy_manifests_checksum_total_count","dependency_proxy_manifests_checksummed_count","dependency_proxy_manifests_checksum_failed_count","dependency_proxy_manifests_synced_count","dependency_proxy_manifests_failed_count","dependency_proxy_manifests_registry_count","dependency_proxy_manifests_verification_total_count","dependency_proxy_manifests_verified_count","dependency_proxy_manifests_verification_failed_count","project_wiki_repositories_count","project_wiki_repositories_checksum_total_count","project_wiki_repositories_checksummed_count","project_wiki_repositories_checksum_failed_count","project_wiki_repositories_synced_count","project_wiki_repositories_failed_count","project_wiki_repositories_registry_count","project_wiki_repositories_verification_total_count","project_wiki_repositories_verified_count","project_wiki_repositories_verification_failed_count","git_fetch_event_count_weekly","git_push_event_count_weekly","proxy_remote_requests_event_count_weekly","proxy_local_requests_event_count_weekly","repositories_checked_in_percentage","replication_slots_used_in_percentage","lfs_objects_synced_in_percentage","lfs_objects_verified_in_percentage","merge_request_diffs_synced_in_percentage","merge_request_diffs_verified_in_percentage","package_files_synced_in_percentage","package_files_verified_in_percentage","terraform_state_versions_synced_in_percentage","terraform_state_versions_verified_in_percentage","snippet_repositories_synced_in_percentage","snippet_repositories_verified_in_percentage","group_wiki_repositories_synced_in_percentage","group_wiki_repositories_verified_in_percentage","pipeline_artifacts_synced_in_percentage","pipeline_artifacts_verified_in_percentage","pages_deployments_synced_in_percentage","pages_deployments_verified_in_percentage","uploads_synced_in_percentage","uploads_verified_in_percentage","job_artifacts_synced_in_percentage","job_artifacts_verified_in_percentage","ci_secure_files_synced_in_percentage","ci_secure_files_verified_in_percentage","container_repositories_synced_in_percentage","container_repositories_verified_in_percentage","dependency_proxy_blobs_synced_in_percentage","dependency_proxy_blobs_verified_in_percentage","dependency_proxy_manifests_synced_in_percentage","dependency_proxy_manifests_verified_in_percentage","project_wiki_repositories_synced_in_percentage","project_wiki_repositories_verified_in_percentage","replication_slots_count","replication_slots_used_count","healthy","health","health_status","missing_oauth_application","db_replication_lag_seconds","replication_slots_max_retained_wal_bytes","repositories_checked_count","repositories_checked_failed_count","last_event_id","last_event_timestamp","cursor_last_event_id","cursor_last_event_timestamp","last_successful_status_check_timestamp","version","revision","selective_sync_type","updated_at","storage_shards_match","_links"],"type":"object"},"type":["null","array"]}},"required":["statuses","pagination"],"type":"object"} ```
repair ```json {"additionalProperties":false,"properties":{"_links":{"additionalProperties":false,"properties":{"repair":{"type":"string"},"self":{"type":"string"},"status":{"type":"string"}},"type":"object"},"container_repositories_max_capacity":{"type":"integer"},"current":{"type":"boolean"},"enabled":{"type":"boolean"},"files_max_capacity":{"type":"integer"},"id":{"type":"integer"},"internal_url":{"type":"string"},"minimum_reverification_interval":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"primary":{"type":"boolean"},"repos_max_capacity":{"type":"integer"},"selective_sync_namespace_ids":{"items":{"type":"integer"},"type":["null","array"]},"selective_sync_shards":{"items":{"type":"string"},"type":["null","array"]},"selective_sync_type":{"type":"string"},"sync_object_storage":{"type":"boolean"},"url":{"type":"string"},"verification_max_capacity":{"type":"integer"},"web_edit_url":{"type":"string"},"web_geo_replication_details_url":{"type":"string"}},"required":["id","name","url","primary","enabled","current","files_max_capacity","repos_max_capacity","verification_max_capacity","container_repositories_max_capacity","minimum_reverification_interval","sync_object_storage","_links"],"type":"object"} ```
### gitlab_group_scim **Group Scim** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_group_scim.. Action guidance: - delete: Delete a single SCIM identity from a group by its SCIM external UID (Premium/Ultimate, destructive). Use this to de-provision a SAML SSO SCIM-synced identity link; verify the SCIM external UID with list first because removal of the identity mapping is permanent. - get: Fetch a single SCIM identity for a group by its SCIM external UID (Premium/Ultimate). Use this after listing identities, or when the prompt already names a SCIM external UID, to inspect which GitLab user that SAML SSO SCIM-provisioned identity maps to and whether it is active. - list: List every SCIM identity provisioned for a top-level group via SAML SSO SCIM (Premium/Ultimate). Use this to enumerate which user accounts were synchronized through the group's SCIM provisioning and to discover the SCIM external UIDs needed by get, update, and delete. SCIM identities only exist after SAML SSO SCIM has synced users. - update: Update the extern_uid field of an existing SCIM identity for a group (Premium/Ultimate). Use this when a SAML SSO SCIM-provisioned user's external identifier changed at the identity provider and must be re-pointed; it only rewrites the SCIM external UID, not the underlying GitLab user. Parameter guidance: - delete.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - get.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - list.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). - update.group_id: scope_group; source: Group ID or URL-encoded path (e.g. "my-group" or "my-group/sub"). Manage SCIM identities for GitLab group provisioning. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. All actions need group_id*. - list: group_id* - get / delete: group_id*, uid* - update: group_id*, uid*, extern_uid* See also: gitlab_group, gitlab_user Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"active":{"type":"boolean"},"external_uid":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"user_id":{"type":"integer"}},"required":["external_uid","user_id","active"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"identities":{"items":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"external_uid":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"user_id":{"type":"integer"}},"required":["external_uid","user_id","active"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["identities"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"updated":{"type":"boolean"}},"required":["updated","message"],"type":"object"} ```
### gitlab_member_role **Member Role** Use {"action":"create_group","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_member_role.. Action guidance: - create_group: Create a new group-level custom member role for a group_id. Provide name and base_access_level, then enable individual permission flags only when requested. Requires Owner + Ultimate; deprecated on self-managed 17+. - create_instance: Create a new instance-level custom member role. Provide name and base_access_level, then enable individual permission flags (e.g. read_code, admin_merge_request) only when requested. Requires admin + self-managed Ultimate. - delete_group: Permanently delete a group-level custom member role by group_id and member_role_id. Destructive and irreversible; may fail while the role is still assigned. Requires Owner + Ultimate; deprecated on self-managed 17+. - delete_instance: Permanently delete an instance-level custom member role by member_role_id. Destructive and irreversible; may fail while the role is still assigned. Requires admin + self-managed Ultimate. - list_group: Lists custom member roles available for a specific group_id. Deprecated on self-managed GitLab 17+; use list_instance instead on self-managed. Still valid on GitLab.com Ultimate. - list_instance: Lists all custom member roles defined at the instance level (Ultimate on self-managed, all tiers on GitLab.com). Use this when the prompt asks for custom member roles in general — list_group is deprecated on self-managed 17+ and returns 400 in that environment. Parameter guidance: - create_group.base_access_level: access_level; source: Numeric base access level the custom role extends (5/10/15/20/25/30/40/50).; avoid: Use a valid numeric level (5/10/15/20/25/30/40/50); 60=Admin is not accepted, and do not pass role names like Developer. - create_group.group_id: scope_group; source: Top-level group ID or full group path that will own the custom role.; avoid: Use a top-level group, not a subgroup or project; group-level roles are deprecated on self-managed — use create_instance there. - create_group.name: member_role_name; source: Short, unique name for the custom role within the group. - create_instance.base_access_level: access_level; source: Numeric base access level the custom role extends (5/10/15/20/25/30/40/50).; avoid: Use a valid numeric level (5/10/15/20/25/30/40/50); 60=Admin is not accepted, and do not pass role names like Developer. - create_instance.name: member_role_name; source: Short, unique name for the custom role from the user's request. - delete_group.group_id: scope_group; source: Top-level group ID or full group path that owns the custom role.; avoid: Use the group that owns the role, not a subgroup or project; group-level roles are deprecated on self-managed. - delete_group.member_role_id: member_role_id; source: Numeric ID of the group member role to delete, usually from gitlab_list_group_member_roles output.; avoid: Use the role's member_role_id, not its name or a user/member ID; verify it with gitlab_list_group_member_roles first. - delete_instance.member_role_id: member_role_id; source: Numeric ID of the instance member role to delete, usually from gitlab_list_instance_member_roles output.; avoid: Use the role's member_role_id, not its name or a user/member ID; verify it with gitlab_list_instance_member_roles first. - list_group.group_id: scope_group; source: Top-level group ID or full group path whose custom member roles should be listed.; avoid: Use a top-level group, not a subgroup or project; group-level roles are deprecated on self-managed — use list_instance there. Manage custom member roles at instance or group level. Fine-grained permissions beyond standard access levels. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. Instance-level: - list_instance: no params - create_instance: name*, base_access_level* (5=Minimal access, 10=Guest, 15=Planner, 20=Reporter, 25=Security Manager, 30=Developer, 40=Maintainer, 50=Owner; 60=Admin is not valid), description, permissions (object) - delete_instance: member_role_id* Group-level: - list_group: group_id* - create_group: group_id*, name*, base_access_level*, description, permissions - delete_group: group_id*, member_role_id* See also: gitlab_group, gitlab_user Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create_group ```json {"additionalProperties":false,"properties":{"admin_cicd_variables":{"description":"Allow admin CI/CD variables","type":["null","boolean"]},"admin_compliance_framework":{"description":"Allow admin compliance framework","type":["null","boolean"]},"admin_group_member":{"description":"Allow admin group members","type":["null","boolean"]},"admin_merge_request":{"description":"Allow admin merge requests","type":["null","boolean"]},"admin_push_rules":{"description":"Allow admin push rules","type":["null","boolean"]},"admin_terraform_state":{"description":"Allow admin Terraform state","type":["null","boolean"]},"admin_vulnerability":{"description":"Allow admin vulnerability","type":["null","boolean"]},"admin_web_hook":{"description":"Allow admin webhooks","type":["null","boolean"]},"archive_project":{"description":"Allow archive project","type":["null","boolean"]},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"description":"Allow manage deploy tokens","type":["null","boolean"]},"manage_group_access_tokens":{"description":"Allow manage group access tokens","type":["null","boolean"]},"manage_merge_request_settings":{"description":"Allow manage MR settings","type":["null","boolean"]},"manage_project_access_tokens":{"description":"Allow manage project access tokens","type":["null","boolean"]},"manage_security_policy_link":{"description":"Allow manage security policy link","type":["null","boolean"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"read_code":{"description":"Allow read code","type":["null","boolean"]},"read_dependency":{"description":"Allow read dependency","type":["null","boolean"]},"read_runners":{"description":"Allow read runners","type":["null","boolean"]},"read_vulnerability":{"description":"Allow read vulnerability","type":["null","boolean"]},"remove_group":{"description":"Allow remove group","type":["null","boolean"]},"remove_project":{"description":"Allow remove project","type":["null","boolean"]}},"required":["id","name","base_access_level"],"type":"object"} ```
create_instance ```json {"additionalProperties":false,"properties":{"admin_cicd_variables":{"description":"Allow admin CI/CD variables","type":["null","boolean"]},"admin_compliance_framework":{"description":"Allow admin compliance framework","type":["null","boolean"]},"admin_group_member":{"description":"Allow admin group members","type":["null","boolean"]},"admin_merge_request":{"description":"Allow admin merge requests","type":["null","boolean"]},"admin_push_rules":{"description":"Allow admin push rules","type":["null","boolean"]},"admin_terraform_state":{"description":"Allow admin Terraform state","type":["null","boolean"]},"admin_vulnerability":{"description":"Allow admin vulnerability","type":["null","boolean"]},"admin_web_hook":{"description":"Allow admin webhooks","type":["null","boolean"]},"archive_project":{"description":"Allow archive project","type":["null","boolean"]},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"description":"Allow manage deploy tokens","type":["null","boolean"]},"manage_group_access_tokens":{"description":"Allow manage group access tokens","type":["null","boolean"]},"manage_merge_request_settings":{"description":"Allow manage MR settings","type":["null","boolean"]},"manage_project_access_tokens":{"description":"Allow manage project access tokens","type":["null","boolean"]},"manage_security_policy_link":{"description":"Allow manage security policy link","type":["null","boolean"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"read_code":{"description":"Allow read code","type":["null","boolean"]},"read_dependency":{"description":"Allow read dependency","type":["null","boolean"]},"read_runners":{"description":"Allow read runners","type":["null","boolean"]},"read_vulnerability":{"description":"Allow read vulnerability","type":["null","boolean"]},"remove_group":{"description":"Allow remove group","type":["null","boolean"]},"remove_project":{"description":"Allow remove project","type":["null","boolean"]}},"required":["id","name","base_access_level"],"type":"object"} ```
delete_group ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
delete_instance ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
list_group ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"roles":{"items":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"description":"Allow admin CI/CD variables","type":["null","boolean"]},"admin_compliance_framework":{"description":"Allow admin compliance framework","type":["null","boolean"]},"admin_group_member":{"description":"Allow admin group members","type":["null","boolean"]},"admin_merge_request":{"description":"Allow admin merge requests","type":["null","boolean"]},"admin_push_rules":{"description":"Allow admin push rules","type":["null","boolean"]},"admin_terraform_state":{"description":"Allow admin Terraform state","type":["null","boolean"]},"admin_vulnerability":{"description":"Allow admin vulnerability","type":["null","boolean"]},"admin_web_hook":{"description":"Allow admin webhooks","type":["null","boolean"]},"archive_project":{"description":"Allow archive project","type":["null","boolean"]},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"description":"Allow manage deploy tokens","type":["null","boolean"]},"manage_group_access_tokens":{"description":"Allow manage group access tokens","type":["null","boolean"]},"manage_merge_request_settings":{"description":"Allow manage MR settings","type":["null","boolean"]},"manage_project_access_tokens":{"description":"Allow manage project access tokens","type":["null","boolean"]},"manage_security_policy_link":{"description":"Allow manage security policy link","type":["null","boolean"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"read_code":{"description":"Allow read code","type":["null","boolean"]},"read_dependency":{"description":"Allow read dependency","type":["null","boolean"]},"read_runners":{"description":"Allow read runners","type":["null","boolean"]},"read_vulnerability":{"description":"Allow read vulnerability","type":["null","boolean"]},"remove_group":{"description":"Allow remove group","type":["null","boolean"]},"remove_project":{"description":"Allow remove project","type":["null","boolean"]}},"required":["id","name","base_access_level"],"type":"object"},"type":["null","array"]}},"required":["roles"],"type":"object"} ```
list_instance ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"roles":{"items":{"additionalProperties":false,"properties":{"admin_cicd_variables":{"description":"Allow admin CI/CD variables","type":["null","boolean"]},"admin_compliance_framework":{"description":"Allow admin compliance framework","type":["null","boolean"]},"admin_group_member":{"description":"Allow admin group members","type":["null","boolean"]},"admin_merge_request":{"description":"Allow admin merge requests","type":["null","boolean"]},"admin_push_rules":{"description":"Allow admin push rules","type":["null","boolean"]},"admin_terraform_state":{"description":"Allow admin Terraform state","type":["null","boolean"]},"admin_vulnerability":{"description":"Allow admin vulnerability","type":["null","boolean"]},"admin_web_hook":{"description":"Allow admin webhooks","type":["null","boolean"]},"archive_project":{"description":"Allow archive project","type":["null","boolean"]},"base_access_level":{"type":"integer"},"description":{"type":"string"},"group_id":{"type":"integer"},"id":{"type":"integer"},"manage_deploy_tokens":{"description":"Allow manage deploy tokens","type":["null","boolean"]},"manage_group_access_tokens":{"description":"Allow manage group access tokens","type":["null","boolean"]},"manage_merge_request_settings":{"description":"Allow manage MR settings","type":["null","boolean"]},"manage_project_access_tokens":{"description":"Allow manage project access tokens","type":["null","boolean"]},"manage_security_policy_link":{"description":"Allow manage security policy link","type":["null","boolean"]},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"read_code":{"description":"Allow read code","type":["null","boolean"]},"read_dependency":{"description":"Allow read dependency","type":["null","boolean"]},"read_runners":{"description":"Allow read runners","type":["null","boolean"]},"read_vulnerability":{"description":"Allow read vulnerability","type":["null","boolean"]},"remove_group":{"description":"Allow remove group","type":["null","boolean"]},"remove_project":{"description":"Allow remove project","type":["null","boolean"]}},"required":["id","name","base_access_level"],"type":"object"},"type":["null","array"]}},"required":["roles"],"type":"object"} ```
### gitlab_merge_train **Merge Train** Use {"action":"get","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_merge_train.. Action guidance: - add: Add a merge request to its target branch's merge train. Requires the MR to be approved with a passing pipeline; optionally enable auto_merge, verify a head sha, or squash on merge. - get: Fetch the merge train status of a single merge request by its IID. Use when the prompt names a concrete MR and asks whether or where it sits on a merge train. - list_branch: List the merge requests sitting on the merge train for one target branch. Use when work is scoped to a specific branch's merge train rather than the whole project. - list_project: List every merge train in a project. Use when the prompt asks for all merge trains, active trains, or completed trains in a known project, optionally filtered by scope and sorted. Parameter guidance: - add.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - add.sha: commit_sha; source: Full or short commit SHA that uniquely identifies a commit. - get.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_branch.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). - list_project.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab merge trains (automated merge queues). List, get, and add MRs to merge trains. Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Errors: 404 not found, 403 forbidden — with actionable hints. Param conventions: * = required. All actions need project_id*. - list_project: project_id*, scope (active/complete), sort (asc/desc), page, per_page - list_branch: project_id*, target_branch*, scope, sort, page, per_page - get: project_id*, merge_request_iid* - add: project_id*, merge_request_iid*, auto_merge (bool), sha, squash (bool) See also: gitlab_merge_request, gitlab_pipeline Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true **Action Output Schemas:**
add ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"trains":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"duration":{"type":"integer"},"id":{"type":"integer"},"merge_request":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state"],"type":"object"},"merged_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"status":{"type":"string"},"target_branch":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","merge_request","target_branch","status","duration"],"type":"object"},"type":["null","array"]}},"required":["trains","pagination"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"created_at":{"type":"string"},"duration":{"type":"integer"},"id":{"type":"integer"},"merge_request":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state"],"type":"object"},"merged_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"status":{"type":"string"},"target_branch":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","merge_request","target_branch","status","duration"],"type":"object"} ```
list_branch ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"trains":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"duration":{"type":"integer"},"id":{"type":"integer"},"merge_request":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state"],"type":"object"},"merged_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"status":{"type":"string"},"target_branch":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","merge_request","target_branch","status","duration"],"type":"object"},"type":["null","array"]}},"required":["trains","pagination"],"type":"object"} ```
list_project ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"has_more":{"type":"boolean"},"next_page":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"prev_page":{"type":"integer"},"total_items":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","per_page","total_items","total_pages","next_page","prev_page","has_more"],"type":"object"},"trains":{"items":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"duration":{"type":"integer"},"id":{"type":"integer"},"merge_request":{"additionalProperties":false,"properties":{"created_at":{"type":"string"},"description":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"project_id":{"type":"integer"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","iid","project_id","title","description","state"],"type":"object"},"merged_at":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pipeline":{"additionalProperties":false,"properties":{"before_sha":{"type":"string"},"committed_at":{"type":"string"},"coverage":{"type":"string"},"created_at":{"type":"string"},"detailed_status":{"additionalProperties":false,"properties":{"details_path":{"type":"string"},"favicon":{"type":"string"},"group":{"type":"string"},"has_details":{"type":"boolean"},"icon":{"type":"string"},"illustration":{"additionalProperties":false,"properties":{"image":{"type":"string"}},"required":["image"],"type":["null","object"]},"label":{"type":"string"},"text":{"type":"string"},"tooltip":{"type":"string"}},"required":["icon","text","label","group","tooltip","has_details","details_path","favicon"],"type":["null","object"]},"duration":{"type":"integer"},"finished_at":{"type":"string"},"id":{"type":"integer"},"iid":{"type":"integer"},"name":{"type":"string"},"project_id":{"type":"integer"},"queued_duration":{"type":"integer"},"ref":{"type":"string"},"sha":{"type":"string"},"source":{"type":"string"},"started_at":{"type":"string"},"status":{"type":"string"},"tag":{"type":"boolean"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]},"web_url":{"type":"string"},"yaml_errors":{"type":"string"}},"required":["id","iid","project_id","status","source","ref","name","sha","before_sha","tag","yaml_errors","duration","queued_duration","coverage","web_url"],"type":["null","object"]},"status":{"type":"string"},"target_branch":{"type":"string"},"updated_at":{"type":"string"},"user":{"additionalProperties":false,"properties":{"avatar_url":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"state":{"type":"string"},"username":{"type":"string"},"web_url":{"type":"string"}},"required":["id","username","name","state","avatar_url","web_url"],"type":["null","object"]}},"required":["id","merge_request","target_branch","status","duration"],"type":"object"},"type":["null","array"]}},"required":["trains","pagination"],"type":"object"} ```
### gitlab_orbit **Orbit** Use {"action":"dsl","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_orbit.. Action guidance: - dsl: Retrieve the GitLab Orbit (Knowledge Graph) query DSL schema or LLM grammar. - graph_status: Inspect GitLab Orbit (Knowledge Graph) indexing status for one namespace, project, or full_path. - query: Execute a read-only GitLab Orbit (Knowledge Graph) query (traversal, aggregation, neighbors, or path_finding). - schema: Inspect the GitLab Orbit (Knowledge Graph) ontology: domains, node types, edge types. - status: Inspect GitLab Orbit (Knowledge Graph) cluster health on GitLab.com. - tools: List the GitLab Orbit (Knowledge Graph) MCP tool manifest and parameter schemas. Parameter guidance: - graph_status.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - graph_status.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). GitLab orbit actions. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
dsl ```json {"additionalProperties":false,"properties":{"content":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"response_format":{"type":"string"}},"type":"object"} ```
graph_status ```json {"additionalProperties":false,"properties":{"domains":{"items":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"name":{"type":"string"}},"required":["count"],"type":"object"},"type":["null","array"]},"name":{"type":"string"}},"type":"object"},"type":["null","array"]},"formatted_text":{"type":"string"},"indexing":{"additionalProperties":false,"properties":{"last_completed_at":{"type":"string"},"last_duration_ms":{"type":"integer"},"last_error":{"type":"string"},"last_started_at":{"type":"string"},"state":{"type":"string"}},"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"projects":{"additionalProperties":false,"properties":{"indexed":{"type":"integer"},"total_known":{"type":"integer"}},"required":["indexed","total_known"],"type":["null","object"]}},"type":"object"} ```
query ```json {"additionalProperties":false,"properties":{"formatted_text":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"query_type":{"type":"string"},"raw_query_strings":{"items":{"type":"string"},"type":["null","array"]},"result":true,"row_count":{"type":"integer"}},"type":"object"} ```
schema ```json {"additionalProperties":false,"properties":{"domains":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"},"node_names":{"items":{"type":"string"},"type":["null","array"]}},"type":"object"},"type":["null","array"]},"edges":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"},"variants":{"items":{"additionalProperties":false,"properties":{"source_type":{"type":"string"},"target_type":{"type":"string"}},"type":"object"},"type":["null","array"]}},"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"nodes":{"items":true,"type":["null","array"]},"schema_version":{"type":"string"}},"type":"object"} ```
status ```json {"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":false,"properties":{"metrics":true,"name":{"type":"string"},"replicas":{"additionalProperties":false,"properties":{"desired":{"type":"integer"},"ready":{"type":"integer"}},"required":["ready","desired"],"type":["null","object"]},"status":{"type":"string"}},"type":"object"},"type":["null","array"]},"formatted_text":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"system":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":false,"properties":{"metrics":true,"name":{"type":"string"},"replicas":{"additionalProperties":false,"properties":{"desired":{"type":"integer"},"ready":{"type":"integer"}},"required":["ready","desired"],"type":["null","object"]},"status":{"type":"string"}},"type":"object"},"type":["null","array"]},"error":{"type":"string"},"formatted_text":{"type":"string"},"status":{"type":"string"},"timestamp":{"type":"string"},"version":{"type":"string"}},"type":["null","object"]},"timestamp":{"type":"string"},"user":{"additionalProperties":false,"properties":{"available":{"type":"boolean"}},"required":["available"],"type":["null","object"]},"version":{"type":"string"}},"type":"object"} ```
tools ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"tools":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"},"parameters":true},"type":"object"},"type":["null","array"]}},"type":"object"} ```
### gitlab_project_alias **Project Alias** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_project_alias.. Action guidance: - create: Create a new project alias that points to a target numeric project_id (not a project path). Admin-only. - delete: Delete a project alias by its `name`. The name must be an exact existing alias string; pass the name from a prior project_alias.list response. - get: Get details (id, project_id, name) for one project alias by its `name` (the path-style alias string, e.g. `e2e-enterprise-alias`). The name must come from a prior project_alias.list response or be supplied verbatim by the prompt — this action does not search or accept partial names. - list: List project aliases visible in the configured scope (admin-only). The response includes the alias `name` and the `project_id` it points to; pass one of the returned `name` values to project_alias.get to fetch full details. This action does not accept per_page or page — it returns the full set. Parameter guidance: - create.name; source: Unique alias label to assign; must not collide with an existing alias. - create.project_id: scope_project; source: Numeric project ID the alias should resolve to.; avoid: project_id here must be the numeric ID, not a namespace path like group/project. - delete.name; source: Exact existing alias string to remove, from a prior project_alias.list response.; avoid: name is the alias label, not the aliased project's path or id. - get.name; source: Exact alias string from a prior project_alias.list response or supplied verbatim by the prompt.; avoid: name is the alias label, not a project path or numeric project_id; this action does not search or accept partial names. CRUD project aliases: short names that redirect to projects (admin, Premium/Ultimate). Returns: JSON with resource data. Lists include pagination (page, per_page, total, next_page). Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. - list: no params - get / delete: name* - create: name*, project_id* (int64) See also: gitlab_project Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"}},"required":["id","project_id","name"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"}},"required":["id","project_id","name"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"aliases":{"items":{"additionalProperties":false,"properties":{"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_id":{"type":"integer"}},"required":["id","project_id","name"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["aliases"],"type":"object"} ```
### gitlab_security_attribute **Security Attribute** Use {"action":"create","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_security_attribute.. Action guidance: - bulk_update: Add, remove, or replace security attributes across many groups and projects in one request. Provide attribute_ids, at least one of group_ids or project_ids, and a mode of ADD, REMOVE, or REPLACE (REPLACE swaps the full set on each target). Use this for fleet-wide classification rather than the single-project security_attribute.project_update. - create: Create one or more security attribute values under an existing security category, supplying namespace_id, category_id, and each attribute's name, description, and hex color. Use this to define new classification labels (for example business-impact tiers) before assigning them to projects. - delete: Permanently delete an editable custom security attribute by attribute_id. This destructive action removes the attribute and unassigns it from every project that uses it; template-provided attributes cannot be deleted. - project_update: Assign or unassign existing security attributes on a single project by project_id, supplying add_attribute_ids, remove_attribute_ids, or both. Use this to classify one project; for many targets at once use security_attribute.bulk_update instead. - update: Rename, re-describe, or recolor an editable custom security attribute by attribute_id. Provide at least one of name, description, or color; template-provided attributes are not editable. Parameter guidance: - create.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - project_update.project_id: scope_project; source: Project ID or URL-encoded path (e.g. "group/project"). Manage GitLab security attributes via GraphQL (Premium/Ultimate). Security attributes classify groups and projects under namespace-level security categories. Returns: JSON with created or updated attribute data, project update counts, or destructive confirmation messages. Destructive actions require confirmation. Param conventions: IDs are numeric GitLab IDs; mode is one of ADD, REMOVE, or REPLACE. - create: namespace_id*, category_id*, attributes* (array of {name, description, color}) - update: attribute_id*, name, description, color - delete: attribute_id* - project_update: project_id*, add_attribute_ids, remove_attribute_ids - bulk_update: group_ids or project_ids*, attribute_ids*, mode* See also: gitlab_security_category, gitlab_project, gitlab_group Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
bulk_update ```json {"additionalProperties":false,"properties":{"attribute_ids":{"items":{"type":"integer"},"type":["null","array"]},"group_ids":{"items":{"type":"integer"},"type":["null","array"]},"message":{"type":"string"},"mode":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_ids":{"items":{"type":"integer"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message","mode","attribute_ids"],"type":"object"} ```
create ```json {"additionalProperties":false,"properties":{"attributes":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"security_category":{"additionalProperties":false,"properties":{"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"multiple_selection":{"type":"boolean"},"name":{"type":"string"},"template_type":{"type":"string"}},"required":["id","name","multiple_selection"],"type":["null","object"]}},"required":["id","name","color"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]}},"required":["attributes"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
project_update ```json {"additionalProperties":false,"properties":{"added_count":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"removed_count":{"type":"integer"}},"required":["added_count","removed_count"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"security_category":{"additionalProperties":false,"properties":{"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"multiple_selection":{"type":"boolean"},"name":{"type":"string"},"template_type":{"type":"string"}},"required":["id","name","multiple_selection"],"type":["null","object"]}},"required":["id","name","color"],"type":"object"} ```
### gitlab_security_category **Security Category** Use {"action":"create","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_security_category.. Action guidance: - create: Create a security category in a namespace before adding security attributes under it. Provide the namespace_id, a name, and optionally a description and multiple_selection flag. - delete: Delete a custom security category and all security attributes associated with it. Provide the category_id; this is destructive and cannot be undone. - update: Rename a security category or change its description. Provide the category_id and at least one of name or description; only editable custom categories can be updated. Parameter guidance: - create.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. - update.namespace_id: scope_namespace; source: Namespace ID (numeric) of the target group or user namespace. Manage GitLab security categories via GraphQL (Premium/Ultimate). Categories group namespace-level security attributes and control whether multiple attributes can be selected. Returns: JSON with category metadata and nested attribute summaries. Delete is destructive and requires confirmation because associated attributes are also deleted. Param conventions: IDs are numeric GitLab IDs. - create: namespace_id*, name*, description, multiple_selection - update: category_id*, namespace_id*, name, description - delete: category_id* See also: gitlab_security_attribute, gitlab_group, gitlab_project Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
create ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"multiple_selection":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"security_attributes":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color"],"type":"object"},"type":["null","array"]},"template_type":{"type":"string"}},"required":["id","name","multiple_selection"],"type":"object"} ```
delete ```json {"additionalProperties":false,"properties":{"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"required":["status","message"],"type":"object"} ```
update ```json {"additionalProperties":false,"properties":{"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"multiple_selection":{"type":"boolean"},"name":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"security_attributes":{"items":{"additionalProperties":false,"properties":{"color":{"type":"string"},"description":{"type":"string"},"editable_state":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name","color"],"type":"object"},"type":["null","array"]},"template_type":{"type":"string"}},"required":["id","name","multiple_selection"],"type":"object"} ```
### gitlab_security_finding **Security Finding** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_security_finding.. Action guidance: - list: List the security report findings produced by one pipeline run. Filter by severity, confidence, scanner, or report_type (SAST, DAST, dependency scanning, container scanning, secret detection) and page through results when the prompt asks for a pipeline's scan findings or raw security report output. Use gitlab_pipeline_security_summary first for an aggregate count, then this action for individual findings. List pipeline security report findings via GraphQL (Premium/Ultimate). Replaces deprecated REST vulnerability_findings endpoint. Returns: JSON with resource data. The list action accepts first/after cursor pagination and returns action-specific pagination metadata. Errors: 404 not found, 403 forbidden — with actionable hints. - list: project_path*, pipeline_iid*, severity, confidence, scanner, report_type (arrays), first, after See also: gitlab_vulnerability, gitlab_pipeline Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true **Action Output Schemas:**
list ```json {"additionalProperties":false,"properties":{"findings":{"items":{"additionalProperties":false,"properties":{"confidence":{"type":"string"},"description":{"type":"string"},"evidence":{"additionalProperties":false,"properties":{"data":{"type":"string"},"source":{"type":"string"}},"type":["null","object"]},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"name":{"type":"string"},"report_type":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"name":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"},"vulnerability_id":{"type":"string"},"vulnerability_state":{"type":"string"}},"required":["uuid","name","severity","report_type","state"],"type":"object"},"type":["null","array"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"}},"required":["findings","pagination"],"type":"object"} ```
### gitlab_security_scan_profile **Security Scan Profile** Use {"action":"attach","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_security_scan_profile.. Action guidance: - attach: Attach a security scan profile to one or more projects and/or groups. Supply security_scan_profile_id (a built-in scan type — dependency_scanning, sast, secret_detection, or container_scanning — which creates the namespace's default profile on the fly) and at least one of project_ids or group_ids. Targets must belong to a group namespace (not a personal namespace) and share one root namespace. Requires Maintainer or Owner on the targets. - detach: Detach a security scan profile from one or more projects and/or groups, disabling that scanning configuration on the targets. Supply security_scan_profile_id (the persisted profile's numeric ID from gitlab_list_project_scan_profile_statuses, not a scan-type name) and at least one of project_ids or group_ids. This is reversible with attach. - list_project_statuses: List the security scan profile statuses for a project by full path (namespace/project). Use this to check which scan profiles are active, pending, failing, or not configured before attaching or detaching. Attach, detach, and inspect GitLab security scan profiles via GraphQL (Ultimate). Scan profiles bundle a security scanning configuration that applies to projects and groups. Returns: JSON with attach/detach confirmations and resolved targets, or per-scan-type profile statuses. Detach is destructive and requires confirmation. Param conventions: for attach, security_scan_profile_id is a built-in scan type (dependency_scanning, sast, secret_detection, or container_scanning) that creates the default profile on the fly; for detach, it is the persisted profile's numeric ID (from list_project_statuses). Targets must belong to a group namespace, not a personal namespace, and share one root namespace. project/group IDs are numeric; project_full_path is namespace/project. - attach: security_scan_profile_id*, project_ids or group_ids* - detach: security_scan_profile_id*, project_ids or group_ids* - list_project_statuses: project_full_path* See also: gitlab_vulnerability, gitlab_project, gitlab_group Annotations: readOnly=false, destructive=true, idempotent=false, openWorld=true **Action Output Schemas:**
attach ```json {"additionalProperties":false,"properties":{"group_ids":{"items":{"type":"integer"},"type":["null","array"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_ids":{"items":{"type":"integer"},"type":["null","array"]},"security_scan_profile_id":{"type":"string"},"status":{"type":"string"}},"required":["status","message","security_scan_profile_id"],"type":"object"} ```
detach ```json {"additionalProperties":false,"properties":{"group_ids":{"items":{"type":"integer"},"type":["null","array"]},"message":{"type":"string"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_ids":{"items":{"type":"integer"},"type":["null","array"]},"security_scan_profile_id":{"type":"string"},"status":{"type":"string"}},"required":["status","message","security_scan_profile_id"],"type":"object"} ```
list_project_statuses ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"project_full_path":{"type":"string"},"statuses":{"items":{"additionalProperties":false,"properties":{"scan_profile":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"scan_type":{"type":"string"}},"required":["id","name","scan_type"],"type":"object"},"status":{"type":"string"}},"required":["status","scan_profile"],"type":"object"},"type":["null","array"]}},"required":["project_full_path","statuses"],"type":"object"} ```
### gitlab_vulnerability **Vulnerability** Use {"action":"list","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://tools/gitlab_vulnerability.. Action guidance: - confirm: Confirm a vulnerability as a genuine finding that needs remediation. Use during triage to move a detected vulnerability to the confirmed state. - dismiss: Dismiss a vulnerability with a reason (for example a false positive or accepted risk). Use during triage to mark a finding as not actionable. - get: Fetch one vulnerability by its global ID. Use after a list result or when the prompt names a concrete vulnerability ID to read its full detail, identifiers, location, linked issues, and merge request. - list: List a project's detected vulnerabilities. Filter by severity, state, scanner, report_type, has_issues, or has_resolution, and page through results when the prompt asks for a security overview or open findings in a known project. - pipeline_security_summary: Return the security report summary for one pipeline run, broken down by scan type (SAST, DAST, and others). Use to review the security results produced by a specific pipeline. - resolve: Resolve a vulnerability once it has been fixed. Use after remediation to mark the finding as resolved. - revert: Revert a vulnerability to its prior detected state, undoing a previous dismiss, confirm, or resolve. Use to re-open a finding for triage. - severity_count: Return a project's vulnerability counts grouped by severity. Use for a quick risk summary before listing individual findings. List, triage, and summarize project vulnerabilities (Premium/Ultimate, GraphQL). Actions: list, get, dismiss, confirm, resolve, revert, severity_count, pipeline_security_summary. Returns: JSON with resource data. The list action accepts first/after cursor pagination and returns action-specific pagination metadata. Void actions return confirmation. Errors: 404 not found, 403 forbidden, 400 invalid params — with actionable hints. Param conventions: * = required. GID format: gid://gitlab/Vulnerability/42. - list: project_path*, severity, state, scanner, report_type (arrays), has_issues, has_resolution, sort, first, after - get / confirm / resolve / revert: id* (GID) - dismiss: id* (GID), comment, dismissal_reason (ACCEPTABLE_RISK/FALSE_POSITIVE/MITIGATING_CONTROL/USED_IN_TESTS/NOT_APPLICABLE) - severity_count: project_path* - pipeline_security_summary: project_path*, pipeline_iid* See also: gitlab_security_finding, gitlab_pipeline Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true **Action Output Schemas:**
confirm ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"vulnerability":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"}},"required":["vulnerability"],"type":"object"} ```
dismiss ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"vulnerability":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"}},"required":["vulnerability"],"type":"object"} ```
get ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"vulnerability":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"}},"required":["vulnerability"],"type":"object"} ```
list ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"pagination":{"additionalProperties":false,"properties":{"end_cursor":{"type":"string"},"has_next_page":{"type":"boolean"},"has_previous_page":{"type":"boolean"},"start_cursor":{"type":"string"}},"required":["has_next_page","has_previous_page"],"type":"object"},"vulnerabilities":{"items":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"},"type":["null","array"]}},"required":["vulnerabilities","pagination"],"type":"object"} ```
pipeline_security_summary ```json {"additionalProperties":false,"properties":{"api_fuzzing":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"cluster_image_scanning":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"container_scanning":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"coverage_fuzzing":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"dast":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"dependency_scanning":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"sast":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"secret_detection":{"additionalProperties":false,"properties":{"scanned_resources_count":{"type":"integer"},"scanned_resources_csv_path":{"type":"string"},"vulnerabilities_count":{"type":"integer"}},"required":["vulnerabilities_count","scanned_resources_count"],"type":["null","object"]},"total_vulnerabilities":{"type":"integer"}},"required":["total_vulnerabilities"],"type":"object"} ```
resolve ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"vulnerability":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"}},"required":["vulnerability"],"type":"object"} ```
revert ```json {"additionalProperties":false,"properties":{"next_steps":{"items":{"type":"string"},"type":["null","array"]},"vulnerability":{"additionalProperties":false,"properties":{"confirmed_at":{"type":"string"},"description":{"type":"string"},"detected_at":{"type":"string"},"dismissal_reason":{"type":"string"},"dismissed_at":{"type":"string"},"has_issues":{"type":"boolean"},"has_merge_request":{"type":"boolean"},"has_solutions":{"type":"boolean"},"id":{"type":"string"},"identifiers":{"items":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":"object"},"type":["null","array"]},"location":{"additionalProperties":false,"properties":{"blob_path":{"type":"string"},"end_line":{"type":"integer"},"file":{"type":"string"},"start_line":{"type":"integer"}},"type":["null","object"]},"primary_identifier":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"external_type":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"type":["null","object"]},"project":{"additionalProperties":false,"properties":{"full_path":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","full_path"],"type":["null","object"]},"report_type":{"type":"string"},"resolved_at":{"type":"string"},"scanner":{"additionalProperties":false,"properties":{"name":{"type":"string"},"scanner_id":{"type":"string"},"vendor":{"type":"string"}},"required":["name"],"type":["null","object"]},"severity":{"type":"string"},"solution":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"web_url":{"type":"string"}},"required":["id","title","severity","state"],"type":"object"}},"required":["vulnerability"],"type":"object"} ```
severity_count ```json {"additionalProperties":false,"properties":{"critical":{"type":"integer"},"high":{"type":"integer"},"info":{"type":"integer"},"low":{"type":"integer"},"medium":{"type":"integer"},"next_steps":{"items":{"type":"string"},"type":["null","array"]},"total":{"type":"integer"},"unknown":{"type":"integer"}},"required":["critical","high","medium","low","info","unknown","total"],"type":"object"} ```
## Individual Tools When `TOOL_SURFACE=individual`, up to 1071 individual tools are registered on GitLab.com Enterprise/Premium; self-managed Enterprise/Premium registers 1065. Grouped by domain: ### access (8 tools) #### gitlab_access_request_approve_group Approve a pending group access request, granting the user membership. Returns: the approved access request with id, username, name, granted access level, and approved state. See also: gitlab_access_request_list_group, gitlab_access_request_deny_group, gitlab_group_member_list. **Parameters:** - `access_level` (integer): Access level to grant (5=Minimal access, 10=Guest, 15=Planner (Premium), 20=Reporter, 25=Security Manager (Premium), 30=Developer, 40=Maintainer, 50=Owner) - `group_id` (string) (required): Group ID or path - `user_id` (integer) (required): User ID of the access requester Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_access_request_approve_project Approve a pending project access request, granting the user membership. Returns: the approved access request with id, username, name, granted access level, and approved state. See also: gitlab_access_request_list_project, gitlab_access_request_deny_project, gitlab_project_member_list. **Parameters:** - `access_level` (integer): Access level to grant (5=Minimal access, 10=Guest, 15=Planner (Premium), 20=Reporter, 25=Security Manager (Premium), 30=Developer, 40=Maintainer) - `project_id` (string) (required): Project ID or path - `user_id` (integer) (required): User ID of the access requester Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_access_request_deny_group Deny a pending group access request, removing it without granting membership. Returns: a success status and confirmation message. See also: gitlab_access_request_list_group, gitlab_access_request_approve_group, gitlab_group_member_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or path - `user_id` (integer) (required): User ID of the access requester Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_access_request_deny_project Deny a pending project access request, removing it without granting membership. Returns: a success status and confirmation message. See also: gitlab_access_request_list_project, gitlab_access_request_approve_project, gitlab_project_member_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `user_id` (integer) (required): User ID of the access requester Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_access_request_list_group List pending access requests for a group. Returns: access requests with id, username, name, state, access level, requested/created timestamps, and pagination metadata. See also: gitlab_access_request_approve_group, gitlab_access_request_deny_group, gitlab_group_member_list. **Parameters:** - `group_id` (string) (required): Group ID or path - `order_by` (string): Column to order results by for keyset-paginated result sets (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_access_request_list_project List pending access requests for a project. Returns: access requests with id, username, name, state, access level, requested/created timestamps, and pagination metadata. See also: gitlab_access_request_approve_project, gitlab_access_request_deny_project, gitlab_project_member_list. **Parameters:** - `order_by` (string): Column to order results by for keyset-paginated result sets (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort order: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_access_request_request_group Request access to a group as the authenticated user. Returns: the created access request with id, username, name, requested state, and requested_at timestamp. See also: gitlab_access_request_list_group, gitlab_access_request_approve_group, gitlab_access_request_deny_group. **Parameters:** - `group_id` (string) (required): Group ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_access_request_request_project Request access to a project as the authenticated user. Returns: the created access request with id, username, name, requested state, and requested_at timestamp. See also: gitlab_access_request_list_project, gitlab_access_request_approve_project, gitlab_access_request_deny_project. **Parameters:** - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### activate (1 tool) #### gitlab_activate_user Activate a deactivated user. Returns: confirmation with the user ID and action. See also: gitlab_deactivate_user, gitlab_unblock_user, gitlab_get_user. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### add (18 tools) #### gitlab_add_commit_discussion_note Add a reply note to an existing commit discussion thread. Returns: the created note (author, body, timestamps, resolvable state). See also: gitlab_create_commit_discussion, gitlab_get_commit_discussion, gitlab_update_commit_discussion_note. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `commit_sha` (string) (required): Commit SHA - `created_at` (string): Backdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID to reply to - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_email Add an email address to the authenticated user's account. Returns: the created email's ID, address, and confirmation timestamp. See also: gitlab_get_email, gitlab_delete_email, gitlab_add_email_for_user. **Parameters:** - `email` (string) (required): Email address to add - `skip_confirmation` (boolean): Skip confirmation email (admin only) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_email_for_user Add an email address to a specific user's account (admin only). Returns: the created email's ID, address, and confirmation timestamp. See also: gitlab_list_emails_for_user, gitlab_delete_email_for_user, gitlab_add_email. **Parameters:** - `email` (string) (required): Email address to add - `skip_confirmation` (boolean): Skip confirmation email (admin only) - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_epic_discussion_note Add a reply note to an existing epic discussion thread. Returns: the created note (id, author username, body, timestamps). See also: gitlab_create_epic_discussion, gitlab_get_epic_discussion, gitlab_update_epic_discussion_note. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `discussion_id` (string) (required): Discussion ID to reply to - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_gpg_key Add a GPG key to the authenticated user's account. Returns: the created key's ID, armored public key, and creation timestamp. See also: gitlab_list_gpg_keys, gitlab_get_gpg_key, gitlab_delete_gpg_key, gitlab_add_gpg_key_for_user. **Parameters:** - `key` (string) (required): The armored GPG public key content Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_gpg_key_for_user Add a GPG key to a specific user's account (admin only). Returns: the created key's ID, armored public key, and creation timestamp. See also: gitlab_list_gpg_keys_for_user, gitlab_get_gpg_key_for_user, gitlab_delete_gpg_key_for_user, gitlab_add_gpg_key. **Parameters:** - `key` (string) (required): The armored GPG public key content - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_group_badge Add a badge to a group. Returns: the created badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_group_badges, gitlab_get_group_badge. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `image_url` (string) (required): Badge image URL (supports placeholders) - `link_url` (string) (required): Badge link URL (supports placeholders) - `name` (string): Badge name Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_group_job_token_allowlist Add a group to a project's CI/CD job token allowlist. Returns: the new allowlist entry with source project ID and target group ID. See also: gitlab_list_job_token_group_allowlist, gitlab_remove_group_job_token_allowlist, gitlab_add_project_job_token_allowlist. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `target_group_id` (integer) (required): ID of the group to add to the allowlist Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_issue_discussion_note Add a reply note to an existing issue discussion thread. Returns: the created note (author, body, timestamps). See also: gitlab_create_issue_discussion, gitlab_get_issue_discussion, gitlab_update_issue_discussion_note. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `created_at` (string): Backdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID to reply to - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_license Add a GitLab Enterprise license. Returns: the installed license with plan, expiration, and entitlements. See also: gitlab_get_license, gitlab_delete_license. **Parameters:** - `license` (string) (required): The license string (Base64-encoded) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_merge_request_to_merge_train Add a merge request to a merge train. Returns: the resulting merge train entries with the merge request, user, pipeline, target branch, status, and duration. See also: gitlab_get_merge_request_on_merge_train, gitlab_list_merge_request_in_merge_train, gitlab_list_project_merge_trains. **Parameters:** - `auto_merge` (boolean): Enable auto-merge when pipeline succeeds - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string): Head SHA of the merge request to verify - `squash` (boolean): Squash commits when merging - `when_pipeline_succeeds` (boolean): Deprecated in 17.11; use auto_merge instead. Merge only when the pipeline succeeds Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_project_badge Add a badge to a project. Returns: the created badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_project_badges, gitlab_get_project_badge. **Parameters:** - `image_url` (string) (required): Badge image URL (supports placeholders) - `link_url` (string) (required): Badge link URL (supports placeholders) - `name` (string): Badge name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_project_job_token_allowlist Add a project to a project's CI/CD job token inbound allowlist. Returns: the new allowlist entry with source and target project IDs. See also: gitlab_list_job_token_inbound_allowlist, gitlab_remove_project_job_token_allowlist, gitlab_add_group_job_token_allowlist. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `target_project_id` (integer) (required): ID of the project to add to the allowlist Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_project_mirror Create a push (remote) mirror on a project. Returns: the created mirror with id, enabled state, redacted URL, and update status. See also: gitlab_list_project_mirrors, gitlab_edit_project_mirror, gitlab_get_project_mirror_public_key. **Parameters:** - `auth_method` (string): Authentication method (password or ssh_public_key) - `enabled` (boolean): Whether the mirror is enabled - `host_keys` (array of strings): SSH host keys for the remote mirror - `keep_divergent_refs` (boolean): Keep divergent refs on the remote - `mirror_branch_regex` (string): Regex pattern for branches to mirror - `only_protected_branches` (boolean): Mirror only protected branches - `project_id` (string) (required): Project ID or URL-encoded path - `url` (string) (required): Remote push mirror URL (e.g. https://user:token@example.com/repo.git). URL-embedded credentials are supported only for push mirrors; treat them as secrets, do not log or store them, and redact tokens or passwords in telemetry/errors Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_snippet_discussion_note Add a reply note to an existing snippet discussion thread. Returns: the created note (author, body, timestamps). See also: gitlab_create_snippet_discussion, gitlab_get_snippet_discussion, gitlab_update_snippet_discussion_note. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `created_at` (string): Backdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID to reply to - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_ssh_key Add an SSH key to the current user. Returns: created key ID, title, usage type, and expiry. See also: gitlab_list_ssh_keys, gitlab_get_ssh_key, gitlab_delete_ssh_key. **Parameters:** - `expires_at` (string): Expiration date in ISO 8601 format (YYYY-MM-DD) - `key` (string) (required): The SSH public key content - `title` (string) (required): A descriptive title for the SSH key - `usage_type` (string): SSH key usage scope: auth (authentication), signing (commit signing), or auth_and_signing (both). Default: auth_and_signing. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_ssh_key_for_user Add an SSH key to a specific user. Returns: created key ID, title, usage type, and expiry. Requires admin token. See also: gitlab_list_ssh_keys_for_user, gitlab_get_ssh_key_for_user, gitlab_delete_ssh_key_for_user. **Parameters:** - `expires_at` (string): Expiration date in ISO 8601 format (YYYY-MM-DD) - `key` (string) (required): The SSH public key content - `title` (string) (required): A descriptive title for the SSH key - `usage_type` (string): SSH key usage scope: auth (authentication), signing (commit signing), or auth_and_signing (both). Default: auth_and_signing. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_add_system_hook Add an instance system hook. Returns: the created system hook with id, url, and triggers. See also: gitlab_edit_system_hook, gitlab_test_system_hook. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy: wildcard, regex, or all_branches - `description` (string): Description for the hook - `enable_ssl_verification` (boolean): Enable SSL verification for the hook URL - `merge_requests_events` (boolean): Trigger on merge request events - `name` (string): Descriptive name for the hook - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events (wildcard, regex, or branch name) - `repository_update_events` (boolean): Trigger on repository update events - `signing_token` (string): Write-only signing token for webhook signature validation - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Secret token for payload validation - `url` (string) (required): Hook URL to receive events Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### approve (1 tool) #### gitlab_approve_user Approve a pending user sign-up. Returns: confirmation with the user ID and action. See also: gitlab_reject_user, gitlab_get_user, gitlab_list_users. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### attach (1 tool) #### gitlab_attach_security_scan_profile Attach a GitLab security scan profile to one or more projects and/or groups via GraphQL. Requires Ultimate. Returns: attach confirmation with the resolved profile and targets. See also: gitlab_detach_security_scan_profile, gitlab_list_project_scan_profile_statuses, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityscanprofileattach **Parameters:** - `group_ids` (array of integers): Numeric IDs of the groups to attach the profile to - `project_ids` (array of integers): Numeric IDs of the projects to attach the profile to - `security_scan_profile_id` (string) (required): Security scan profile identifier: a built-in scan type (dependency_scanning, sast, secret_detection, or container_scanning — attach creates the default profile on the fly) or the persisted profile's numeric database ID (required by detach); a full gid:// global ID is also accepted Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### ban (1 tool) #### gitlab_ban_user Ban a user. Returns: confirmation with the user ID and action. Reversible via gitlab_unban_user. See also: gitlab_unban_user, gitlab_block_user, gitlab_get_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### block (1 tool) #### gitlab_block_user Block a user from signing in. Returns: confirmation with the user ID and action. Reversible via gitlab_unblock_user. See also: gitlab_unblock_user, gitlab_ban_user, gitlab_get_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### board (10 tools) #### gitlab_board_create Create a new issue board in a project. Returns: the created board with its project, scope, and lists. See also: gitlab_board_get, gitlab_board_update, gitlab_board_list. **Parameters:** - `name` (string) (required): Board name - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_board_delete Delete an issue board permanently. Returns: a success confirmation naming the board and project. See also: gitlab_board_get, gitlab_board_list. **Parameters:** - `board_id` (integer) (required): Board ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_board_get Get a single issue board by board_id. Returns: the board with its project, milestone, assignee, scope labels, and ordered lists. See also: gitlab_board_list, gitlab_board_update, gitlab_board_delete. **Parameters:** - `board_id` (integer) (required): Board ID - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_board_list List a project's issue boards with pagination. Returns: each board with its project, milestone, assignee, scope labels, and lists. See also: gitlab_board_get, gitlab_board_create, gitlab_board_list_lists. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_board_list_create Create a board list (column) scoped to a label, assignee, milestone, or iteration. Returns: the created list with its scope, position, and issue limits. See also: gitlab_board_list_get, gitlab_board_list_update, gitlab_board_list_lists. **Parameters:** - `assignee_id` (integer): Assignee ID to create an assignee list - `board_id` (integer) (required): Board ID - `iteration_id` (integer): Iteration ID to create an iteration list - `label_id` (integer): Label ID to create a label list - `milestone_id` (integer): Milestone ID to create a milestone list - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_board_list_delete Delete a board list (column) permanently. Returns: a success confirmation naming the list. See also: gitlab_board_list_get, gitlab_board_list_lists. **Parameters:** - `board_id` (integer) (required): Board ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `list_id` (integer) (required): Board list ID - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_board_list_get Get a single board list by list_id. Returns: the list with its label, assignee, milestone, iteration, position, and issue limits. See also: gitlab_board_list_lists, gitlab_board_list_update, gitlab_board_list_delete. **Parameters:** - `board_id` (integer) (required): Board ID - `list_id` (integer) (required): Board list ID - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_board_list_lists List the lists (columns) in an issue board with pagination. Returns: each list with its label, assignee, milestone, iteration, position, and issue limits. See also: gitlab_board_list_get, gitlab_board_list_create, gitlab_board_get. **Parameters:** - `board_id` (integer) (required): Board ID - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_board_list_update Reorder a board list to a new position. Returns: the updated list with its scope, position, and issue limits. See also: gitlab_board_list_get, gitlab_board_list_lists, gitlab_board_list_delete. **Parameters:** - `board_id` (integer) (required): Board ID - `list_id` (integer) (required): Board list ID - `position` (integer) (required): New position of the list - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_board_update Update an issue board's name, scope (assignee, milestone, labels, weight), or list visibility. Returns: the updated board with its project, scope, and lists. See also: gitlab_board_get, gitlab_board_delete, gitlab_board_list. **Parameters:** - `assignee_id` (integer): Assignee user ID - `board_id` (integer) (required): Board ID - `hide_backlog_list` (boolean): Hide the Open list - `hide_closed_list` (boolean): Hide the Closed list - `labels` (array of strings): Board scope label names - `milestone_id` (integer): Milestone ID - `name` (string): Board name - `project_id` (string) (required): Project ID or path - `weight` (integer): Board scope weight Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### branch (7 tools) #### gitlab_branch_create Create a branch from a source ref (branch, tag, or commit SHA). Returns: the created branch with its head commit object, protection and default flags, and web URL. See also: gitlab_branch_list, gitlab_merge_request_create, gitlab_repository_compare. **Parameters:** - `branch_name` (string) (required): New branch name (param 'branch_name' not 'branch' or 'name') - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Branch name, tag, or commit SHA to create from Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_branch_delete Delete a single branch by name. Returns: a success confirmation. Fails for protected or default branches. See also: gitlab_branch_list, gitlab_branch_unprotect. **Parameters:** - `branch_name` (string) (required): Branch name to delete - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_branch_delete_merged Delete all branches merged into the default branch. Returns: a success confirmation. Protected and default branches are skipped. See also: gitlab_branch_list, gitlab_merge_request_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_branch_get Get a single branch by name. Returns: the branch with protection, default, and merged flags, push/merge permissions, the head commit object, and web URL. See also: gitlab_branch_list, gitlab_branch_protect, gitlab_branch_unprotect. **Parameters:** - `branch_name` (string) (required): Branch name to retrieve (param 'branch_name' not 'branch') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_branch_list List repository branches in one project with optional search/regex filtering, ordering, and offset or keyset pagination. Returns: matching branches with protection, default, merged flags, the head commit object, and pagination metadata. See also: gitlab_branch_get, gitlab_branch_create, gitlab_repository_compare. **Parameters:** - `order_by` (string): Column to order results by (e.g. name, updated) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `regex` (string): Filter branches whose names match this regular expression - `search` (string): Filter branches by name (substring match) - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_branch_protect Protect a branch or wildcard with push/merge/unprotect access levels and optional fine-grained allowed_to_push/merge/unprotect entries. Returns: the protected rule with its access-level arrays. Idempotent: returns the existing rule when the branch is already protected. See also: gitlab_branch_unprotect, gitlab_protected_branch_get, gitlab_protected_branch_update. **Parameters:** - `allow_force_push` (boolean): Allow force push to this branch - `allowed_to_merge` (array of objects): Fine-grained merge access entries (by user, group, deploy key, or access level) - `allowed_to_push` (array of objects): Fine-grained push access entries (by user, group, deploy key, or access level) - `allowed_to_unprotect` (array of objects): Fine-grained unprotect access entries (by user, group, deploy key, or access level) - `branch_name` (string) (required): Branch name or wildcard (e.g. 'main' or 'release/*') - `code_owner_approval_required` (boolean): Require CODEOWNERS approval for changes to matching files - `merge_access_level` (integer): Access level for merge: 0=No access, 30=Developer, 40=Maintainer. Use an integer. - `project_id` (string) (required): Project ID or URL-encoded path - `push_access_level` (integer): Access level for push: 0=No access, 30=Developer, 40=Maintainer. Use an integer. - `unprotect_access_level` (integer): Access level allowed to unprotect (0=No access 30=Developer 40=Maintainer) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_branch_unprotect Remove protection from a branch (idempotent). Returns: a status and message confirming protection removed or already absent. See also: gitlab_branch_protect, gitlab_protected_branch_get, gitlab_branch_delete. **Parameters:** - `branch_name` (string) (required): Name of the protected branch to remove - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### bulk (1 tool) #### gitlab_bulk_update_security_attributes Add, remove, or replace GitLab security attributes on multiple groups and projects via GraphQL. Requires Premium or Ultimate. Returns: bulk update status, execution mode, and selected target/attribute IDs. See also: gitlab_security_attribute, gitlab_project, gitlab_group. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationbulkupdatesecurityattributes **Parameters:** - `attribute_ids` (array of integers) (required): Security attribute IDs to apply - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_ids` (array of integers): Numeric group IDs to update - `mode` (string) (required): Bulk update mode: ADD, REMOVE, or REPLACE - `project_ids` (array of integers): Numeric project IDs to update Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### cancel (2 tools) #### gitlab_cancel_bulk_import Cancel a bulk import. Returns: the bulk import with its updated (canceled) status. See also: gitlab_get_bulk_import, gitlab_list_bulk_imports. **Parameters:** - `id` (integer) (required): Bulk import ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_cancel_github_import Cancel a GitHub import. Returns: the project with its updated import status. See also: gitlab_import_from_github, gitlab_import_github_gists. **Parameters:** - `project_id` (integer) (required): The GitLab project ID of the import to cancel Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### change (1 tool) #### gitlab_change_plan_limits Change plan limits. Returns: the updated plan limit values. See also: gitlab_get_plan_limits, gitlab_get_settings. **Parameters:** - `conan_max_file_size` (integer): Maximum Conan package file size in bytes - `generic_packages_max_file_size` (integer): Maximum generic package file size in bytes - `helm_max_file_size` (integer): Maximum Helm chart file size in bytes - `maven_max_file_size` (integer): Maximum Maven package file size in bytes - `npm_max_file_size` (integer): Maximum NPM package file size in bytes - `nuget_max_file_size` (integer): Maximum NuGet package file size in bytes - `plan_name` (string) (required): Plan name to update (e.g. default, free, bronze, silver, gold, premium, ultimate) - `pypi_max_file_size` (integer): Maximum PyPI package file size in bytes - `terraform_module_max_file_size` (integer): Maximum Terraform module file size in bytes Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### ci (7 tools) #### gitlab_ci_lint Validate inline .gitlab-ci.yml content within a project namespace. Returns: validity flag, errors, warnings, the merged YAML, and resolved includes. See also: gitlab_ci_lint_project, gitlab_pipeline_create, gitlab_list_catalog_resources. **Parameters:** - `content` (string) (required): CI/CD YAML content to validate - `dry_run` (boolean) (required): Run pipeline creation simulation - `include_jobs` (boolean) (required): Include expanded job list in the response - `project_id` (string) (required): Project ID or URL-encoded path (namespace context) - `ref` (string) (required): Branch or tag to use for CI includes resolution Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ci_lint_project Validate a project's committed .gitlab-ci.yml at a branch or tag. Returns: validity flag, errors, warnings, the merged YAML, and resolved includes. See also: gitlab_ci_lint, gitlab_pipeline_create, gitlab_file_get. **Parameters:** - `content_ref` (string) (required): Branch or tag to use for the CI configuration content - `dry_run` (boolean) (required): Run pipeline creation simulation - `dry_run_ref` (string) (required): Branch or tag to use as context for the dry run - `include_jobs` (boolean) (required): Include expanded job list in the response - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Branch or tag to use for CI includes resolution Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ci_variable_create Create a CI/CD variable in a project with type, environment scope, and protected/masked/raw/masked_and_hidden flags. Returns: the created variable's key, value (redacted when masked or hidden), type, flags, environment scope, and description. See also: gitlab_ci_variable_list, gitlab_ci_variable_get, gitlab_ci_variable_update. **Parameters:** - `description` (string) (required): Variable description - `environment_scope` (string) (required): Environment scope (default: *) - `key` (string) (required): Variable key name - `masked` (boolean) (required): Mask variable value in job logs - `masked_and_hidden` (boolean) (required): Mask and hide variable value - `project_id` (string) (required): Project ID or URL-encoded path - `protected` (boolean) (required): Only expose in protected branches/tags - `raw` (boolean) (required): Treat variable value as raw string - `value` (string) (required): Variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_ci_variable_delete Delete a CI/CD variable by key, selecting an environment-scoped instance via the filter. Returns: a success confirmation message. See also: gitlab_ci_variable_list, gitlab_ci_variable_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment_scope` (string) (required): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `key` (string) (required): Variable key name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_ci_variable_get Get a single CI/CD variable by key, optionally selecting an environment-scoped instance via the filter. Returns: the variable's key, value (redacted when masked or hidden), type, protected/masked/hidden/raw flags, environment scope, and description. See also: gitlab_ci_variable_list, gitlab_ci_variable_update, gitlab_ci_variable_delete. **Parameters:** - `environment_scope` (string) (required): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `key` (string) (required): Variable key name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ci_variable_list List a project's CI/CD variables with order_by, sort, and offset or keyset pagination. Returns: each variable's key, type, protected/masked/hidden/raw flags, environment scope, description, and pagination metadata. See also: gitlab_ci_variable_get, gitlab_ci_variable_create, gitlab_ci_variable_update. **Parameters:** - `order_by` (string): Column by which to order keyset-paginated results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset-paginated results (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ci_variable_update Update a CI/CD variable, selecting an environment-scoped instance via the filter. Returns: the updated variable's key, value (redacted when masked or hidden), type, protected/masked/hidden/raw flags, environment scope, and description. See also: gitlab_ci_variable_get, gitlab_ci_variable_list, gitlab_ci_variable_delete. **Parameters:** - `description` (string) (required): Updated variable description - `environment_scope` (string) (required): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `key` (string) (required): Variable key name - `masked` (boolean) (required): Mask variable value in job logs - `project_id` (string) (required): Project ID or URL-encoded path - `protected` (boolean) (required): Only expose in protected branches/tags - `raw` (boolean) (required): Treat variable value as raw string - `value` (string) (required): Updated variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### commit (13 tools) #### gitlab_commit_cherry_pick Cherry-pick a commit onto a target branch, optionally as a dry run. Returns: the newly created commit (SHA, title, author, dates, web URL) or a conflict error. See also: gitlab_commit_get, gitlab_branch_list, gitlab_commit_revert. **Parameters:** - `branch` (string) (required): Target branch name - `dry_run` (boolean): If true, does not create the commit but checks for conflicts - `message` (string): Custom commit message (defaults to original) - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA to cherry-pick Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_commit_comment_create Post a comment on a commit, optionally inline on a specific file path and line. Returns: the created comment with note text, author user object, and optional path/line/line_type. See also: gitlab_commit_comments, gitlab_commit_diff, gitlab_commit_get. **Parameters:** - `line` (integer): Line number to comment on - `line_type` (string): Line type: new or old (default: new) - `note` (string) (required): Comment text - `path` (string): File path to comment on (for inline comments) - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_commit_comments List the comments on a commit. Returns: comment entries with note text, author user object, optional file path, line, and line type, plus pagination metadata. See also: gitlab_commit_comment_create, gitlab_commit_get, gitlab_commit_diff. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_create Create a commit with multiple file actions (create/update/delete/move/chmod) on a branch in one call. Returns: the created commit with SHA, title, author/committer, dates, parent IDs, stats, trailers, and web URL. See also: gitlab_branch_list, gitlab_repository_tree, gitlab_commit_get. **Parameters:** - `actions` (array of objects) (required): List of file actions (create, update, delete, move, chmod) - `author_email` (string): Custom author email - `author_name` (string): Custom author name - `branch` (string) (required): Target branch name - `commit_message` (string) (required): Commit message - `force` (boolean): When true, force-overwrite the target branch even if a conflict exists - `project_id` (string) (required): Project ID or URL-encoded path - `start_branch` (string): Branch to start from if target branch does not exist - `start_project` (string): Project ID or path of the source project to start the branch from (for cross-project commits) - `start_sha` (string): SHA to start from if target branch does not exist (alternative to start_branch) - `stats` (boolean): Include commit stats (additions, deletions, total) in the response Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_commit_diff Get the file diffs of a single commit, optionally in unified-diff format. Returns: per-file diffs (old/new path, diff body, new/renamed/deleted flags, file modes) with pagination metadata. See also: gitlab_commit_get, gitlab_commit_list, gitlab_commit_comments. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA hash to get diffs for - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `unidiff` (boolean): Return diffs in unified diff format Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_get Get a single commit from a project by SHA (full, short, branch, or tag). Returns: full commit metadata, message, parent IDs, author/committer, dates, stats, trailers, project ID, and last pipeline. See also: gitlab_commit_list, gitlab_commit_diff, gitlab_commit_refs, gitlab_commit_statuses. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA hash to retrieve - `stats` (boolean): Include commit stats (additions, deletions, total); defaults to true on GitLab Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_list List repository commits for a project, optionally filtered by ref_name, since/until, path, or author. Returns: commit summaries (SHA, title, author, dates, parent IDs, stats, trailers, last pipeline) with pagination metadata. See also: gitlab_commit_get, gitlab_commit_diff, gitlab_commit_statuses, gitlab_branch_list. **Parameters:** - `all` (boolean): Retrieve every commit from the whole repository (across all branches) - `author` (string): Filter by commit author name or email - `first_parent` (boolean): Follow only the first parent commit upon seeing a merge commit - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `path` (string): File path to filter commits by (only commits touching this path) - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `ref_name` (string): Branch name, tag, or commit SHA to list commits from (default: default branch) - `since` (string): Return commits after this date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `trailers` (boolean): Parse and include Git trailers for every commit - `until` (string): Return commits before this date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `with_stats` (boolean): Include commit stats (additions, deletions, total) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_merge_requests List merge requests associated with a commit. Returns: basic MR entries with IID, title, state, source/target branches, web URL, and author. See also: gitlab_commit_get, gitlab_mr_get, gitlab_mr_changes_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_refs List branches and tags that reference (contain) a commit, optionally filtered by ref type. Returns: ref entries with type and name plus pagination metadata. See also: gitlab_commit_get, gitlab_branch_list, gitlab_tag_list. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA to look up - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `type` (string): Filter by ref type: branch, tag, or all (default: all) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_revert Revert a commit on a target branch, creating a new commit that undoes it. Returns: the newly created revert commit (SHA, title, author, dates, web URL) or a conflict error. See also: gitlab_commit_get, gitlab_branch_list, gitlab_commit_cherry_pick. **Parameters:** - `branch` (string) (required): Target branch name - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA to revert Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_commit_signature Get the signature (GPG/X.509/SSH) of a commit for authenticity verification. Returns: the signing key ID, primary key ID, signer name/email, verification status, and optional subkey ID. See also: gitlab_commit_get, gitlab_commit_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Commit SHA Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_status_set Set or update the pipeline status of a commit (used by external CI/reporting integrations). Returns: the resulting status with state, name, ref, coverage, pipeline ID, timestamps, and author user object. See also: gitlab_commit_statuses, gitlab_commit_get, gitlab_pipeline_list. **Parameters:** - `context` (string): Status context label (overrides name) - `coverage` (number): Code coverage percentage - `description` (string): Short description of the status - `name` (string): Status name / context - `pipeline_id` (integer): Pipeline ID to associate the status with - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch or tag name - `sha` (string) (required): Commit SHA - `state` (string) (required): Status state: pending, running, success, failed, canceled - `target_url` (string): URL to link from the status Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_commit_statuses List the statuses of a commit (CI jobs and external integrations), filtered by ref, stage, name, or pipeline. Returns: status entries with state, name, ref, coverage, pipeline ID, timestamps, and author user object, plus pagination metadata. See also: gitlab_commit_status_set, gitlab_commit_get, gitlab_pipeline_list. **Parameters:** - `all` (boolean): Return all statuses including retries - `name` (string): Status name filter - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `pipeline_id` (integer): Pipeline ID filter - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch or tag name filter - `sha` (string) (required): Commit SHA - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `stage` (string): Stage name filter Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### confirm (1 tool) #### gitlab_confirm_vulnerability Confirm a vulnerability as a real finding. Returns: the updated vulnerability with its new confirmed state and timestamp. See also: gitlab_get_vulnerability, gitlab_dismiss_vulnerability, gitlab_resolve_vulnerability. **Parameters:** - `id` (string) (required): Vulnerability GID (e.g. gid://gitlab/Vulnerability/42) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### create (30 tools) #### gitlab_create_application Create an instance OAuth application. Returns: the application with application_id and secret (shown once). See also: gitlab_list_applications, gitlab_delete_application. **Parameters:** - `confidential` (boolean): Whether application is confidential - `name` (string) (required): Application name - `redirect_uri` (string) (required): OAuth2 redirect URI - `scopes` (string) (required): Space-separated list of scopes Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_broadcast_message Create a broadcast message. Returns: the created message with id, theme, target, and schedule. See also: gitlab_update_broadcast_message, gitlab_list_broadcast_messages. **Parameters:** - `broadcast_type` (string): Type: banner or notification - `dismissable` (boolean): Whether message can be dismissed - `ends_at` (string): End time in ISO 8601 format - `font` (string): Font for the message - `message` (string) (required): Message text. Supports Markdown. - `starts_at` (string): Start time in ISO 8601 format - `target_access_levels` (array of integers): Access levels to target (5=Minimal access,10=Guest,15=Planner (Premium/Ultimate),20=Reporter,25=Security Manager (Premium/Ultimate),30=Developer,40=Maintainer,50=Owner,60=Admin where supported) - `target_path` (string): Target path to show message on - `theme` (string): Theme: indigo, light-indigo, blue, light-blue, green, light-green, red, light-red Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_cluster_agent_token Create a cluster agent token. Returns: the created token including the secret value (shown once). See also: gitlab_list_cluster_agent_tokens, gitlab_revoke_cluster_agent_token. **Parameters:** - `agent_id` (integer) (required): Agent ID - `description` (string) (required): Token description - `name` (string) (required): Token name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_commit_discussion Create a new discussion thread on a commit, optionally as an inline diff comment. Returns: the created thread with its first note (author, body, resolvable state, diff position). See also: gitlab_add_commit_discussion_note, gitlab_list_commit_discussions, gitlab_commit_diff. **Parameters:** - `body` (string) (required): Discussion body (Markdown supported) - `commit_sha` (string) (required): Commit SHA - `created_at` (string): Backdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `position` (object): Position for inline diff comments - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_current_user_pat Create a personal access token for the current user. Returns: token ID, the secret token, scopes, and expiry. See also: gitlab_user_current, gitlab_create_user_runner. **Parameters:** - `description` (string): Description for the token - `expires_at` (string): Token expiration date (YYYY-MM-DD) - `name` (string) (required): Name of the personal access token - `scopes` (array of strings) (required): Array of scopes Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_custom_emoji Create a custom emoji in a GitLab group via GraphQL API. Requires group path, emoji name (without colons), and image URL. Returns: created emoji with ID, name, URL, and created date. See also: gitlab_list_custom_emoji, gitlab_delete_custom_emoji. **Parameters:** - `group_path` (string) (required): required,Group full path (e.g. my-group) - `name` (string) (required): required,Emoji name without colons (e.g. party_parrot) - `url` (string) (required): required,URL to the emoji image (PNG or GIF recommended) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_dependency_list_export Create a dependency list export (SBOM) for a pipeline. Returns: export ID and status. Use gitlab_get_dependency_list_export to check status, then gitlab_download_dependency_list_export to download. See also: gitlab_get_dependency_list_export, gitlab_download_dependency_list_export. **Parameters:** - `export_type` (string): Export type (default: sbom) - `pipeline_id` (integer) (required): Pipeline ID to export dependencies from Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_epic_discussion Create a new discussion thread on a group epic with an initial note. Returns: the created thread (discussion id) with its first note. See also: gitlab_add_epic_discussion_note, gitlab_list_epic_discussions, gitlab_epic_note_create. **Parameters:** - `body` (string) (required): Discussion body (Markdown supported) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_error_tracking_client_key Create an error-tracking client key. Returns: the created client key with public_key and sentry_dsn. See also: gitlab_list_error_tracking_client_keys, gitlab_get_error_tracking_settings. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_freeze_period Create a deploy freeze period with cron-based start and end times. **Parameters:** - `cron_timezone` (string): Timezone for cron expressions (e.g. America/New_York) - `freeze_end` (string) (required): Cron expression for freeze end (e.g. 0 7 * * 1) - `freeze_start` (string) (required): Cron expression for freeze start (e.g. 0 23 * * 5) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_geo_site Create a new Geo site. Returns: the site with id, name, url, primary/enabled flags, capacities, selective-sync settings, and navigation links. See also: gitlab_list_geo_sites, gitlab_get_geo_site, gitlab_edit_geo_site. **Parameters:** - `container_repositories_max_capacity` (integer): Max number of concurrent container repository syncs - `enabled` (boolean): Whether the site is enabled - `files_max_capacity` (integer): Max number of LFS/attachment backfill downloads - `internal_url` (string): Internal URL of the Geo site - `minimum_reverification_interval` (integer): Minimum interval (days) before re-verification - `name` (string): Unique name of the Geo site - `primary` (boolean): Whether this is a primary site - `repos_max_capacity` (integer): Max number of concurrent repository backfill syncs - `selective_sync_namespace_ids` (array of integers): Namespace IDs to sync (when selective_sync_type=namespaces) - `selective_sync_shards` (array of strings): Storage shards to sync (when selective_sync_type=shards) - `selective_sync_type` (string): Selective sync type: namespaces or shards - `sync_object_storage` (boolean): Whether to sync object-stored data - `url` (string): External URL of the Geo site - `verification_max_capacity` (integer): Max number of concurrent verification jobs Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_group_member_role Create a group-level custom member role. Returns: the created role with id, name, base_access_level, and its enabled permission flags. See also: gitlab_list_group_member_roles, gitlab_delete_group_member_role, gitlab_create_instance_member_role. **Parameters:** - `admin_cicd_variables` (boolean): Allow admin CI/CD variables - `admin_compliance_framework` (boolean): Allow admin compliance framework - `admin_group_member` (boolean): Allow admin group members - `admin_merge_request` (boolean): Allow admin merge requests - `admin_push_rules` (boolean): Allow admin push rules - `admin_terraform_state` (boolean): Allow admin Terraform state - `admin_vulnerability` (boolean): Allow admin vulnerability - `admin_web_hook` (boolean): Allow admin webhooks - `archive_project` (boolean): Allow archive project - `base_access_level` (integer) (required): Base access level (5=Minimal access, 10=Guest, 15=Planner, 20=Reporter, 25=Security Manager, 30=Developer, 40=Maintainer, 50=Owner; 60=Admin is not valid) - `description` (string): Description of the custom role - `group_id` (string) (required): Group ID or URL-encoded path - `manage_deploy_tokens` (boolean): Allow manage deploy tokens - `manage_group_access_tokens` (boolean): Allow manage group access tokens - `manage_merge_request_settings` (boolean): Allow manage MR settings - `manage_project_access_tokens` (boolean): Allow manage project access tokens - `manage_security_policy_link` (boolean): Allow manage security policy link - `name` (string) (required): Name of the custom role - `read_code` (boolean): Allow read code - `read_dependency` (boolean): Allow read dependency - `read_runners` (boolean): Allow read runners - `read_vulnerability` (boolean): Allow read vulnerability - `remove_group` (boolean): Allow remove group - `remove_project` (boolean): Allow remove project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_group_ssh_certificate Register a new SSH CA certificate on a group from a CA public key and title. Returns: the created certificate's id, title, public key, and creation timestamp. See also: gitlab_list_group_ssh_certificates, gitlab_delete_group_ssh_certificate, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `key` (string) (required): SSH public key content - `title` (string) (required): Title for the SSH certificate Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_impersonation_token Create an impersonation token for a user with the given scopes and optional expiry. Returns: the new token's id, name, active flag, scopes, revoked flag, created_at, expires_at, and the secret token value (shown once). See also: gitlab_list_impersonation_tokens, gitlab_revoke_impersonation_token, gitlab_create_personal_access_token. **Parameters:** - `expires_at` (string): Token expiration date (YYYY-MM-DD) - `name` (string) (required): Name of the impersonation token - `scopes` (array of strings) (required): Array of scopes (api/read_user/read_api/read_repository/write_repository/read_registry/write_registry/sudo/admin_mode/create_runner/manage_runner/ai_features/k8s_proxy) - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_instance_member_role Create an instance-level custom member role. Returns: the created role with id, name, base_access_level, and its enabled permission flags. See also: gitlab_list_instance_member_roles, gitlab_delete_instance_member_role, gitlab_create_group_member_role. **Parameters:** - `admin_cicd_variables` (boolean): Allow admin CI/CD variables - `admin_compliance_framework` (boolean): Allow admin compliance framework - `admin_group_member` (boolean): Allow admin group members - `admin_merge_request` (boolean): Allow admin merge requests - `admin_push_rules` (boolean): Allow admin push rules - `admin_terraform_state` (boolean): Allow admin Terraform state - `admin_vulnerability` (boolean): Allow admin vulnerability - `admin_web_hook` (boolean): Allow admin webhooks - `archive_project` (boolean): Allow archive project - `base_access_level` (integer) (required): Base access level (5=Minimal access, 10=Guest, 15=Planner, 20=Reporter, 25=Security Manager, 30=Developer, 40=Maintainer, 50=Owner; 60=Admin is not valid) - `description` (string): Description of the custom role - `manage_deploy_tokens` (boolean): Allow manage deploy tokens - `manage_group_access_tokens` (boolean): Allow manage group access tokens - `manage_merge_request_settings` (boolean): Allow manage MR settings - `manage_project_access_tokens` (boolean): Allow manage project access tokens - `manage_security_policy_link` (boolean): Allow manage security policy link - `name` (string) (required): Name of the custom role - `read_code` (boolean): Allow read code - `read_dependency` (boolean): Allow read dependency - `read_runners` (boolean): Allow read runners - `read_vulnerability` (boolean): Allow read vulnerability - `remove_group` (boolean): Allow remove group - `remove_project` (boolean): Allow remove project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_issue_discussion Create a new discussion thread on an issue with an initial note. Returns: the created thread with its first note. See also: gitlab_add_issue_discussion_note, gitlab_list_issue_discussions, gitlab_issue_note_create. **Parameters:** - `body` (string) (required): Discussion body (Markdown supported) - `created_at` (string): Backdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_mr_context_commits Attach existing repository commit SHAs to a merge request as context commits. Returns: the resulting context commit summaries (full SHA, short SHA, title, author name/email, created date). See also: gitlab_list_mr_context_commits, gitlab_delete_mr_context_commits, gitlab_commit_get. **Parameters:** - `commits` (array of strings) (required): List of commit SHAs to add as context - `merge_request_iid` (integer) (required): Merge request IID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_package_protection_rule Create a package protection rule for a project. Returns: the new rule's id, project id, package name pattern, package type, and minimum push/delete access levels. See also: gitlab_list_package_protection_rules, gitlab_update_package_protection_rule, gitlab_delete_package_protection_rule. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level for delete (maintainer, owner, admin) - `minimum_access_level_for_push` (string): Minimum access level for push (maintainer, owner, admin) - `package_name_pattern` (string) (required): Package name pattern with optional wildcards (e.g. @my-scope/my-pkg*) - `package_type` (string) (required): Package type (npm, pypi, maven, generic, etc.) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_personal_access_token Create a personal access token for a user with the given scopes, optional description, and optional expiry. Returns: the new token's id, name, active flag, scopes, revoked flag, description, user_id, created_at, expires_at, and the secret token value (shown once). See also: gitlab_create_impersonation_token, gitlab_list_impersonation_tokens. **Parameters:** - `description` (string): Description for the token - `expires_at` (string): Token expiration date (YYYY-MM-DD) - `name` (string) (required): Name of the personal access token - `scopes` (array of strings) (required): Array of scopes - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_project_alias Create a project alias mapping a unique name to a numeric project_id (admin-only). Returns: the created alias with id, project_id, and name. See also: gitlab_list_project_aliases, gitlab_get_project_alias, gitlab_delete_project_alias. **Parameters:** - `name` (string) (required): The alias name to create - `project_id` (integer) (required): The numeric project ID to alias Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_project_external_status_check Create an external status check service for a project. Returns: the created check with id, name, external_url, hmac, and protected branches. See also: gitlab_list_project_external_status_checks, gitlab_update_project_external_status_check, gitlab_delete_project_external_status_check. **Parameters:** - `external_url` (string) (required): External URL for the status check - `name` (string) (required): Name of the external status check - `project_id` (string) (required): Project ID or URL-encoded path - `protected_branch_ids` (array of integers): IDs of protected branches to scope the check to - `shared_secret` (string): Shared secret for HMAC verification Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_secure_file Create a secure file. Returns: the created secure file with id, name, and checksum. See also: gitlab_list_secure_files, gitlab_show_secure_file. **Parameters:** - `content_base64` (string): Base64-encoded file content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local file on the MCP server filesystem. Alternative to content_base64. Only one of file_path or content_base64 should be provided. - `name` (string) (required): Name for the secure file - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_security_attribute Create one or more GitLab security attributes under a security category via GraphQL. Requires Premium or Ultimate. Returns: created security attributes and their categories. See also: gitlab_security_category, gitlab_project, gitlab_group. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityattributecreate **Parameters:** - `attributes` (array of objects) (required): Security attributes to create - `category_id` (integer) (required): Numeric security category ID - `namespace_id` (integer) (required): Numeric namespace ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_security_category Create a GitLab security category in a namespace via GraphQL. Requires Premium or Ultimate. Returns: created security category. See also: gitlab_security_attribute, gitlab_group, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecuritycategorycreate **Parameters:** - `description` (string): Security category description - `multiple_selection` (boolean): Whether multiple attributes can be selected for the category - `name` (string) (required): Security category name - `namespace_id` (integer) (required): Numeric namespace ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_service_account Create an instance-level service account. Returns: the created service account with ID, username, name, and email. Requires admin token. See also: gitlab_list_service_accounts, gitlab_update_instance_service_account. **Parameters:** - `email` (string): Email for the service account - `name` (string): Name for the service account - `username` (string): Username for the service account Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_snippet_discussion Create a new discussion thread on a project snippet with an initial note. Returns: the created thread with its first note. See also: gitlab_add_snippet_discussion_note, gitlab_list_snippet_discussions, gitlab_snippet_note_create. **Parameters:** - `body` (string) (required): Discussion body (Markdown supported) - `created_at` (string): Backdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_topic Create an instance project topic. Returns: the created topic with id, name, title, and description. See also: gitlab_update_topic, gitlab_list_topics. **Parameters:** - `description` (string): Topic description - `name` (string) (required): Topic name (slug-like unique identifier) - `title` (string): Topic display title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_user Create a user account. Returns: created user identity and profile summary fields. See also: gitlab_get_user, gitlab_modify_user, gitlab_block_user. **Parameters:** - `admin` (boolean): Grant admin privileges - `auditor` (boolean): Grant auditor privileges (Premium/Ultimate) - `bio` (string): User bio text - `can_create_group` (boolean): Allow the user to create groups - `color_scheme_id` (integer): Syntax-highlighting color scheme ID - `commit_email` (string): Email used for commits - `discord` (string): Discord account - `email` (string) (required): The user email address - `extern_uid` (string): External UID for the provider - `external` (boolean): Mark user as external - `extra_shared_runners_minutes_limit` (integer): Extra shared runners minutes (admin, Premium/Ultimate) - `force_random_password` (boolean): Set a random password instead of requiring one - `github` (string): GitHub account - `group_id_for_saml` (integer): Group ID for SAML provisioning - `job_title` (string): User job title - `linkedin` (string): LinkedIn account - `location` (string): User location - `name` (string) (required): The user display name - `note` (string): Admin note about the user - `organization` (string): User organization - `password` (string): The user password (required unless reset_password or force_random_password is set) - `private_profile` (boolean): Make the user's profile private - `projects_limit` (integer): Maximum number of projects the user can create - `pronouns` (string): User pronouns - `provider` (string): External provider name (use with extern_uid) - `public_email` (string): Publicly visible email address - `reset_password` (boolean): Send a password reset email instead of setting password - `shared_runners_minutes_limit` (integer): Shared runners minutes limit (admin, Premium/Ultimate) - `skip_confirmation` (boolean): Skip confirmation email and activate user immediately - `skype` (string): Skype account - `theme_id` (integer): GitLab theme ID for the user's UI - `twitter` (string): Twitter/X account - `username` (string) (required): The username - `view_diffs_file_by_file` (boolean): Show whitespace changes in diffs file by file - `website_url` (string): User website URL Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_user_runner Create a runner linked to the current user. Returns: runner ID, authentication token, and token expiry. See also: gitlab_user_current, gitlab_create_current_user_pat. **Parameters:** - `access_level` (string): Access level: not_protected or ref_protected - `description` (string): Runner description - `group_id` (integer): Group ID (required for group_type runners) - `locked` (boolean): Whether the runner should be locked - `maintenance_note` (string): Maintenance note for the runner - `maximum_timeout` (integer): Maximum timeout for jobs in seconds - `paused` (boolean): Whether the runner should be paused - `project_id` (integer): Project ID (required for project_type runners) - `run_untagged` (boolean): Whether the runner can run untagged jobs - `runner_type` (string) (required): Runner scope: instance_type (shared), group_type (requires group_id), or project_type (requires project_id). - `tag_list` (array of strings): List of runner tags Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_create_work_item Create a new work item under a namespace. Returns: the created work item with id, iid, type, state, title, description, assignees, labels, linked items, child work items, and web URL. Experimental. See also: gitlab_get_work_item, gitlab_list_work_items, gitlab_list_work_item_types. **Parameters:** - `assignee_ids` (array of integers): Global IDs of assignees - `color` (string): Color hex code (e.g. #fefefe) - `confidential` (boolean): Whether the work item is confidential - `description` (string): Description of the work item - `due_date` (string): Due date (YYYY-MM-DD) - `full_path` (string) (required): Full path of the project or group - `health_status` (string): Health status (onTrack/needsAttention/atRisk) - `label_ids` (array of integers): Global IDs of labels - `linked_items` (object): Linked work items to add on creation - `milestone_id` (integer): Global ID of the milestone - `start_date` (string): Start date (YYYY-MM-DD) - `status` (string): Work item status: TODO, IN_PROGRESS, DONE, WONT_DO, or DUPLICATE - `title` (string) (required): Title of the work item - `weight` (integer): Weight of the work item - `work_item_type_id` (string) (required): Global ID of work item type (e.g. gid://gitlab/WorkItems::Type/1 for Issue) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### current (1 tool) #### gitlab_current_user_status Get the current user's status. Returns: emoji, message, availability, and clear-status time. See also: gitlab_set_user_status, gitlab_get_user_status, gitlab_user_current. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### deactivate (1 tool) #### gitlab_deactivate_user Deactivate an active user. Returns: confirmation with the user ID and action. Reversible via gitlab_activate_user. See also: gitlab_activate_user, gitlab_block_user, gitlab_get_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### delete (49 tools) #### gitlab_delete_alert_metric_image Delete an alert metric image. Returns: a success status. See also: gitlab_list_alert_metric_images, gitlab_upload_alert_metric_image. **Parameters:** - `alert_iid` (integer) (required): Alert IID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `image_id` (integer) (required): Metric image ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_application Delete an instance OAuth application. Returns: a success status. See also: gitlab_list_applications, gitlab_create_application. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): Application ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_broadcast_message Delete a broadcast message. Returns: a success status. See also: gitlab_get_broadcast_message, gitlab_create_broadcast_message. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): Broadcast message ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_cluster_agent Delete a cluster agent. Returns: a success status. See also: gitlab_get_cluster_agent, gitlab_register_cluster_agent. **Parameters:** - `agent_id` (integer) (required): Agent ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_commit_discussion_note Delete a note from a commit discussion thread (destructive). Returns: a deletion confirmation message. See also: gitlab_update_commit_discussion_note, gitlab_get_commit_discussion, gitlab_list_commit_discussions. **Parameters:** - `commit_sha` (string) (required): Commit SHA - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `discussion_id` (string) (required): Discussion ID - `note_id` (integer) (required): Note ID to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_custom_attribute Delete a custom attribute. Returns: a success status. See also: gitlab_get_custom_attribute, gitlab_set_custom_attribute. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key` (string) (required): Attribute key to delete - `resource_id` (integer) (required): ID of the resource - `resource_type` (string) (required): Resource type: user, group, or project Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_custom_emoji Delete a custom emoji from a GitLab group via GraphQL API. Requires the emoji GID. Returns: confirmation message. See also: gitlab_list_custom_emoji. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (string) (required): required,Custom emoji GID (e.g. gid://gitlab/CustomEmoji/1) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_email Delete an email address from the authenticated user's account. Returns: a confirmation naming the deleted email ID. See also: gitlab_get_email, gitlab_add_email, gitlab_delete_email_for_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `email_id` (integer) (required): Email ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_email_for_user Delete an email address from a specific user's account (admin only). Returns: a confirmation naming the deleted email ID. See also: gitlab_list_emails_for_user, gitlab_add_email_for_user, gitlab_delete_email. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `email_id` (integer) (required): Email ID to delete - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_enterprise_user Delete an enterprise user, optionally with hard_delete. Returns: a success confirmation naming the user and group. See also: gitlab_get_enterprise_user, gitlab_list_enterprise_users, gitlab_disable_2fa_enterprise_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `hard_delete` (boolean): Permanently delete user instead of soft delete - `user_id` (integer) (required): User ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_epic_discussion_note Delete a note from an epic discussion thread (destructive). Returns: a deletion confirmation message. See also: gitlab_update_epic_discussion_note, gitlab_get_epic_discussion, gitlab_list_epic_discussions. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `note_id` (integer) (required): Note ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_error_tracking_client_key Delete an error-tracking client key. Returns: a success status. See also: gitlab_list_error_tracking_client_keys, gitlab_create_error_tracking_client_key. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key_id` (integer) (required): Client key ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_feature_flag Delete a feature flag. Returns: a success status. See also: gitlab_set_feature_flag, gitlab_list_features. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): Feature flag name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_freeze_period Delete a deploy freeze period from a project. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `freeze_period_id` (integer) (required): Freeze period ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_geo_site Delete a Geo site permanently. Returns: a success confirmation naming the site. See also: gitlab_get_geo_site, gitlab_list_geo_sites. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): Numeric ID of the Geo site Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_gpg_key Delete a GPG key from the authenticated user's account. Returns: a confirmation naming the deleted key ID. See also: gitlab_list_gpg_keys, gitlab_get_gpg_key, gitlab_add_gpg_key, gitlab_delete_gpg_key_for_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key_id` (integer) (required): The ID of the GPG key to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_gpg_key_for_user Delete a GPG key from a specific user's account (admin only). Returns: a confirmation naming the deleted key ID. See also: gitlab_list_gpg_keys_for_user, gitlab_get_gpg_key_for_user, gitlab_add_gpg_key_for_user, gitlab_delete_gpg_key. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key_id` (integer) (required): The ID of the GPG key to delete - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_badge Delete a group badge by badge_id. Returns: a success confirmation. See also: gitlab_list_group_badges, gitlab_get_group_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_datadog_integration Remove the Datadog integration from a group. The stored api_key is cleared; deletion is irreversible. Requires Owner role and GitLab Premium/Ultimate (self-managed EE or GitLab.com). **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_integration Delete (disable) a group integration by slug. Requires Owner role on the group. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `slug` (string) (required): Integration slug to disable (e.g. slack, jira, harbor) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_markdown_upload_by_id Delete a group Markdown upload by its numeric upload ID. Returns: a success confirmation. See also: gitlab_list_group_markdown_uploads, gitlab_delete_group_markdown_upload_by_secret. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): The ID or URL-encoded path of the group - `upload_id` (integer) (required): The ID of the upload to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_markdown_upload_by_secret Delete a group Markdown upload by its 32-character secret and filename. Returns: a success confirmation. See also: gitlab_list_group_markdown_uploads, gitlab_delete_group_markdown_upload_by_id. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `filename` (string) (required): The filename of the upload - `group_id` (string) (required): The ID or URL-encoded path of the group - `secret` (string) (required): The secret of the upload Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_member_role Delete a group-level custom member role. Returns: a success confirmation naming the deleted role and group. See also: gitlab_list_group_member_roles, gitlab_create_group_member_role. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `member_role_id` (integer) (required): Member role ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_scim_identity Delete a SCIM identity from a top-level group by its SCIM external UID. Returns: a success confirmation naming the deleted SCIM identity and group. See also: gitlab_get_group_scim_identity, gitlab_list_group_scim_identities, gitlab_update_group_scim_identity. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `uid` (string) (required): SCIM external UID of the user Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_ssh_certificate Revoke an SSH CA certificate from a group by certificate id. Returns: a success status and confirmation message. See also: gitlab_list_group_ssh_certificates, gitlab_create_group_ssh_certificate, gitlab_group_get. **Parameters:** - `certificate_id` (integer) (required): SSH certificate ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_group_ssh_key Delete an enterprise SSH key in a group. Returns: a success confirmation naming the key and group. See also: gitlab_list_group_ssh_keys, gitlab_group_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `key_id` (integer) (required): SSH key ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_instance_member_role Delete an instance-level custom member role. Returns: a success confirmation naming the deleted role. See also: gitlab_list_instance_member_roles, gitlab_create_instance_member_role. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `member_role_id` (integer) (required): Member role ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_integration Delete (disable) a project integration by slug. Supports the same slugs as get, plus 'slack-application' for disabling the GitLab for Slack app. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `slug` (string) (required): Integration slug (e.g. jira, slack, discord, mattermost, microsoft-teams, telegram, emails-on-push, pipelines-email, external-wiki, custom-issue-tracker, datadog, drone-ci, github, harbor, jenkins, matrix, redmine, youtrack, slack-slash-commands, mattermost-slash-commands) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_issue_discussion_note Delete a note from an issue discussion thread (destructive). Returns: a deletion confirmation message. See also: gitlab_update_issue_discussion_note, gitlab_get_issue_discussion, gitlab_list_issue_discussions. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `discussion_id` (string) (required): Discussion ID - `issue_iid` (integer) (required): Issue internal ID - `note_id` (integer) (required): Note ID to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_license Delete an instance license. Returns: a success status. See also: gitlab_get_license, gitlab_add_license. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): License ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_mr_context_commits Remove context commits from a merge request by SHA, detaching them from the review. Returns: a success confirmation; the underlying repository commits are left intact. See also: gitlab_list_mr_context_commits, gitlab_create_mr_context_commits, gitlab_mr_get. **Parameters:** - `commits` (array of strings) (required): List of commit SHAs to remove from context - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_package_protection_rule Delete a package protection rule from a project by its id (cannot be undone). Returns: a success confirmation. See also: gitlab_list_package_protection_rules, gitlab_create_package_protection_rule. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `rule_id` (integer) (required): Package protection rule ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_project_alias Delete a project alias by its exact name (admin-only). Returns: deletion confirmation. See also: gitlab_list_project_aliases, gitlab_get_project_alias, gitlab_create_project_alias. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): The alias name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_project_badge Delete a project badge by badge_id. Returns: a success confirmation. See also: gitlab_list_project_badges, gitlab_get_project_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_project_external_status_check Delete a project external status check service permanently. Returns: a success confirmation. See also: gitlab_list_project_external_status_checks, gitlab_create_project_external_status_check, gitlab_update_project_external_status_check. **Parameters:** - `check_id` (integer) (required): External status check ID to delete - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_project_mirror Delete a push mirror from a project permanently. Returns: a success confirmation naming the mirror and project. See also: gitlab_get_project_mirror, gitlab_edit_project_mirror. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `mirror_id` (integer) (required): Remote mirror ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_security_attribute Delete a GitLab security attribute via GraphQL. Requires Premium or Ultimate. Returns: deletion confirmation. See also: gitlab_security_category, gitlab_project, gitlab_group. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityattributedestroy **Parameters:** - `attribute_id` (integer) (required): Numeric security attribute ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_security_category Delete a GitLab security category and its associated security attributes via GraphQL. Requires Premium or Ultimate. Returns: deletion confirmation. See also: gitlab_security_attribute, gitlab_group, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecuritycategorydestroy **Parameters:** - `category_id` (integer) (required): Numeric security category ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_snippet_discussion_note Delete a note from a snippet discussion thread (destructive). Returns: a deletion confirmation message. See also: gitlab_update_snippet_discussion_note, gitlab_get_snippet_discussion, gitlab_list_snippet_discussions. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `discussion_id` (string) (required): Discussion ID - `note_id` (integer) (required): Note ID to delete - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_ssh_key Delete one of the current user's SSH keys. Returns: confirmation with the deleted key ID. See also: gitlab_list_ssh_keys, gitlab_get_ssh_key, gitlab_add_ssh_key. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key_id` (integer) (required): The ID of the SSH key to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_ssh_key_for_user Delete a specific user's SSH key. Returns: confirmation with the deleted key ID. Requires admin token. See also: gitlab_list_ssh_keys_for_user, gitlab_get_ssh_key_for_user, gitlab_add_ssh_key_for_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key_id` (integer) (required): The ID of the SSH key to delete - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_system_hook Delete an instance system hook. Returns: a success status. See also: gitlab_get_system_hook, gitlab_add_system_hook. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): System hook ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_system_hook_url_variable Delete one URL variable from an instance system hook. Returns: a success status and message naming the variable key. See also: gitlab_set_system_hook_url_variable, gitlab_get_system_hook. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `id` (integer) (required): System hook ID - `key` (string) (required): URL variable key name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_terraform_state Delete a Terraform state. Returns: a success status. See also: gitlab_get_terraform_state, gitlab_delete_terraform_state_version. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): Terraform state name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_terraform_state_version Delete a Terraform state version. Returns: a success status. See also: gitlab_delete_terraform_state, gitlab_get_terraform_state. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): Terraform state name - `project_id` (string) (required): Project ID or URL-encoded path - `serial` (integer) (required): State version serial number Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_topic Delete a project topic. Returns: a success status. See also: gitlab_get_topic, gitlab_create_topic. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `topic_id` (integer) (required): Topic ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_user Delete a user account. Returns: confirmation with the deleted user ID. Requires admin token. See also: gitlab_get_user, gitlab_block_user, gitlab_get_user_associations_count. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_user_identity Delete a user's external identity. Returns: confirmation with user ID and provider. Requires admin token. See also: gitlab_get_user, gitlab_modify_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `provider` (string) (required): The external provider name (e.g. ldap or saml) - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_delete_work_item Delete a work item permanently by namespace path and IID. Returns: a success confirmation naming the work item and namespace. Experimental. See also: gitlab_get_work_item, gitlab_update_work_item. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `full_path` (string) (required): Full path of the project or group (e.g. my-group/my-project) - `work_item_iid` (integer) (required): Work item IID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### deploy (18 tools) #### gitlab_deploy_key_add Add a new SSH deploy key to a project. Returns: the created deploy key with id, title, fingerprint, can_push, and expiry. See also: gitlab_deploy_key_get, gitlab_deploy_key_list_project, gitlab_deploy_key_enable. **Parameters:** - `can_push` (boolean): Whether the key can push to the project - `expires_at` (string): Expiry date (YYYY-MM-DD) - `key` (string) (required): Public SSH key content - `project_id` (string) (required): Project ID or path - `title` (string) (required): Deploy key title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_deploy_key_add_instance Create an instance-level deploy key (admin only). Returns: the created instance deploy key with id, title, fingerprint, expiry, and project access arrays. See also: gitlab_deploy_key_list_all, gitlab_deploy_key_enable. **Parameters:** - `expires_at` (string): Expiry date (YYYY-MM-DD) - `key` (string) (required): Public SSH key content - `title` (string) (required): Deploy key title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_deploy_key_delete Delete a deploy key from a project (removes it from all projects where it is enabled). Returns: a success confirmation. See also: gitlab_deploy_key_get, gitlab_deploy_key_list_project. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `deploy_key_id` (integer) (required): Deploy key ID returned by deploy key operations; do not use deploy_token_id - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_deploy_key_enable Enable an existing deploy key for a project. Returns: the enabled deploy key with id, title, fingerprint, and can_push. See also: gitlab_deploy_key_list_all, gitlab_deploy_key_list_project, gitlab_deploy_key_get. **Parameters:** - `deploy_key_id` (integer) (required): Deploy key ID to enable; do not use deploy_token_id - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_key_get Get a single project deploy key by id. Returns: the deploy key with title, key, fingerprint, fingerprint_sha256, can_push, created_at, and expires_at. See also: gitlab_deploy_key_list_project, gitlab_deploy_key_update, gitlab_deploy_key_delete. **Parameters:** - `deploy_key_id` (integer) (required): Deploy key ID returned by deploy key operations; do not use deploy_token_id - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_key_list_all List ALL instance-level SSH deploy keys in one call (admin only). Use this instead of gitlab_deploy_key_list_project when you need every key on the instance. Returns: instance deploy keys with id, title, fingerprint, expiry, projects_with_write_access, projects_with_readonly_access, and pagination metadata. See also: gitlab_deploy_key_add_instance, gitlab_deploy_key_enable, gitlab_deploy_key_list_project. **Parameters:** - `order_by` (string): Column to order results by (e.g. id, title, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `public` (boolean): Filter by public keys - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_key_list_project List a project's SSH deploy keys with ordering and pagination. Returns: deploy keys with id, title, fingerprint, can_push, expiry, and pagination metadata. See also: gitlab_deploy_key_get, gitlab_deploy_key_add, gitlab_deploy_key_enable. **Parameters:** - `order_by` (string): Column to order results by (e.g. id, title, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_key_list_user_project List the deploy keys across a user's projects (admin only) with ordering and pagination. Returns: deploy keys with id, title, fingerprint, can_push, expiry, and pagination metadata. See also: gitlab_deploy_key_list_project, gitlab_deploy_key_get, gitlab_get_user. **Parameters:** - `order_by` (string): Column to order results by (e.g. id, title, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) - `user_id` (string) (required): User ID or username Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_key_update Update a project deploy key's title or push permission. Returns: the updated deploy key. See also: gitlab_deploy_key_get, gitlab_deploy_key_list_project, gitlab_deploy_key_delete. **Parameters:** - `can_push` (boolean): Whether the key can push to the project - `deploy_key_id` (integer) (required): Deploy key ID returned by deploy key operations; do not use deploy_token_id - `project_id` (string) (required): Project ID or path - `title` (string): New deploy key title Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_token_create_group Create a deploy token for a group. Returns: the created deploy token including its one-time secret token value, plus id, name, username, scopes, and expiry. See also: gitlab_deploy_token_list_group, gitlab_deploy_token_get_group, gitlab_deploy_token_delete_group. **Parameters:** - `expires_at` (string): Expiry date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string) (required): Deploy token name - `scopes` (array of strings) (required): Array of scopes (read_repository, read_registry, write_registry, read_package_registry, write_package_registry) - `username` (string): Username for the deploy token Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_deploy_token_create_project Create a deploy token for a project. Returns: the created deploy token including its one-time secret token value, plus id, name, username, scopes, and expiry. See also: gitlab_deploy_token_list_project, gitlab_deploy_token_get_project, gitlab_deploy_token_delete_project. **Parameters:** - `expires_at` (string): Expiry date (YYYY-MM-DD) - `name` (string) (required): Deploy token name - `project_id` (string) (required): Project ID or URL-encoded path - `scopes` (array of strings) (required): Array of scopes (read_repository, read_registry, write_registry, read_package_registry, write_package_registry) - `username` (string): Username for the deploy token Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_deploy_token_delete_group Permanently delete a group deploy token by ID. Returns: a success confirmation; deletion is irreversible. See also: gitlab_deploy_token_list_group, gitlab_deploy_token_get_group, gitlab_deploy_token_create_group. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `deploy_token_id` (integer) (required): Deploy token ID - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_deploy_token_delete_project Permanently delete a project deploy token by ID. Returns: a success confirmation; deletion is irreversible. See also: gitlab_deploy_token_list_project, gitlab_deploy_token_get_project, gitlab_deploy_token_create_project. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `deploy_token_id` (integer) (required): Deploy token ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_deploy_token_get_group Get a single group deploy token by ID. Returns: the deploy token with id, name, username, scopes, revoked/expired state, and expiry. See also: gitlab_deploy_token_list_group, gitlab_deploy_token_create_group, gitlab_deploy_token_delete_group. **Parameters:** - `deploy_token_id` (integer) (required): Deploy token ID - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_token_get_project Get a single project deploy token by ID. Returns: the deploy token with id, name, username, scopes, revoked/expired state, and expiry. See also: gitlab_deploy_token_list_project, gitlab_deploy_token_create_project, gitlab_deploy_token_delete_project. **Parameters:** - `deploy_token_id` (integer) (required): Deploy token ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_token_list_all List ALL deploy tokens across the GitLab instance in one call (admin only). Use this instead of gitlab_deploy_token_list_project or gitlab_deploy_token_list_group when you need every instance-wide token. Returns: deploy tokens with id, name, username, scopes, revoked/expired state, and pagination metadata. See also: gitlab_deploy_token_list_project, gitlab_deploy_token_list_group, gitlab_deploy_token_create_project. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_token_list_group List deploy tokens owned by a group. Returns: deploy tokens with id, name, username, scopes, revoked/expired state, expiry, and pagination metadata. See also: gitlab_deploy_token_get_group, gitlab_deploy_token_create_group, gitlab_deploy_token_delete_group. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deploy_token_list_project List deploy tokens owned by a project. Returns: deploy tokens with id, name, username, scopes, revoked/expired state, expiry, and pagination metadata. See also: gitlab_deploy_token_get_project, gitlab_deploy_token_create_project, gitlab_deploy_token_delete_project. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### deployment (6 tools) #### gitlab_deployment_approve_or_reject Approve or reject a blocked deployment awaiting protected-environment approval, optionally with a comment and an approval rule to represent. Returns: a confirmation message naming the deployment and the applied status. See also: gitlab_deployment_get, gitlab_deployment_update. **Parameters:** - `comment` (string): Optional comment for the approval or rejection - `deployment_id` (integer) (required): Deployment ID - `project_id` (string) (required): Project ID or URL-encoded path - `represented_as` (string): Name of the approval rule to act as, when the user belongs to multiple approval rules - `status` (string) (required): Approval status: approved or rejected Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_deployment_create Create a deployment record for an environment at a given ref and sha with an initial status. Returns: the created deployment with id, iid, ref, sha, status, and nested user, environment, and deployable objects. See also: gitlab_environment_get, gitlab_deployment_list, gitlab_deployment_update. **Parameters:** - `environment` (string) (required): Name of the environment to deploy to - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Git branch or tag to deploy - `sha` (string) (required): Git SHA to deploy - `status` (string): Initial deployment status: running or success or failed or canceled. GitLab 19 rejects created when creating a deployment - `tag` (boolean): Whether the ref is a tag. GitLab 19 requires this explicitly: pass false for branch refs and true for tag refs (default: false) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_deployment_delete Delete a deployment record by deployment_id within a project. Returns: a confirmation that the deployment was deleted. See also: gitlab_deployment_get, gitlab_deployment_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `deployment_id` (integer) (required): Deployment ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_deployment_get Get details of a specific deployment in a GitLab project by its ID. Returns deployment ref, SHA, status, user, environment, and timestamps. **Parameters:** - `deployment_id` (integer) (required): Deployment ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deployment_list List deployments in a project with environment, status, and date filters plus offset or keyset pagination. Returns: matching deployments with ref, sha, status, user, environment, and deployable (CI job) objects, and pagination metadata. See also: gitlab_deployment_get, gitlab_environment_list, gitlab_pipeline_get. **Parameters:** - `environment` (string): Filter by environment name - `finished_after` (string): Return deployments finished after this RFC3339 timestamp (GitLab 14+ only) - `finished_before` (string): Return deployments finished before this RFC3339 timestamp (GitLab 14+ only) - `order_by` (string): Order by id or iid or created_at or updated_at or finished_at or ref (default: id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: asc or desc (default: asc) - `status` (string): Filter by status: created or running or success or failed or canceled - `updated_after` (string): Return deployments updated after this RFC3339 timestamp (GitLab < 14 only) - `updated_before` (string): Return deployments updated before this RFC3339 timestamp (GitLab < 14 only) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_deployment_update Update a deployment's status by deployment_id within a project. Returns: the updated deployment with id, iid, ref, sha, status, and nested user, environment, and deployable objects. See also: gitlab_deployment_get, gitlab_deployment_list, gitlab_deployment_approve_or_reject. **Parameters:** - `deployment_id` (integer) (required): Deployment ID - `project_id` (string) (required): Project ID or URL-encoded path - `status` (string) (required): New deployment status: created or running or success or failed or canceled Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### detach (1 tool) #### gitlab_detach_security_scan_profile Detach a GitLab security scan profile from one or more projects and/or groups via GraphQL. Requires Ultimate. Returns: detach confirmation with the resolved profile and targets. See also: gitlab_attach_security_scan_profile, gitlab_list_project_scan_profile_statuses, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityscanprofiledetach **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_ids` (array of integers): Numeric IDs of the groups to detach the profile from - `project_ids` (array of integers): Numeric IDs of the projects to detach the profile from - `security_scan_profile_id` (string) (required): Persisted scan profile identifier: the profile's numeric database ID (obtained from gitlab_list_project_scan_profile_statuses) or a full gid:// global ID. A scan-type name (dependency_scanning, sast, …) is not accepted by detach Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### disable (2 tools) #### gitlab_disable_2fa_enterprise_user Disable two-factor authentication for an enterprise user. Returns: a success confirmation naming the user and group. See also: gitlab_get_enterprise_user, gitlab_list_enterprise_users, gitlab_delete_enterprise_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `user_id` (integer) (required): User ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_disable_two_factor Disable 2FA for a user. Returns: confirmation with the user ID and action. See also: gitlab_get_user, gitlab_modify_user. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### discover (1 tool) #### gitlab_discover_project Resolve a full git remote URL to a GitLab project and return its project_id and metadata. Read-only; performs a lookup against the GitLab Projects API; no side effects. **Parameters:** - `remote_url` (string) (required): Full git remote URL (HTTPS or SSH) exactly as shown in .git/config or 'git remote -v' output. IMPORTANT: pass the complete URL including the scheme (https://) or user prefix (git@). Examples: 'https://gitlab.example.com/group/project.git' or 'git@gitlab.example.com:group/project.git'. Do not pass plain project paths such as group/project, and do not synthesize URLs by adding .git to a project path; project paths are already valid project_id values. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### dismiss (1 tool) #### gitlab_dismiss_vulnerability Dismiss a vulnerability with a dismissal reason. Returns: the updated vulnerability with its new dismissed state and timestamp. See also: gitlab_get_vulnerability, gitlab_confirm_vulnerability, gitlab_revert_vulnerability. **Parameters:** - `comment` (string): Reason for dismissal - `dismissal_reason` (string): Dismissal reason: ACCEPTABLE_RISK, FALSE_POSITIVE, MITIGATING_CONTROL, USED_IN_TESTS, NOT_APPLICABLE - `id` (string) (required): Vulnerability GID (e.g. gid://gitlab/Vulnerability/42) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### download (5 tools) #### gitlab_download_attestation Download the raw in-toto attestation bundle for one attestation by IID (Ultimate). Returns: the attestation_iid, the bundle size in bytes, and the base64-encoded content_base64 bundle payload. See also: gitlab_list_attestations, gitlab_list_packages, gitlab_get_project. **Parameters:** - `attestation_iid` (integer) (required): Attestation IID (project-scoped) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_download_dependency_list_export Download a completed dependency list export (CycloneDX SBOM JSON). Returns: raw SBOM content (limited to 1MB). See also: gitlab_create_dependency_list_export, gitlab_get_dependency_list_export. **Parameters:** - `export_id` (integer) (required): Dependency list export ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_download_group_export Download a group's finished export archive. Returns: the export archive as base64 content plus its size in bytes. See also: gitlab_schedule_group_export, gitlab_import_group_from_file, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_download_ml_model_package Download one artifact file from a project ML model registry package version by project, model version, path, and filename. Returns: the artifact bytes base64-encoded in content_base64, plus project, model version, path, filename, and decoded size_bytes. See also: gitlab_package_list, gitlab_release_link_create, gitlab_repository_raw_blob. **Parameters:** - `filename` (string) (required): Name of the file to download - `model_version_id` (string) (required): Model version ID (numeric or string like candidate:5) - `path` (string) (required): Path within the model package - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_download_project_export Download a finished project export archive as base64. Returns: base64 archive content and size in bytes. See also: gitlab_get_project_export_status, gitlab_import_project_from_file. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### edit (6 tools) #### gitlab_edit_geo_site Edit a Geo site's settings. Returns: the updated site with its capacities and selective-sync configuration. See also: gitlab_get_geo_site, gitlab_list_geo_sites, gitlab_repair_geo_site. **Parameters:** - `container_repositories_max_capacity` (integer): Max number of concurrent container repository syncs - `enabled` (boolean): Whether the site is enabled - `files_max_capacity` (integer): Max number of LFS/attachment backfill downloads - `id` (integer) (required): Numeric ID of the Geo site - `internal_url` (string): Internal URL of the Geo site - `minimum_reverification_interval` (integer): Minimum interval (days) before re-verification - `name` (string): Unique name of the Geo site - `repos_max_capacity` (integer): Max number of concurrent repository backfill syncs - `selective_sync_namespace_ids` (array of integers): Namespace IDs to sync - `selective_sync_shards` (array of strings): Storage shards to sync - `selective_sync_type` (string): Selective sync type: namespaces or shards - `url` (string): External URL of the Geo site - `verification_max_capacity` (integer): Max number of concurrent verification jobs Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_edit_group_badge Edit a group badge's name, link_url, or image_url. Returns: the updated badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_group_badges, gitlab_get_group_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `group_id` (string) (required): Group ID or URL-encoded path - `image_url` (string): New badge image URL - `link_url` (string): New badge link URL - `name` (string): New badge name. Use name, not new_name Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_edit_project_badge Edit a project badge's name, link_url, or image_url. Returns: the updated badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_project_badges, gitlab_get_project_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `image_url` (string): New badge image URL - `link_url` (string): New badge link URL - `name` (string): New badge name. Use name, not new_name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_edit_project_mirror Update a push mirror's attributes (enabled, branch filtering, divergent refs, auth method). Returns: the updated mirror. See also: gitlab_get_project_mirror, gitlab_force_push_mirror_update. **Parameters:** - `auth_method` (string): Authentication method (password or ssh_public_key) - `enabled` (boolean): Whether the mirror is enabled - `host_keys` (array of strings): SSH host keys for the remote mirror - `keep_divergent_refs` (boolean): Keep divergent refs on the remote - `mirror_branch_regex` (string): Regex pattern for branches to mirror - `mirror_id` (integer) (required): Remote mirror ID - `only_protected_branches` (boolean): Mirror only protected branches - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_edit_resource_group Update the process mode of one CI resource group by key. Returns: the updated resource group ID, key, and new process mode that controls how queued jobs sharing the resource group are serialized. See also: gitlab_get_resource_group, gitlab_list_resource_groups, gitlab_list_resource_group_upcoming_jobs. **Parameters:** - `key` (string) (required): Resource group key - `process_mode` (string) (required): Process mode (newest_first, oldest_first, unordered) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_edit_system_hook Edit an instance system hook, including event triggers, SSL verification, and URL settings. Returns: the updated system hook object. See also: gitlab_get_system_hook, gitlab_list_system_hooks, gitlab_test_system_hook. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy: wildcard, regex, or all_branches - `description` (string): Updated hook description - `enable_ssl_verification` (boolean): Enable SSL verification for the hook URL - `id` (integer) (required): System hook ID to edit - `merge_requests_events` (boolean): Trigger on merge request events - `name` (string): Updated hook name - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events (wildcard, regex, or branch name) - `repository_update_events` (boolean): Trigger on repository update events - `signing_token` (string): Updated write-only signing token for webhook signature validation - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Updated secret token for payload validation - `url` (string): Updated hook URL Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### enable (1 tool) #### gitlab_enable_disable_error_tracking Enable or disable error tracking. Returns: the updated error-tracking settings. See also: gitlab_get_error_tracking_settings, gitlab_list_error_tracking_client_keys. **Parameters:** - `active` (boolean) (required): Enable or disable error tracking - `integrated` (boolean) (required): Use integrated error tracking - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### environment (6 tools) #### gitlab_environment_create Create a new environment in a GitLab project. Specify name (required), description, external URL, and tier (production, staging, testing, development, other). Returns: id, name, slug, state, tier, external_url, created_at. See also: gitlab_environment_get. **Parameters:** - `auto_stop_setting` (string): Auto-stop behavior: always or with_action - `cluster_agent_id` (integer): ID of the cluster agent to associate with this environment - `description` (string): Description of the environment - `external_url` (string): URL of the environment's external deployment - `flux_resource_path` (string): Flux resource path used to track the environment's deployment status - `kubernetes_namespace` (string): Kubernetes namespace for the cluster agent - `name` (string) (required): Environment name (e.g. production, staging) - `project_id` (string) (required): Project ID or URL-encoded path - `tier` (string): Deployment tier: production, staging, testing, development, other Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_environment_delete Delete a stopped environment from a project. Returns: a success confirmation naming the deleted environment. See also: gitlab_environment_stop, gitlab_environment_list, gitlab_environment_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment_id` (integer) (required): Environment ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_environment_get Get details of a specific environment in a GitLab project by its ID. Returns environment name, state, tier, external URL, and timestamps. **Parameters:** - `environment_id` (integer) (required): Environment ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_environment_list List environments for a GitLab project. Supports filtering by name, search term, and state. Returns paginated results with environment details including tier, state, and external URL. **Parameters:** - `name` (string): Filter by exact environment name - `order_by` (string): Column to order results by (e.g. id, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search environments by name (fuzzy) - `sort` (string): Sort order: asc or desc - `states` (string): Filter by state: available, stopping, stopped Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_environment_stop Stop a running environment in a GitLab project. Triggers any on_stop actions defined in CI/CD. Use force=true to stop even if the environment has active deployments. Returns: id, name, slug, state, tier, external_url. See also: gitlab_environment_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment_id` (integer) (required): Environment ID - `force` (boolean): Force stop even if environment has active deployments - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_environment_update Update an existing environment in a project. Returns: the updated environment with state, tier, external URL, cluster agent, Kubernetes namespace, Flux resource path, and auto-stop settings. See also: gitlab_environment_get, gitlab_environment_list, gitlab_environment_stop. **Parameters:** - `auto_stop_setting` (string): Auto-stop behavior: always or with_action - `cluster_agent_id` (integer): ID of the cluster agent to associate with this environment - `description` (string): Updated description - `environment_id` (integer) (required): Environment ID - `external_url` (string): Updated external URL - `flux_resource_path` (string): Flux resource path used to track the environment's deployment status - `kubernetes_namespace` (string): Kubernetes namespace for the cluster agent - `name` (string): New environment name - `project_id` (string) (required): Project ID or URL-encoded path - `tier` (string): Updated tier: production, staging, testing, development, other Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### epic (15 tools) #### gitlab_epic_create Create a new epic in a group. Returns: the created epic with IID, state, labels, assignees, dates, and web URL. See also: gitlab_epic_get, gitlab_epic_list, gitlab_epic_update. **Parameters:** - `assignee_ids` (array of integers): Global IDs of assignees - `color` (string): Epic color (hex format, e.g. #FF0000) - `confidential` (boolean): Whether the epic is confidential - `description` (string): Epic description (Markdown supported) - `due_date` (string): Due date (YYYY-MM-DD) - `full_path` (string) (required): Full path of the group (e.g. my-group) - `health_status` (string): Health status (onTrack/needsAttention/atRisk) - `label_ids` (array of integers): Global IDs of labels - `start_date` (string): Start date (YYYY-MM-DD) - `title` (string) (required): Epic title - `weight` (integer): Weight of the epic Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_epic_delete Permanently delete an epic from a group. Returns: a success confirmation naming the epic and group. See also: gitlab_epic_get, gitlab_epic_list, gitlab_epic_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_epic_get Get a single epic from a group by epic IID. Returns: epic metadata, state, labels, author, assignees, start/due dates, health status, weight, parent, and linked items. See also: gitlab_epic_list, gitlab_epic_update, gitlab_epic_get_links, gitlab_epic_delete. **Parameters:** - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_get_links List child epics linked to a parent epic. Returns: child epics with state, labels, author, dates, and parent reference. See also: gitlab_epic_get, gitlab_epic_list, gitlab_epic_update. **Parameters:** - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_issue_assign Assign an existing project issue as a child of a group epic. Returns: the resolved epic and issue work item GIDs confirming the link. See also: gitlab_epic_issue_list, gitlab_epic_issue_remove, gitlab_epic_get. **Parameters:** - `child_iid` (integer) (required): IID of the issue to assign to the epic - `child_project_path` (string) (required): Full project path of the issue to assign (e.g. my-group/my-project) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group that contains the epic Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_epic_issue_list List the issues linked to a group epic via the Work Items hierarchy. Returns: child issues with IID, title, state, author, labels, web URL, timestamps, and cursor pagination metadata. See also: gitlab_epic_issue_assign, gitlab_epic_issue_remove, gitlab_epic_get. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `epic_iid` (integer) (required): Epic IID within the group - `first` (integer): Number of items to return (default 20, max 100) - `full_path` (string) (required): Full path of the group (e.g. my-group or my-group/sub-group) - `last` (integer): Number of items from the end (backward pagination) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_issue_remove Unlink a child issue from a group epic (destructive; requires confirmation). Returns: the resolved epic and issue work item GIDs confirming the removal. See also: gitlab_epic_issue_list, gitlab_epic_issue_assign, gitlab_epic_get. **Parameters:** - `child_iid` (integer) (required): IID of the issue to remove from the epic - `child_project_path` (string) (required): Full project path of the issue to remove - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group that contains the epic Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_epic_issue_update Reorder an issue within a group epic by moving it before or after another linked issue. Returns: the epic's child issues in their updated order. See also: gitlab_epic_issue_list, gitlab_epic_issue_assign, gitlab_epic_issue_remove. **Parameters:** - `adjacent_id` (string): Work item GID of the reference issue to position relative to - `child_id` (string) (required): Work item GID of the issue to reorder (from list output id field) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group that contains the epic - `relative_position` (string): Position relative to adjacent item: BEFORE or AFTER Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_list List epics in a group with filtering and pagination. Returns: matching epics with state, labels, author, assignees, dates, and pagination cursors. See also: gitlab_epic_get, gitlab_epic_create, gitlab_epic_get_links. **Parameters:** - `after` (string): Cursor for forward pagination - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidentiality - `created_after` (string): Return epics created after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return epics created before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) - `first` (integer): Number of items to return (cursor-based pagination) - `full_path` (string) (required): Full path of the group (e.g. my-group or my-group/sub-group) - `include_ancestors` (boolean): Include epics from ancestor groups - `include_descendants` (boolean): Include epics from descendant groups - `label_name` (array of strings): Filter by label names - `my_reaction_emoji` (string): Filter by reaction emoji the authenticated user awarded (e.g. thumbsup or None/Any) - `order_by` (string): Order epics by field (created_at, updated_at, title) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search in title and description - `sort` (string): Sort order (asc or desc) - `state` (string): Filter by state (opened/closed/all) - `updated_after` (string): Return epics updated on or after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return epics updated on or before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) - `with_labels_details` (boolean): If true, return more details (name, color, description) for each label in the labels field Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_note_create Add a comment (note) to an epic. Returns: the created note with id, author, body, and timestamps. See also: gitlab_epic_note_list, gitlab_get_epic, gitlab_create_epic_discussion. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_epic_note_delete Delete an epic note permanently. Returns: a success confirmation naming the note, epic, and group. See also: gitlab_epic_note_get, gitlab_epic_note_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `note_id` (integer) (required): ID of the note to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_epic_note_get Get a single epic note by its ID. Returns: the note with author, body, timestamps, and system flag. See also: gitlab_epic_note_list, gitlab_epic_note_update, gitlab_epic_note_delete. **Parameters:** - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `note_id` (integer) (required): ID of the note to retrieve Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_note_list List all notes (comments) on an epic. Returns: notes with author, body, system flag, timestamps, and keyset pagination metadata. See also: gitlab_epic_note_get, gitlab_epic_note_create, gitlab_get_epic_discussion. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `epic_iid` (integer) (required): Epic IID within the group - `first` (integer): Number of items to return (default 20, max 100) - `full_path` (string) (required): Full path of the group (e.g. my-group or my-group/sub-group) - `last` (integer): Number of items from the end (backward pagination) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_note_update Update an epic note's body. Returns: the updated note with new body and updated_at timestamp. See also: gitlab_epic_note_get, gitlab_epic_note_list, gitlab_epic_note_delete. **Parameters:** - `body` (string) (required): Updated note body (Markdown supported) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `note_id` (integer) (required): ID of the note to update Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_epic_update Update an existing epic; supports close/reopen via state_event. Returns: the updated epic with its current state, labels, assignees, dates, and web URL. See also: gitlab_epic_get, gitlab_epic_list, gitlab_epic_delete. **Parameters:** - `add_label_ids` (array of integers): Global IDs of labels to add - `assignee_ids` (array of integers): Global IDs of assignees (empty array to remove all) - `color` (string): Epic color (hex format) - `description` (string): Updated description (Markdown supported) - `due_date` (string): Due date (YYYY-MM-DD) - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `health_status` (string): Health status (onTrack/needsAttention/atRisk) - `parent_id` (integer): Global ID of the parent epic work item - `remove_label_ids` (array of integers): Global IDs of labels to remove - `start_date` (string): Start date (YYYY-MM-DD) - `state_event` (string): State event: CLOSE or REOPEN - `status` (string): Work item status: TODO, IN_PROGRESS, DONE, WONT_DO, or DUPLICATE - `title` (string): Updated epic title - `weight` (integer): Weight of the epic Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### feature (5 tools) #### gitlab_feature_flag_create Create a feature flag with optional activation strategies and scopes. Returns: the created flag with active state, version, scopes, and strategies. See also: gitlab_feature_flag_get, gitlab_feature_flag_update. **Parameters:** - `active` (boolean): Whether the flag is active - `description` (string): Feature flag description - `name` (string) (required): Feature flag name - `project_id` (string) (required): Project ID or path - `strategies` (array of objects): Activation strategies for the flag; each has a name, optional parameters, and optional environment scopes - `version` (string): Version of the feature flag (new_version_flag) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_feature_flag_delete Delete a feature flag permanently. Returns: a success confirmation naming the flag. See also: gitlab_feature_flag_get, gitlab_feature_flag_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): Feature flag name - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_feature_flag_get Get a single feature flag by name. Returns: the flag with active state, version, environment scopes, and activation strategies. See also: gitlab_feature_flag_list, gitlab_feature_flag_update, gitlab_feature_flag_delete. **Parameters:** - `name` (string) (required): Feature flag name - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_feature_flag_list List feature flags in a project with optional scope filter, ordering, and pagination. Returns: matching feature flags with active state, version, scopes, strategies, and pagination metadata. See also: gitlab_feature_flag_get, gitlab_feature_flag_create. **Parameters:** - `order_by` (string): Column to order results by (e.g. name, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `scope` (string): Filter by scope (enabled or disabled) - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_feature_flag_update Update a feature flag's name, description, active state, or strategies. Returns: the updated flag with active state, version, scopes, and strategies. See also: gitlab_feature_flag_get, gitlab_feature_flag_delete. **Parameters:** - `active` (boolean): Whether the flag is active - `description` (string): Feature flag description - `name` (string) (required): Current feature flag name - `new_name` (string): New feature flag name - `project_id` (string) (required): Project ID or path - `strategies` (array of objects): Activation strategies for the flag; each has an optional id (to update an existing strategy), a name, optional parameters, and optional environment scopes Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### ff (5 tools) #### gitlab_ff_user_list_create Create a feature flag user list in a project. Returns: the created list with id, iid, project_id, name, user_xids, created_at, and updated_at. See also: gitlab_ff_user_list_list, gitlab_ff_user_list_get, gitlab_ff_user_list_update. **Parameters:** - `name` (string) (required): User list name - `project_id` (string) (required): Project ID or path - `user_xids` (string) (required): Comma-separated list of user external IDs Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_ff_user_list_delete Delete a feature flag user list by its user_list_iid. Returns: a success confirmation naming the deleted list. See also: gitlab_ff_user_list_get, gitlab_ff_user_list_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `user_list_iid` (integer) (required): Feature flag user list internal ID returned by list or create; do not use the user list name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_ff_user_list_get Get a single feature flag user list by its user_list_iid. Returns: the list's id, iid, project_id, name, user_xids, created_at, and updated_at. See also: gitlab_ff_user_list_list, gitlab_ff_user_list_update, gitlab_ff_user_list_delete. **Parameters:** - `project_id` (string) (required): Project ID or path - `user_list_iid` (integer) (required): Feature flag user list internal ID returned by list or create; do not use the user list name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ff_user_list_list List feature flag user lists for a project with search, ordering, and offset or keyset pagination. Returns: each list's id, iid, project_id, name, user_xids, created_at, updated_at, plus pagination metadata. See also: gitlab_ff_user_list_get, gitlab_ff_user_list_create. **Parameters:** - `order_by` (string): Order results by field (e.g. created_at, updated_at, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `search` (string): Search by name - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_ff_user_list_update Update a feature flag user list's name or user_xids by its user_list_iid. Returns: the updated list with id, iid, project_id, name, user_xids, created_at, and updated_at. See also: gitlab_ff_user_list_get, gitlab_ff_user_list_list, gitlab_ff_user_list_delete. **Parameters:** - `name` (string): New user list name - `project_id` (string) (required): Project ID or path - `user_list_iid` (integer) (required): Feature flag user list internal ID returned by list or create; do not use the user list name - `user_xids` (string): Comma-separated list of user external IDs Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### file (8 tools) #### gitlab_file_blame Get blame information for a file, optionally for a line range. Returns: file_path and blame ranges, each with commit id, message, author name/email, authored and committed dates, and the covered lines. See also: gitlab_file_get, gitlab_repository_commit_list. **Parameters:** - `file_path` (string) (required): URL-encoded full path of the file - `project_id` (string) (required): Project ID or URL-encoded path - `range_end` (integer): End line number for blame range - `range_start` (integer): Start line number for blame range - `ref` (string): Branch, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_file_create Create a new file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: gitlab_file_update, gitlab_file_get, gitlab_file_delete. **Parameters:** - `author_email` (string): Commit author email - `author_name` (string): Commit author name - `branch` (string) (required): Branch to create the file on - `commit_message` (string) (required): Commit message - `content` (string) (required): File content - `encoding` (string): Content encoding: text or base64 (default: text) - `execute_filemode` (boolean): Enable execute permission on the file - `file_path` (string) (required): URL-encoded full path of the new file - `project_id` (string) (required): Project ID or URL-encoded path - `start_branch` (string): Branch to start from (creates new branch if different from branch) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_file_delete Delete a file from a repository in a single commit. Returns: a success confirmation naming the file and project. See also: gitlab_file_get, gitlab_file_update. **Parameters:** - `author_email` (string): Commit author email - `author_name` (string): Commit author name - `branch` (string) (required): Branch to delete the file from - `commit_message` (string) (required): Commit message - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `file_path` (string) (required): URL-encoded full path of the file to delete - `last_commit_id` (string): Last known commit ID for optimistic locking - `project_id` (string) (required): Project ID or URL-encoded path - `start_branch` (string): Branch to start from Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_file_get Get a single file's decoded content and metadata from a repository. Returns: file_name, file_path, size, encoding, content, content_sha256, ref, blob_id, commit_id, last_commit_id, and execute_filemode. See also: gitlab_file_raw, gitlab_file_metadata, gitlab_file_blame, gitlab_repository_tree. **Parameters:** - `file_path` (string) (required): URL-encoded full path of the file (e.g. src%2Fmain.go or src/main.go) - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch name, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_file_metadata Get a file's metadata without content (HEAD request). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: gitlab_file_get, gitlab_file_raw_metadata. **Parameters:** - `file_path` (string) (required): URL-encoded full path of the file - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_file_raw Get the raw content of a file from a repository. Returns: file_path, size, content, and content_category. See also: gitlab_file_get, gitlab_file_raw_metadata. **Parameters:** - `file_path` (string) (required): URL-encoded full path of the file - `lfs` (boolean): Fetch the target of an LFS pointer instead of the pointer file itself - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_file_raw_metadata Get raw file metadata without content (HEAD request to the raw endpoint). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: gitlab_file_raw, gitlab_file_metadata. **Parameters:** - `file_path` (string) (required): URL-encoded full path of the file - `lfs` (boolean): Fetch the target of an LFS pointer instead of the pointer file itself - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_file_update Update an existing file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: gitlab_file_create, gitlab_file_get, gitlab_file_delete. **Parameters:** - `author_email` (string): Commit author email - `author_name` (string): Commit author name - `branch` (string) (required): Branch to update the file on - `commit_message` (string) (required): Commit message - `content` (string) (required): New file content - `encoding` (string): Content encoding: text or base64 (default: text) - `execute_filemode` (boolean): Enable execute permission on the file - `file_path` (string) (required): URL-encoded full path of the file to update - `last_commit_id` (string): Last known commit ID for optimistic locking - `project_id` (string) (required): Project ID or URL-encoded path - `start_branch` (string): Branch to start from Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### force (1 tool) #### gitlab_force_push_mirror_update Trigger an immediate update of a push mirror. Returns: a confirmation that the update was triggered. See also: gitlab_get_project_mirror, gitlab_edit_project_mirror. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `mirror_id` (integer) (required): Remote mirror ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### get (92 tools) #### gitlab_get_appearance Get the current GitLab application appearance and branding settings. Returns: the instance appearance object including title, messages, logos, and PWA labels. See also: gitlab_update_appearance, gitlab_get_settings, gitlab_get_metadata. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_application_statistics Get GitLab application statistics for the current instance. Returns: aggregate counts for users, groups, projects, issues, merge requests, and related records. See also: gitlab_get_metadata, gitlab_server_status. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_avatar Get the avatar URL for an email address. Returns: the resolved avatar URL for that email address. See also: gitlab_user_current, gitlab_get_user_status. **Parameters:** - `email` (string) (required): Email address to look up avatar for - `size` (integer) (required): Desired avatar size in pixels Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_broadcast_message Get a broadcast message by id. Returns: the message with text, theme, target, and schedule. See also: gitlab_list_broadcast_messages, gitlab_update_broadcast_message. **Parameters:** - `id` (integer) (required): Broadcast message ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_bulk_import Get a bulk import by id. Returns: the bulk import with status, source URL, and timestamps. See also: gitlab_list_bulk_imports, gitlab_list_bulk_import_entities. **Parameters:** - `id` (integer) (required): Bulk import ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_bulk_import_entity Get a bulk import entity. Returns: the entity with source path, destination path, entity_type, and status. See also: gitlab_list_bulk_import_entities, gitlab_list_bulk_import_entity_failures. **Parameters:** - `bulk_import_id` (integer) (required): Bulk import ID - `entity_id` (integer) (required): Entity ID within the bulk import Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_catalog_resource Get a single CI/CD Catalog resource by GID or full path. Returns: the resource with description, README HTML, latest-version components and their typed inputs, version history, star and fork counts, and web URL. See also: gitlab_list_catalog_resources, gitlab_ci_lint, gitlab_get_project. **Parameters:** - `full_path` (string): Full path of the project hosting the resource (e.g. my-group/my-components). Use either id or full_path. - `id` (string): Catalog resource GID (e.g. gid://gitlab/Ci::CatalogResource/1). Use either id or full_path. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_ci_yml_template Get a single GitLab CI/CD pipeline YAML template by key. Returns: the template name and full YAML content to copy into a .gitlab-ci.yml file. See also: gitlab_list_ci_yml_templates, gitlab_ci_lint, gitlab_file_create. **Parameters:** - `key` (string) (required): Template key (e.g. Go, Python) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_cluster_agent Get a cluster agent. Returns: the agent with id, name, config project, and created_at. See also: gitlab_list_cluster_agents, gitlab_list_cluster_agent_tokens. **Parameters:** - `agent_id` (integer) (required): Agent ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_cluster_agent_token Get a cluster agent token. Returns: the token with id, name, status, and last_used_at. See also: gitlab_list_cluster_agent_tokens, gitlab_create_cluster_agent_token. **Parameters:** - `agent_id` (integer) (required): Agent ID - `project_id` (string) (required): Project ID or URL-encoded path - `token_id` (integer) (required): Token ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_commit_discussion Get a single commit discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state, diff position). See also: gitlab_list_commit_discussions, gitlab_add_commit_discussion_note, gitlab_commit_get. **Parameters:** - `commit_sha` (string) (required): Commit SHA - `discussion_id` (string) (required): Discussion ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_compliance_policy_settings Get the instance compliance policy settings. Returns: the centralized compliance security policy (CSP) namespace ID, or unset when no namespace hosts the compliance policy project. See also: gitlab_update_compliance_policy_settings, gitlab_group_get. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_custom_attribute Get a custom attribute by key. Returns: the attribute with key and value. See also: gitlab_list_custom_attributes, gitlab_set_custom_attribute. **Parameters:** - `key` (string) (required): Attribute key - `resource_id` (integer) (required): ID of the resource - `resource_type` (string) (required): Resource type: user, group, or project Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_dependency_list_export Check the status of a dependency list export. Returns: export ID, completion status, and download URL when ready. See also: gitlab_create_dependency_list_export, gitlab_download_dependency_list_export. **Parameters:** - `export_id` (integer) (required): Dependency list export ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_dockerfile_template Get a single Dockerfile template by key. Returns: the template name and full Dockerfile content ready to commit as a project's Dockerfile. See also: gitlab_list_dockerfile_templates, gitlab_get_gitignore_template. **Parameters:** - `key` (string) (required): Template key Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_email Get one email address from the authenticated user's account by ID. Returns: the email's ID, address, and confirmation timestamp. See also: gitlab_add_email, gitlab_delete_email, gitlab_list_emails_for_user. **Parameters:** - `email_id` (integer) (required): Email ID to retrieve Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_enterprise_user Get a single enterprise user by group_id and user_id. Returns: the full user profile (identities, SCIM identities, custom attributes, sign-in metadata, admin/auditor flags, license seat usage, and web URL). See also: gitlab_list_enterprise_users, gitlab_disable_2fa_enterprise_user, gitlab_delete_enterprise_user. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `user_id` (integer) (required): User ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_epic_discussion Get a single epic discussion thread by its discussion id. Returns: the thread with every note (id, author username, body, system flag, timestamps). See also: gitlab_list_epic_discussions, gitlab_add_epic_discussion_note, gitlab_epic_get. **Parameters:** - `discussion_id` (string) (required): Discussion ID - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_error_tracking_settings Get error-tracking settings. Returns: the settings with active flag and integrated mode. See also: gitlab_enable_disable_error_tracking, gitlab_list_error_tracking_client_keys. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_freeze_period Get a single deploy freeze period by ID. **Parameters:** - `freeze_period_id` (integer) (required): Freeze period ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_geo_site Get a single Geo site by id. Returns: the site with name, url, primary/enabled flags, capacities, selective-sync settings, and navigation links. See also: gitlab_list_geo_sites, gitlab_edit_geo_site, gitlab_get_status_geo_site. **Parameters:** - `id` (integer) (required): Numeric ID of the Geo site Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_gitignore_template Get one .gitignore template by key (e.g. Go, Python, Node). Returns: the template's name and full file content ready to copy into .gitignore. See also: gitlab_list_gitignore_templates, gitlab_file_create. **Parameters:** - `key` (string) (required): Template key (e.g. Go, Python, Node) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_gpg_key Get one GPG key from the authenticated user's account by ID. Returns: the key's ID, armored public key, and creation timestamp. See also: gitlab_list_gpg_keys, gitlab_add_gpg_key, gitlab_delete_gpg_key. **Parameters:** - `key_id` (integer) (required): The ID of the GPG key Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_gpg_key_for_user Get one GPG key from a specific user's account by ID. Returns: the key's ID, armored public key, and creation timestamp. See also: gitlab_list_gpg_keys_for_user, gitlab_add_gpg_key_for_user, gitlab_delete_gpg_key_for_user, gitlab_get_user. **Parameters:** - `key_id` (integer) (required): The ID of the GPG key - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_audit_event Get a single group-level audit event by group_id and ID. Returns: the audit event with author, entity, event name/type, target details, IP address, and timestamp. See also: gitlab_list_group_audit_events, gitlab_get_project_audit_event, gitlab_get_instance_audit_event. **Parameters:** - `event_id` (integer) (required): Audit event ID - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_badge Get a single group badge by badge_id. Returns: the badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_group_badges, gitlab_edit_group_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_datadog_integration Read the Datadog integration configured on a group. Requires Owner role and GitLab Premium/Ultimate (self-managed EE or GitLab.com). The api_key is never returned. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_dora_metrics Get the four DORA DevOps performance metrics aggregated across a group over a date window. Returns: one time series of date/value data points for the requested metric (deployment frequency, lead time for changes, time to restore service, or change failure rate), bucketed by interval. See also: gitlab_get_project_dora_metrics. **Parameters:** - `end_date` (string): End date (YYYY-MM-DD) - `environment_tiers` (array of strings): Filter by environment tiers (e.g. production, staging) - `group_id` (string) (required): Group ID or URL-encoded path - `interval` (string): Aggregation interval: daily, monthly, all (default: daily) - `metric` (string) (required): DORA metric type: deployment_frequency, lead_time_for_changes, time_to_restore_service, change_failure_rate - `start_date` (string): Start date (YYYY-MM-DD) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_epic_label_event Get a single label event for a group epic (Premium/Ultimate). Returns: the event with action, the label object, and the acting user. See also: gitlab_list_group_epic_label_events, gitlab_epic_get. **Parameters:** - `epic_iid` (integer) (required): Epic internal ID (IID) within the group - `group_id` (string) (required): Group ID or URL-encoded path - `label_event_id` (integer) (required): Label event ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_integration Get details of a specific group integration by slug. Requires Owner role on the group. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `slug` (string) (required): Integration slug to read (e.g. slack, jira, harbor). See doc/api/group_integrations.md for the supported list Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_issue_statistics Get issue count statistics for a group and its descendant projects. Returns: a statistics object with nested counts (all, opened, closed). See also: gitlab_get_issue_statistics, gitlab_get_project_issue_statistics, gitlab_group_get. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (array of strings): Filter by assignee usernames - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601) - `created_before` (string): Return issues created before date (ISO 8601) - `group_id` (string) (required): Group ID or URL-encoded path - `iids` (array of integers): Filter by issue internal IDs - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (or None/Any) - `scope` (string): Scope: created_by_me, assigned_to_me, all - `search` (string): Search string for title and description - `updated_after` (string): Return issues updated after date (ISO 8601) - `updated_before` (string): Return issues updated before date (ISO 8601) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_mr_approval_settings Read the merge request approval settings of a group. Returns: each setting (allow author approval, allow committer approval, allow approver-list overrides, retain approvals on push, selective code owner removals, require password to approve, require reauthentication to approve) with its value, locked flag, and inherited-from source. See also: gitlab_update_group_mr_approval_settings, gitlab_get_project_mr_approval_settings. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_scim_identity Get one SCIM identity of a top-level group by its SCIM external UID. Returns: the identity's external_uid, user_id, and active status. See also: gitlab_list_group_scim_identities, gitlab_update_group_scim_identity, gitlab_delete_group_scim_identity. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `uid` (string) (required): SCIM external UID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_storage_move Get a single group repository storage move by ID. Returns: the storage move with state, source and destination storage names, group reference, and creation time. See also: gitlab_retrieve_all_group_storage_moves, gitlab_get_group_storage_move_for_group. **Parameters:** - `id` (integer) (required): Numeric ID of the storage move Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_group_storage_move_for_group Get a single repository storage move for a specific group. Returns: the storage move with state, source and destination storage names, group reference, and creation time. See also: gitlab_retrieve_group_storage_moves, gitlab_get_group_storage_move. **Parameters:** - `group_id` (integer) (required): Numeric ID of the group - `id` (integer) (required): Numeric ID of the storage move Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_impersonation_token Get a single impersonation token for a user by token id. Returns: the token's id, name, active flag, scopes, revoked flag, created_at, expires_at, and last_used_at. See also: gitlab_list_impersonation_tokens, gitlab_revoke_impersonation_token. **Parameters:** - `token_id` (integer) (required): Impersonation token ID - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_instance_audit_event Get a single instance-level audit event by ID (administrator only). Returns: the audit event with author, entity, event name/type, target details, IP address, and timestamp. See also: gitlab_list_instance_audit_events, gitlab_get_group_audit_event, gitlab_get_project_audit_event. **Parameters:** - `event_id` (integer) (required): Audit event ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_integration Get details of a specific project integration by slug (e.g. jira, slack, discord, mattermost, microsoft-teams, telegram, datadog, jenkins, emails-on-push, pipelines-email, external-wiki, custom-issue-tracker, drone-ci, github, harbor, matrix, redmine, youtrack, slack-slash-commands, mattermost-slash-commands). **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `slug` (string) (required): Integration slug (e.g. jira, slack, discord, mattermost, microsoft-teams, telegram, emails-on-push, pipelines-email, external-wiki, custom-issue-tracker, datadog, drone-ci, github, harbor, jenkins, matrix, redmine, youtrack, slack-slash-commands, mattermost-slash-commands) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_issue_discussion Get a single issue discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state). See also: gitlab_list_issue_discussions, gitlab_add_issue_discussion_note, gitlab_issue_get. **Parameters:** - `discussion_id` (string) (required): Discussion ID - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_issue_statistics Get global issue count statistics across all visible projects. Returns: a statistics object with nested counts (all, opened, closed). See also: gitlab_get_group_issue_statistics, gitlab_get_project_issue_statistics, gitlab_issue_list. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (array of strings): Filter by assignee usernames - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return issues created before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) - `iids` (array of integers): Filter by issue internal IDs - `in` (string): Fields the search query applies to (title, description, or title,description) - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (or None/Any) - `scope` (string): Scope: created_by_me, assigned_to_me, all - `search` (string): Search string for title and description - `updated_after` (string): Return issues updated after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return issues updated before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_job_token_access_settings Get a project's CI/CD job token access settings. Returns: whether inbound job token access is limited to the allowlist. See also: gitlab_patch_job_token_access_settings, gitlab_list_job_token_inbound_allowlist, gitlab_list_job_token_group_allowlist. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_key_by_fingerprint Look up an SSH key or deploy key by fingerprint and return the owning user. Returns: the key ID, title, public key, creation time, and the owning user (ID, username, name). See also: gitlab_get_ssh_key, gitlab_list_ssh_keys, gitlab_list_ssh_keys_for_user. **Parameters:** - `fingerprint` (string) (required): SSH key fingerprint (e.g. SHA256:abc123 or MD5:aa:bb:cc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_key_with_user Look up an SSH key by its global ID and return the owning user. Returns: the key ID, title, public key, creation time, and the owning user (ID, username, name). See also: gitlab_get_ssh_key, gitlab_list_ssh_keys, gitlab_list_ssh_keys_for_user. **Parameters:** - `key_id` (integer) (required): SSH key ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_license Get the active instance license. Returns: the license with plan, expires_at, user_limit, active_users, and add-ons. See also: gitlab_add_license, gitlab_delete_license. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_license_template Get a single license template by key, optionally substituting project and fullname placeholders. Returns: the license's key, name, nickname, featured flag, source/HTML URLs, description, conditions, permissions, limitations, and rendered content. See also: gitlab_list_license_templates, gitlab_create_file. **Parameters:** - `fullname` (string): Full name to replace in license - `key` (string) (required): License template key (e.g. mit, apache-2.0) - `project` (string): Project name to replace in license Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_merge_request_on_merge_train Get the merge train status of a single merge request. Returns: the merge train entry with the merge request, user, pipeline, target branch, status, and duration. See also: gitlab_list_project_merge_trains, gitlab_list_merge_request_in_merge_train, gitlab_add_merge_request_to_merge_train. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_metadata Get GitLab instance metadata such as version, revision, KAS endpoints, and enterprise edition flag. Returns: the current instance metadata object. See also: gitlab_server_status, gitlab_get_settings, gitlab_get_application_statistics. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_metric_definitions Get usage metric definitions. Returns: the metric dictionary with key, description, and category for each Service Ping metric. See also: gitlab_get_service_ping, gitlab_get_usage_queries. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_non_sql_metrics Get non-SQL usage metrics. Returns: the non-SQL portion of the Service Ping data. See also: gitlab_get_service_ping, gitlab_get_usage_queries. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_plan_limits Get plan limits for a plan. Returns: the limit values for CI, registry, import, and other resource caps. See also: gitlab_change_plan_limits, gitlab_get_settings. **Parameters:** - `plan_name` (string): Plan name to filter (e.g. default, free, bronze, silver, gold, premium, ultimate) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_alias Get one project alias by its exact name. Returns: the alias id, project_id, and name. See also: gitlab_list_project_aliases, gitlab_create_project_alias, gitlab_delete_project_alias. **Parameters:** - `name` (string) (required): The alias name to look up Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_audit_event Get a single project-level audit event by project_id and ID. Returns: the audit event with author, entity, event name/type, target details, IP address, and timestamp. See also: gitlab_list_project_audit_events, gitlab_get_group_audit_event, gitlab_get_instance_audit_event. **Parameters:** - `event_id` (integer) (required): Audit event ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_badge Get a single project badge by badge_id. Returns: the badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_list_project_badges, gitlab_edit_project_badge. **Parameters:** - `badge_id` (integer) (required): Badge ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_dora_metrics Get the four DORA DevOps performance metrics for a project over a date window. Returns: one time series of date/value data points for the requested metric (deployment frequency, lead time for changes, time to restore service, or change failure rate), bucketed by interval. See also: gitlab_get_group_dora_metrics. **Parameters:** - `end_date` (string): End date (YYYY-MM-DD) - `environment_tiers` (array of strings): Filter by environment tiers (e.g. production, staging) - `interval` (string): Aggregation interval: daily, monthly, all (default: daily) - `metric` (string) (required): DORA metric type: deployment_frequency, lead_time_for_changes, time_to_restore_service, change_failure_rate - `project_id` (string) (required): Project ID or URL-encoded path - `start_date` (string): Start date (YYYY-MM-DD) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_export_status Get the export status of a project. Returns: export id, name, path, status, message, and download links. See also: gitlab_schedule_project_export, gitlab_download_project_export. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_import_status Get the import status of a project. Returns: import id, name, path, status, type, correlation id, and import error. See also: gitlab_import_project_from_file. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_issue_statistics Get issue count statistics for a single project. Returns: a statistics object with nested counts (all, opened, closed). See also: gitlab_get_issue_statistics, gitlab_get_group_issue_statistics, gitlab_project_get. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (array of strings): Filter by assignee usernames - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601) - `created_before` (string): Return issues created before date (ISO 8601) - `iids` (array of integers): Filter by issue internal IDs - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (or None/Any) - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Scope: created_by_me, assigned_to_me, all - `search` (string): Search string for title and description - `updated_after` (string): Return issues updated after date (ISO 8601) - `updated_before` (string): Return issues updated before date (ISO 8601) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_mirror Get a single push mirror of a project by mirror id. Returns: the mirror with enabled state, redacted URL, auth method, branch filtering, and last-update status/error. See also: gitlab_list_project_mirrors, gitlab_edit_project_mirror, gitlab_force_push_mirror_update. **Parameters:** - `mirror_id` (integer) (required): Remote mirror ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_mirror_public_key Get the SSH public key for an SSH-authenticated push mirror. Returns: the public key to register on the remote. See also: gitlab_get_project_mirror, gitlab_edit_project_mirror. **Parameters:** - `mirror_id` (integer) (required): Remote mirror ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_mr_approval_settings Read the merge request approval settings of a project. Returns: each setting (allow author approval, allow committer approval, allow approver-list overrides, retain approvals on push, selective code owner removals, require password to approve, require reauthentication to approve) with its value, locked flag, and inherited-from source. See also: gitlab_update_project_mr_approval_settings, gitlab_get_group_mr_approval_settings. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_security_settings Read a project's security settings (Ultimate). Returns: secret_push_protection_enabled, continuous_vulnerability_scans_enabled, container scanning, and per-analyzer auto-fix flags. See also: gitlab_update_project_secret_push_protection, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_statistics Get a project's last-30-days git fetch (clone/pull) statistics. Returns: total_fetches and a per-day breakdown of date and count. See also: gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_storage_move Get a single project repository storage move by its global move id. Returns: the move's id, state, source and destination storage shards, and project. Admin-only and self-managed only. See also: gitlab_retrieve_all_project_storage_moves. **Parameters:** - `id` (integer) (required): Numeric ID of the storage move Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_storage_move_for_project Get a single repository storage move for a specific project by project_id and move id. Returns: the move's id, state, source and destination storage shards, and project. Admin-only and self-managed only. See also: gitlab_retrieve_project_storage_moves. **Parameters:** - `id` (integer) (required): Numeric ID of the storage move - `project_id` (integer) (required): Numeric ID of the project Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_project_template Returns: one project template's full content by template_type and key. See also: gitlab_list_project_templates, gitlab_create_project. **Parameters:** - `key` (string) (required): Template key/name - `project_id` (string) (required): Project ID or URL-encoded path - `template_type` (string) (required): Template type: dockerfiles, gitignores, gitlab_ci_ymls, licenses Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_recently_added_members_count Get the count of recently added members across a group. Returns: the group path and recently added members count (Premium). See also: gitlab_get_recently_created_issues_count, gitlab_get_recently_created_mr_count, gitlab_group_get. **Parameters:** - `group_path` (string) (required): Full path of the group (e.g. my-group or parent/child) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_recently_created_issues_count Get the count of recently created issues across a group. Returns: the group path and recently created issues count (Premium). See also: gitlab_get_recently_created_mr_count, gitlab_get_recently_added_members_count, gitlab_group_get. **Parameters:** - `group_path` (string) (required): Full path of the group (e.g. my-group or parent/child) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_recently_created_mr_count Get the count of recently created merge requests across a group. Returns: the group path and recently created merge requests count (Premium). See also: gitlab_get_recently_created_issues_count, gitlab_get_recently_added_members_count, gitlab_group_get. **Parameters:** - `group_path` (string) (required): Full path of the group (e.g. my-group or parent/child) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_resource_group Get one CI resource group in a project by key. Returns: the resource group ID, key, and process mode (the concurrency mode that controls how jobs sharing the resource group are serialized). See also: gitlab_list_resource_groups, gitlab_edit_resource_group, gitlab_list_resource_group_upcoming_jobs. **Parameters:** - `key` (string) (required): Resource group key - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_service_ping Get the Service Ping payload. Returns: the aggregated instance usage data report. See also: gitlab_get_non_sql_metrics, gitlab_get_usage_queries. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_settings Get the current GitLab application (instance) settings. Returns: the full application settings object including sign-up, visibility, CI/CD, and rate-limit configuration. See also: gitlab_update_settings, gitlab_get_appearance, gitlab_get_metadata. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_sidekiq_compound_metrics Get combined Sidekiq metrics. Returns: queue, process, and job statistics in a single object. See also: gitlab_get_sidekiq_queue_metrics, gitlab_get_sidekiq_job_stats. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_sidekiq_job_stats Get Sidekiq job statistics. Returns: aggregate counts of processed, failed, and enqueued jobs. See also: gitlab_get_sidekiq_queue_metrics, gitlab_get_sidekiq_compound_metrics. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_sidekiq_process_metrics Get Sidekiq process metrics. Returns: the list of Sidekiq processes with concurrency and queue assignments. See also: gitlab_get_sidekiq_queue_metrics, gitlab_get_sidekiq_compound_metrics. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_sidekiq_queue_metrics Get Sidekiq queue metrics. Returns: per-queue backlog and latency figures. See also: gitlab_get_sidekiq_process_metrics, gitlab_get_sidekiq_compound_metrics. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_snippet_discussion Get a single snippet discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state). See also: gitlab_list_snippet_discussions, gitlab_add_snippet_discussion_note, gitlab_project_snippet_get. **Parameters:** - `discussion_id` (string) (required): Discussion ID - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_snippet_storage_move Get a single snippet repository storage move by its ID. Returns: the storage move with state, source and destination storage shards, and the associated snippet. See also: gitlab_retrieve_all_snippet_storage_moves, gitlab_get_snippet_storage_move_for_snippet. **Parameters:** - `id` (integer) (required): Numeric ID of the storage move Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_snippet_storage_move_for_snippet Get a single repository storage move scoped to one snippet by snippet ID and move ID. Returns: the storage move with state, source and destination storage shards, and the associated snippet. See also: gitlab_retrieve_snippet_storage_moves, gitlab_get_snippet_storage_move. **Parameters:** - `id` (integer) (required): Numeric ID of the storage move - `snippet_id` (integer) (required): Numeric ID of the snippet Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_ssh_key Get one of the current user's SSH keys by ID. Returns: key ID, title, public key, usage type, and expiry. See also: gitlab_list_ssh_keys, gitlab_add_ssh_key, gitlab_delete_ssh_key. **Parameters:** - `key_id` (integer) (required): The ID of the SSH key Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_ssh_key_for_user Get a specific user's SSH key by ID. Returns: key ID, title, public key, usage type, and expiry. See also: gitlab_list_ssh_keys_for_user, gitlab_add_ssh_key_for_user, gitlab_delete_ssh_key_for_user. **Parameters:** - `key_id` (integer) (required): The ID of the SSH key - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_status_geo_site Get replication status for one Geo site. Returns: health, replication lag, and detailed sync/verification/checksum counts and percentages plus navigation links. See also: gitlab_list_status_all_geo_sites, gitlab_get_geo_site. **Parameters:** - `id` (integer) (required): Numeric ID of the Geo site Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_system_hook Get a system hook by id. Returns: the system hook with url, event triggers, and SSL verification setting. See also: gitlab_list_system_hooks, gitlab_edit_system_hook. **Parameters:** - `id` (integer) (required): System hook ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_terraform_state Get a Terraform state. Returns: the state with name, lock info, and latest version. See also: gitlab_list_terraform_states, gitlab_lock_terraform_state. **Parameters:** - `name` (string) (required): Terraform state name - `project_path` (string) (required): Full project path (e.g. group/project) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_topic Get a single project topic by id. Returns: the topic with id, name, title, description, avatar, and project count. See also: gitlab_list_topics, gitlab_update_topic. **Parameters:** - `topic_id` (integer) (required): Topic ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_usage_queries Get usage data queries. Returns: the SQL query definitions backing Service Ping metrics. See also: gitlab_get_service_ping, gitlab_get_metric_definitions. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_user Get one user by ID. Returns: detailed account profile metadata and status fields. See also: gitlab_list_users, gitlab_modify_user, gitlab_delete_user. **Parameters:** - `user_id` (integer) (required): The ID of the user to retrieve - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_user_activities List user activities (admin). Returns: username and last-activity date per user. See also: gitlab_list_users, gitlab_list_user_contribution_events, gitlab_get_user_memberships. **Parameters:** - `from` (string): Only activities after this date (YYYY-MM-DD) - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_user_associations_count Get a user's association counts. Returns: groups, projects, issues, and merge-requests counts. See also: gitlab_get_user, gitlab_get_user_memberships, gitlab_delete_user. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_user_memberships List a user's memberships. Returns: source ID, name, type, and access level per membership. See also: gitlab_get_user, gitlab_get_user_associations_count, gitlab_get_user_activities. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: asc or desc - `type` (string): Membership type filter: Project (project memberships) or Namespace (group memberships). - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_user_status Get a user's status by ID. Returns: emoji, message, availability, and clear-status time. See also: gitlab_current_user_status, gitlab_set_user_status, gitlab_get_user. **Parameters:** - `user_id` (integer) (required): The ID of the user whose status to retrieve Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_vulnerability Get a single vulnerability by global ID. Returns: title, description, severity, state, report type, scanner, identifiers, location, solution, linked issues, and merge request. See also: gitlab_list_vulnerabilities, gitlab_dismiss_vulnerability, gitlab_confirm_vulnerability. **Parameters:** - `id` (string) (required): Vulnerability GID (e.g. gid://gitlab/Vulnerability/42) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_get_work_item Get a single work item by namespace path and IID. Returns: id, iid, type, state, status, title, description, author, assignees, labels, linked items, child work items, confidentiality, timestamps, and web URL. Experimental. See also: gitlab_list_work_items, gitlab_update_work_item, gitlab_delete_work_item. **Parameters:** - `full_path` (string) (required): Full path of the project or group (e.g. my-group/my-project) - `work_item_iid` (integer) (required): Work item IID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### group (117 tools) #### gitlab_group_access_token_create Create a new group access token with specified name, scopes, access level, and optional expiry date. **Parameters:** - `access_level` (integer): Access level: 5 (Minimal access), 10 (guest), 15 (Planner, Premium/Ultimate), 20 (reporter), 25 (Security Manager, Premium/Ultimate), 30 (developer), 40 (maintainer), 50 (owner); 60=Admin is not valid for group access tokens - `description` (string): Token description - `expires_at` (string): Expiry date in YYYY-MM-DD format - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string) (required): Token name - `scopes` (array of strings) (required): Token scopes: api, read_api, read_repository, write_repository, etc. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_access_token_get Get a specific group access token by its ID. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `token_id` (integer) (required): Access token ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_access_token_list List all access tokens for a GitLab group. Filter by state (active, inactive). **Parameters:** - `created_after` (string): Return tokens created on or after this date (YYYY-MM-DD) - `created_before` (string): Return tokens created on or before this date (YYYY-MM-DD) - `expires_after` (string): Return tokens that expire on or after this date (YYYY-MM-DD) - `expires_before` (string): Return tokens that expire on or before this date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `last_used_after` (string): Return tokens last used on or after this date (YYYY-MM-DD) - `last_used_before` (string): Return tokens last used on or before this date (YYYY-MM-DD) - `order_by` (string): Column to order results by (e.g. created_at, expires_at, last_used_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `revoked` (boolean): Filter by revoked status: true to return only revoked tokens, false for non-revoked - `search` (string): Filter tokens by name (partial match) - `sort` (string): Sort order: created_asc, created_desc, expires_asc, expires_desc, last_used_asc, last_used_desc, name_asc, name_desc - `state` (string): Token state filter: active, inactive Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_access_token_revoke Revoke a group access token. This action cannot be undone. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `token_id` (integer) (required): Access token ID to revoke Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_access_token_rotate Rotate a group access token, generating a new token value. Optionally set a new expiry date. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format - `group_id` (string) (required): Group ID or URL-encoded path - `token_id` (integer) (required): Access token ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_access_token_rotate_self Rotate the group access token used for the current request. Returns the new token value. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_add_push_rule Add push rules to a GitLab group. Returns: the created push-rule configuration. See also: gitlab_group_get_push_rules, gitlab_group_edit_push_rule. **Parameters:** - `author_email_regex` (string): Regex to validate author email addresses - `branch_name_regex` (string): Regex to validate branch names - `commit_committer_check` (boolean): Reject commits where committer is not a group member - `commit_committer_name_check` (boolean): Reject commits where committer name does not match user name - `commit_message_negative_regex` (string): Regex that commit messages must NOT match - `commit_message_regex` (string): Regex that commit messages must match - `deny_delete_tag` (boolean): Deny tag deletion - `file_name_regex` (string): Regex for disallowed file names - `group_id` (string) (required): Group ID or URL-encoded path - `max_file_size` (integer): Maximum file size (MB). 0 means unlimited - `member_check` (boolean): Only allow commits from group members - `prevent_secrets` (boolean): Reject files that are likely to contain secrets - `reject_non_dco_commits` (boolean): Reject commits without DCO certification - `reject_unsigned_commits` (boolean): Reject commits that are not GPG signed Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_archive Archive a GitLab group (read-only). Returns: a success confirmation. See also: gitlab_group_unarchive, gitlab_group_get, gitlab_group_update. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_create Create a new group issue board (Premium/Ultimate). Returns: the created board with its group, milestone, labels, and lists. See also: gitlab_group_board_get, gitlab_group_board_update, gitlab_group_board_delete. **Parameters:** - `group_id` (string) (required): Group ID or path - `name` (string) (required): Board name Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_board_delete Delete a group issue board permanently. Returns: a success confirmation. See also: gitlab_group_board_get, gitlab_group_board_list. **Parameters:** - `board_id` (integer) (required): Board ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_board_get Get a single group issue board by ID. Returns: the board with its group, milestone, scope labels, and lists. See also: gitlab_group_board_list, gitlab_group_board_update, gitlab_group_board_list_lists. **Parameters:** - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_list List all issue boards in a group with pagination. Returns: each board with its group, milestone, scope labels, lists, and pagination metadata. See also: gitlab_group_board_get, gitlab_group_board_create, gitlab_group_board_list_lists. **Parameters:** - `group_id` (string) (required): Group ID or path - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_list_create Create a new list (column) on a group issue board from a group label. Returns: the created list with its label and scope. See also: gitlab_group_board_list_get, gitlab_group_board_list_update, gitlab_group_board_list_delete. **Parameters:** - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path - `label_id` (integer) (required): Label ID to create a label list Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_board_list_delete Delete a list (column) from a group issue board. Returns: a success confirmation. See also: gitlab_group_board_list_get, gitlab_group_board_list_lists. **Parameters:** - `board_id` (integer) (required): Board ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or path - `list_id` (integer) (required): Board list ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_board_list_get Get a single list (column) of a group issue board. Returns: the list with its assignee, label, iteration, and milestone scope. See also: gitlab_group_board_list_lists, gitlab_group_board_list_update, gitlab_group_board_list_delete. **Parameters:** - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path - `list_id` (integer) (required): Board list ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_list_lists List the lists (columns) of a group issue board with pagination. Returns: each list with its assignee, label, iteration, and milestone scope plus pagination metadata. See also: gitlab_group_board_list_get, gitlab_group_board_list_create, gitlab_group_board_get. **Parameters:** - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_list_update Reorder a list (column) within a group issue board. Returns: the repositioned list with its scope. See also: gitlab_group_board_list_get, gitlab_group_board_list_lists. **Parameters:** - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path - `list_id` (integer) (required): Board list ID - `position` (integer) (required): New position of the list Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_board_update Update a group issue board's name and scope (assignee, milestone, labels, weight). Returns: the updated board with its group, milestone, labels, and lists. See also: gitlab_group_board_get, gitlab_group_board_list. **Parameters:** - `assignee_id` (integer): Assignee user ID - `board_id` (integer) (required): Board ID - `group_id` (string) (required): Group ID or path - `labels` (array of strings): Board scope labels - `milestone_id` (integer): Milestone ID - `name` (string): Board name - `weight` (integer): Board scope weight Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_create Create a GitLab group or subgroup. Returns: created group metadata including ID, full path, and visibility. See also: gitlab_group_get, gitlab_group_update, gitlab_group_delete. **Parameters:** - `allow_personal_snippets` (boolean): Allow members to create personal snippets - `auto_ban_user_on_excessive_projects_download` (boolean): Automatically ban users who exceed the unique project download limit (Ultimate) - `auto_devops_enabled` (boolean): Enable Auto DevOps for projects in this group - `crm_enabled` (boolean): Enable Customer Relations Management (CRM) for the group - `default_branch` (string): Default branch name - `default_branch_protection` (integer): Deprecated: default branch protection level (0=none,1=partial,2=full,3=initial push,4=fully protected). Prefer default_branch_protection_defaults - `default_branch_protection_defaults` (object): Default branch protection settings object - `description` (string): Group description - `duo_availability` (string): GitLab Duo availability (default_on, default_off, never_on) - `emails_disabled` (boolean): Deprecated: disable email notifications. Prefer emails_enabled - `emails_enabled` (boolean): Enable email notifications - `enabled_git_access_protocol` (string): Allowed Git access protocol (ssh, http, all) - `experiment_features_enabled` (boolean): Enable experimental features - `extra_shared_runners_minutes_limit` (integer): Extra shared runner compute-minutes (administrators only) - `lfs_enabled` (boolean): Enable Git LFS - `math_rendering_limits_enabled` (boolean): Enable math rendering limits - `membership_lock` (boolean): Prevent members from being added to projects in this group - `mentions_disabled` (boolean): Disable @-mention notifications - `name` (string) (required): Group name - `organization_id` (integer): Organization ID to create the group in (GitLab.com multi-organization; defaults to the default organization) - `parent_id` (integer): Parent group ID (creates a subgroup) - `path` (string): Group URL path (defaults to kebab-case of name) - `project_creation_level` (string): Who can create projects (noone, maintainer, developer) - `request_access_enabled` (boolean): Allow users to request access - `require_two_factor_authentication` (boolean): Require two-factor authentication for members - `share_with_group_lock` (boolean): Prevent sharing projects in this group with other groups - `shared_runners_minutes_limit` (integer): Shared runner compute-minutes limit (administrators only) - `subgroup_creation_level` (string): Who can create subgroups (owner, maintainer) - `two_factor_grace_period` (integer): Grace period in hours before two-factor authentication is enforced - `unique_project_download_limit` (integer): Max number of unique projects a user can download before being banned (Ultimate) - `unique_project_download_limit_alertlist` (array of integers): User IDs notified when the unique project download limit is exceeded (Ultimate) - `unique_project_download_limit_allowlist` (array of strings): Usernames excluded from the unique project download limit (Ultimate) - `unique_project_download_limit_interval_in_seconds` (integer): Time window in seconds for the unique project download limit (Ultimate) - `visibility` (string): Visibility level (private, internal, public) - `web_based_commit_signing_enabled` (boolean): Enable web-based commit signing for projects in this group - `wiki_access_level` (string): Wiki access level (disabled, private, enabled) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_delete Delete a GitLab group and its projects. Returns: a success confirmation. See also: gitlab_group_restore, gitlab_group_get, gitlab_group_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `full_path` (string): Full path (required when permanently_remove=true) - `group_id` (string) (required): Group ID or URL-encoded path - `permanently_remove` (boolean): Permanently remove instead of marking for deletion Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_delete_push_rule Delete a GitLab group's push rules. Returns: a success confirmation. See also: gitlab_group_get_push_rules, gitlab_group_add_push_rule. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_edit_push_rule Edit a GitLab group's push rules. Returns: the updated push-rule configuration. See also: gitlab_group_get_push_rules, gitlab_group_add_push_rule. **Parameters:** - `author_email_regex` (string): Regex to validate author email addresses - `branch_name_regex` (string): Regex to validate branch names - `commit_committer_check` (boolean): Reject commits where committer is not a group member - `commit_committer_name_check` (boolean): Reject commits where committer name does not match user name - `commit_message_negative_regex` (string): Regex that commit messages must NOT match - `commit_message_regex` (string): Regex that commit messages must match - `deny_delete_tag` (boolean): Deny tag deletion - `file_name_regex` (string): Regex for disallowed file names - `group_id` (string) (required): Group ID or URL-encoded path - `max_file_size` (integer): Maximum file size (MB). 0 means unlimited - `member_check` (boolean): Only allow commits from group members - `prevent_secrets` (boolean): Reject files that are likely to contain secrets - `reject_non_dco_commits` (boolean): Reject commits without DCO certification - `reject_unsigned_commits` (boolean): Reject commits that are not GPG signed Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_epic_board_get Get a single group epic board by ID (Premium/Ultimate). Returns: the epic board with its group, hide_*_list flags, scope labels, and lists (columns) with their label scope. See also: gitlab_group_epic_board_list, gitlab_group_epic_list. **Parameters:** - `board_id` (integer) (required): Epic board ID - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_epic_board_list List all epic boards in a group with pagination (Premium/Ultimate). Returns: each epic board with its group, hide_*_list flags, scope labels, and lists (columns) with their label scope, plus pagination metadata. See also: gitlab_group_epic_board_get, gitlab_group_epic_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column by which to order results (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_get Get one GitLab group by ID or path. Returns: group metadata, visibility, parent information, and web URL. See also: gitlab_group_list, gitlab_group_members_list, gitlab_group_projects, gitlab_group_update. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order embedded projects by field (only applies with with_projects) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for embedded projects (asc, desc) - `with_custom_attributes` (boolean): Include custom attributes in the response - `with_projects` (boolean): Include the group's projects in the response (deprecated; prefer gitlab_group_projects) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_get_push_rules Get a GitLab group's push rules. Returns: the singleton push-rule configuration. See also: gitlab_group_add_push_rule, gitlab_group_edit_push_rule. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_add Create a webhook on a GitLab group. Returns: the created hook with URL, enabled events, and SSL/header metadata. See also: gitlab_group_hook_list, gitlab_group_hook_get, gitlab_group_hook_delete. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy (wildcard, regex, all_branches) - `confidential_issues_events` (boolean): Trigger on confidential issue events - `confidential_note_events` (boolean): Trigger on confidential note events - `custom_headers` (array of objects): Custom HTTP headers added to webhook requests - `custom_webhook_template` (string): Custom payload template (JSON) sent instead of the default webhook body - `deployment_events` (boolean): Trigger on deployment events - `description` (string): Hook description - `emoji_events` (boolean): Trigger on emoji events - `enable_ssl_verification` (boolean): Enable SSL verification for the hook endpoint - `feature_flag_events` (boolean): Trigger on feature flag events - `group_id` (string) (required): Group ID or URL-encoded path - `issues_events` (boolean): Trigger on issue events - `job_events` (boolean): Trigger on job events - `member_events` (boolean): Trigger on member events - `merge_requests_events` (boolean): Trigger on merge request events - `milestone_events` (boolean): Trigger on milestone events - `name` (string): Hook name - `note_events` (boolean): Trigger on comment events - `pipeline_events` (boolean): Trigger on pipeline events - `project_events` (boolean): Trigger on project events (group-level) - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events (e.g. 'main') - `releases_events` (boolean): Trigger on release events - `resource_access_token_events` (boolean): Trigger on resource access token events - `signing_token` (string): Write-only signing token for webhook signature validation - `subgroup_events` (boolean): Trigger on subgroup events - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Secret token for payload validation - `url` (string): Webhook URL (required for add) - `vulnerability_events` (boolean): Trigger on vulnerability events - `wiki_page_events` (boolean): Trigger on wiki page events Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_hook_delete Delete a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_list, gitlab_group_hook_get, gitlab_group_hook_add. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Hook ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_hook_delete_custom_header Delete a custom header from a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_set_custom_header, gitlab_group_hook_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): Custom header key name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_hook_delete_url_variable Delete a URL variable from a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_set_url_variable, gitlab_group_hook_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): URL variable key name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_hook_edit Update a GitLab group webhook. Returns: the updated hook with URL, enabled events, and SSL/header metadata. See also: gitlab_group_hook_list, gitlab_group_hook_get, gitlab_group_hook_delete. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy (wildcard, regex, all_branches) - `confidential_issues_events` (boolean): Trigger on confidential issue events - `confidential_note_events` (boolean): Trigger on confidential note events - `custom_headers` (array of objects): Custom HTTP headers added to webhook requests - `custom_webhook_template` (string): Custom payload template (JSON) sent instead of the default webhook body - `deployment_events` (boolean): Trigger on deployment events - `description` (string): Hook description - `emoji_events` (boolean): Trigger on emoji events - `enable_ssl_verification` (boolean): Enable SSL verification for the hook endpoint - `feature_flag_events` (boolean): Trigger on feature flag events - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Hook ID to edit - `issues_events` (boolean): Trigger on issue events - `job_events` (boolean): Trigger on job events - `member_events` (boolean): Trigger on member events - `merge_requests_events` (boolean): Trigger on merge request events - `milestone_events` (boolean): Trigger on milestone events - `name` (string): Hook name - `note_events` (boolean): Trigger on comment events - `pipeline_events` (boolean): Trigger on pipeline events - `project_events` (boolean): Trigger on project events (group-level) - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events (e.g. 'main') - `releases_events` (boolean): Trigger on release events - `resource_access_token_events` (boolean): Trigger on resource access token events - `signing_token` (string): Write-only signing token for webhook signature validation - `subgroup_events` (boolean): Trigger on subgroup events - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Secret token for payload validation - `url` (string): Webhook URL (required for add) - `vulnerability_events` (boolean): Trigger on vulnerability events - `wiki_page_events` (boolean): Trigger on wiki page events Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_get Get a single GitLab group webhook by ID. Returns: the hook's URL, enabled events, and SSL/header metadata. See also: gitlab_group_hook_list, gitlab_group_hook_edit, gitlab_group_hook_delete. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Hook ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_list List the webhooks on a GitLab group. Returns: hooks with URL, enabled events, and SSL settings. See also: gitlab_group_hook_get, gitlab_group_hook_add, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order hooks by field (id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_resend_event Resend a GitLab group hook event. Returns: a success confirmation. See also: gitlab_group_hook_test, gitlab_group_hook_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `hook_event_id` (integer) (required): ID of the hook event to resend - `hook_id` (integer) (required): Webhook ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_set_custom_header Set a custom header on a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_delete_custom_header, gitlab_group_hook_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): Custom header key name - `value` (string) (required): Custom header value (write-only) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_set_url_variable Set a URL variable on a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_delete_url_variable, gitlab_group_hook_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): URL variable key name — letters and underscores only; GitLab rejects keys containing digits - `value` (string) (required): URL variable value (write-only) — must be non-empty Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_hook_test Trigger a test event for a GitLab group webhook. Returns: a success confirmation. See also: gitlab_group_hook_get, gitlab_group_hook_resend_event. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `hook_id` (integer) (required): Webhook ID - `trigger` (string) (required): Event type to test (push_events, tag_push_events, issues_events, confidential_issues_events, note_events, merge_requests_events, job_events, pipeline_events, wiki_page_events, releases_events, emoji_events, resource_access_token_events) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_invite Invite a user to a group by email or user ID with an access level. Returns: an invitation result with status and per-email messages. See also: gitlab_group_invite_list_pending, gitlab_group_member_add, gitlab_access_request_request_group. **Parameters:** - `access_level` (integer) (required): Access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `email` (string): Email address to invite (either email or user_id required) - `expires_at` (string): Expiration date for the invitation (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `id` (string): Group ID or URL-encoded path sent in the request body (mirrors the GitLab id parameter; usually equal to group_id) - `user_id` (integer): User ID to invite (either email or user_id required) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_invite_list_pending List a group's pending invitations. Returns: pending invitations with invite email, access level, creator, creation and expiry dates, plus pagination metadata. See also: gitlab_group_invite, gitlab_group_members_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `query` (string): Filter invitations by email or name - `sort` (string): Sort order for keyset-paginated results: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_invited_list List groups invited to a GitLab group. Returns: the invited groups with path and access metadata. See also: gitlab_group_shared_with_list, gitlab_group_members_list, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `min_access_level` (integer): Minimum access level the invitation grants (10=Guest,20=Reporter,30=Developer,40=Maintainer,50=Owner) - `order_by` (string): Order invited groups by field (name, path, id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `relation` (array of strings): Filter by relation (direct, inherited) - `search` (string): Filter invited groups by name or path - `sort` (string): Sort direction (asc, desc) - `with_custom_attributes` (boolean): Include custom attributes in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_label_create Create a new group label. Returns: the created label with id, name, color, text color, description, counts, priority, and subscription state. See also: gitlab_group_label_list, gitlab_group_label_get, gitlab_group_label_update. **Parameters:** - `archived` (boolean): Whether to create the label in archived state - `color` (string) (required): Label color in hex format (e.g. #FF0000) - `description` (string): Label description - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string) (required): Label name - `priority` (integer): Label priority (lower is higher priority, 0 means no priority) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_label_delete Delete a group label permanently. Returns: a success confirmation. See also: gitlab_group_label_get, gitlab_group_label_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `label_id` (string) (required): Label ID or name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_label_get Get a single group label by ID or name. Returns: the label with color, text color, description, issue and merge request counts, priority, and subscription state. See also: gitlab_group_label_list, gitlab_group_label_update, gitlab_group_label_delete. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `label_id` (string) (required): Label ID or name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_label_list List labels in a group with filtering and pagination. Returns: matching labels with color, text color, description, issue and merge request counts, priority, subscription state, and pagination metadata. See also: gitlab_group_label_get, gitlab_group_label_create, gitlab_group_get. **Parameters:** - `archived` (boolean): Filter by archived state: true returns only archived labels, false only active labels; omit for both - `group_id` (string) (required): Group ID or URL-encoded path - `include_ancestor_groups` (boolean): Include labels from ancestor groups - `include_descendant_groups` (boolean): Include labels from descendant groups - `only_group_labels` (boolean): Only return group-level labels (exclude project labels) - `order_by` (string): Column to order results by for keyset pagination (e.g. name, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter labels by keyword search - `sort` (string): Sort direction (asc, desc) - `with_counts` (boolean): Include issue and merge request counts Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_label_subscribe Subscribe to a group label's notifications. Returns: the label with the updated subscription state. See also: gitlab_group_label_get, gitlab_group_label_unsubscribe. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `label_id` (string) (required): Label ID or name Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_label_unsubscribe Unsubscribe from a group label's notifications. Returns: a success confirmation. See also: gitlab_group_label_get, gitlab_group_label_subscribe. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `label_id` (string) (required): Label ID or name Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_label_update Update a group label. Returns: the updated label with id, name, color, text color, description, counts, priority, and subscription state. See also: gitlab_group_label_get, gitlab_group_label_list, gitlab_group_label_delete. **Parameters:** - `archived` (boolean): Set true to archive, false to unarchive - `color` (string): New label color in hex format - `description` (string): New label description - `group_id` (string) (required): Group ID or URL-encoded path - `label_id` (string) (required): Label ID or name - `new_name` (string): New label name - `priority` (integer): New label priority (0 to remove) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_ldap_link_add Add an LDAP group link to a GitLab group by CN or filter (Premium/Ultimate). Returns: the created link with its CN/filter, provider, access level, and member role ID. See also: gitlab_group_ldap_link_list, gitlab_group_ldap_sync, gitlab_group_ldap_link_delete. **Parameters:** - `cn` (string): LDAP Common Name (CN) - `filter` (string): LDAP filter - `group_access` (integer) (required): Access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin for group LDAP) - `group_id` (string) (required): Group ID or URL-encoded path - `member_role_id` (integer): Custom member role ID - `provider` (string) (required): LDAP provider name Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_ldap_link_delete Delete a GitLab group's LDAP link by CN or filter (Premium/Ultimate). Returns: a success confirmation. See also: gitlab_group_ldap_link_list, gitlab_group_ldap_link_add, gitlab_group_ldap_sync. **Parameters:** - `cn` (string): LDAP Common Name to delete - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `filter` (string): LDAP filter to delete - `group_id` (string) (required): Group ID or URL-encoded path - `provider` (string): LDAP provider name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_ldap_link_delete_for_provider Delete a GitLab group's LDAP link for a specific provider by CN (Premium/Ultimate). Returns: a success confirmation. See also: gitlab_group_ldap_link_list, gitlab_group_ldap_link_delete, gitlab_group_ldap_sync. **Parameters:** - `cn` (string) (required): LDAP Common Name - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `provider` (string) (required): LDAP provider name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_ldap_link_list List a GitLab group's LDAP group links. Returns: each link's CN/filter, provider, and access level. See also: gitlab_group_ldap_link_add, gitlab_group_ldap_sync, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_ldap_sync Trigger an asynchronous LDAP sync for a GitLab group's LDAP links. Returns: a confirmation that the sync was queued. See also: gitlab_group_ldap_link_list, gitlab_group_ldap_link_add, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_list List accessible GitLab groups with filtering and pagination. Returns: matching groups including path, name, and visibility metadata. See also: gitlab_group_get, gitlab_group_search, gitlab_group_create. **Parameters:** - `active` (boolean): Filter by active (true) or inactive/archived (false) groups - `all_available` (boolean): Show all groups accessible by the authenticated user - `archived` (boolean): Limit to archived groups (true) or non-archived (false) - `custom_attributes` (object): Filter groups by custom attribute key/value pairs (administrators only); distinct from with_custom_attributes, which only includes them in the response - `marked_for_deletion_on` (string): Filter to groups marked for deletion on this date (YYYY-MM-DD) - `min_access_level` (integer): Minimum access level (10=Guest,20=Reporter,30=Developer,40=Maintainer,50=Owner) - `order_by` (string): Order groups by field (name, path, id, similarity) - `owned` (boolean): Limit to groups explicitly owned by the authenticated user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_storage` (string): Filter by repository storage shard (administrators only) - `search` (string): Filter groups by name or path - `skip_groups` (array of integers): Group IDs to exclude from results - `sort` (string): Sort direction (asc, desc) - `statistics` (boolean): Include group statistics (storage, counts) - `top_level_only` (boolean): Limit to top-level groups (exclude subgroups) - `visibility` (string): Filter by visibility (public, internal, private) - `with_custom_attributes` (boolean): Include custom attributes in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_list_provisioned_users List the users provisioned for a GitLab group via SAML/SCIM (Premium/Ultimate). Returns: provisioned users with username, name, state, and identity metadata. See also: gitlab_group_members_list, gitlab_group_get, gitlab_group_list. **Parameters:** - `active` (boolean): Filter to active (true) or inactive (false) users - `blocked` (boolean): Filter to blocked (true) or unblocked (false) users - `created_after` (string): Return users created after this RFC3339 timestamp (e.g. 2024-01-02T15:04:05Z) - `created_before` (string): Return users created before this RFC3339 timestamp (e.g. 2024-12-31T23:59:59Z) - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order provisioned users by (e.g. id, name, username, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search provisioned users by name, username, or email - `sort` (string): Sort direction: asc or desc - `username` (string): Filter provisioned users by exact username Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_member_add Add a user as a direct member of a group. Returns: the created membership with access level, custom member role, expiry, and seat usage. See also: gitlab_group_members_list, gitlab_group_member_edit, gitlab_group_member_get. **Parameters:** - `access_level` (integer) (required): Access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `expires_at` (string): Membership expiration date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `member_role_id` (integer): Custom member role ID to assign (Premium/Ultimate); the role's base access level must match access_level - `user_id` (integer): User ID to add - `username` (string): Username to add (alternative to user_id) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_member_edit Edit a direct group member's access level, expiry, or custom member role. Returns: the updated membership. See also: gitlab_group_members_list, gitlab_group_member_get, gitlab_group_member_remove. **Parameters:** - `access_level` (integer): New access level (5=Minimal access, 10=Guest, 15=Planner (Premium), 20=Reporter, 25=Security Manager (Premium), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `expires_at` (string): New membership expiration date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `member_role_id` (integer): Custom member role ID to assign (Premium/Ultimate); the role's base access level must match access_level - `user_id` (integer) (required): User ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_member_get Get a single direct member of a group by user ID. Returns: access level, custom member role, created_by, expiry, public email, SAML identity, and seat usage. See also: gitlab_group_members_list, gitlab_group_member_get_inherited, gitlab_group_member_edit. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `user_id` (integer) (required): User ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_member_get_inherited Get a single member of a group including inherited memberships from ancestor groups. Returns: effective access level, custom member role, created_by, expiry, public email, SAML identity, and seat usage. See also: gitlab_group_member_get, gitlab_group_members_list, gitlab_group_member_edit. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `user_id` (integer) (required): User ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_member_remove Remove a direct member from a group (destructive, requires confirmation). Returns: a delete confirmation. See also: gitlab_group_members_list, gitlab_group_member_get, gitlab_group_member_edit. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `skip_subresources` (boolean): Skip removal from subresources - `unassign_issuables` (boolean): Unassign issues and merge requests - `user_id` (integer) (required): User ID to remove Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_members_list List the members of a GitLab group (direct and inherited). Returns: members with username, access level, and seat/role metadata. See also: gitlab_group_get, gitlab_group_projects, gitlab_group_member_add. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order members by field (id, name, username, access_level, last_activity_on) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `query` (string): Filter members by name or username - `show_seat_info` (boolean): Include seat information for each member (Premium/Ultimate) - `sort` (string): Sort direction (asc, desc) - `user_ids` (array of integers): Filter the result to the given user IDs Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_burndown_events List burndown chart events for a group milestone. Returns: dated burndown events with weight, action, and pagination metadata. Requires GitLab Premium or higher. See also: gitlab_group_milestone_get, gitlab_group_milestone_issues, gitlab_group_milestone_merge_requests. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs - `order_by` (string): Order results by field (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_create Create a new group milestone. Returns: the created milestone with ID, IID, state, start and due dates. See also: gitlab_group_milestone_get, gitlab_group_milestone_list, gitlab_group_milestone_update. **Parameters:** - `description` (string): Milestone description - `due_date` (string): Due date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `start_date` (string): Start date (YYYY-MM-DD) - `title` (string) (required): Milestone title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_milestone_delete Delete a group milestone permanently. Returns: a success confirmation. See also: gitlab_group_milestone_get, gitlab_group_milestone_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_milestone_get Get a single group milestone by IID. Returns: milestone metadata, state, start and due dates, expiry, and timestamps. See also: gitlab_group_milestone_list, gitlab_group_milestone_update, gitlab_group_milestone_issues. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_issues List issues assigned to a group milestone. Returns: assigned issues with state, web URL, and pagination metadata. See also: gitlab_group_milestone_get, gitlab_group_milestone_merge_requests, gitlab_issue_list_group. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs - `order_by` (string): Order results by field (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_list List milestones in a group with filtering and pagination. Returns: matching group milestones with state, dates, expiry, and pagination metadata. See also: gitlab_group_milestone_get, gitlab_group_milestone_create, gitlab_milestone_list. **Parameters:** - `containing_date` (string): Return milestones containing this date (YYYY-MM-DD) - `end_date` (string): Return milestones with a due date on or before this date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `iids` (array of integers): Filter by milestone IIDs - `include_ancestors` (boolean): Include milestones from ancestor groups - `include_descendants` (boolean): Include milestones from descendant groups - `include_parent_milestones` (boolean): Deprecated (GitLab 16.7): use include_ancestors instead. Include milestones from parent groups - `order_by` (string): Order results by field (e.g. created_at, updated_at, due_date, title) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search milestones by title or description - `search_title` (string): Search milestones by title only - `sort` (string): Sort direction (asc, desc) - `start_date` (string): Return milestones with a start date on or after this date (YYYY-MM-DD) - `state` (string): Filter by state (active, closed) - `title` (string): Filter by exact milestone title - `updated_after` (string): Return milestones updated after date (YYYY-MM-DD) - `updated_before` (string): Return milestones updated before date (YYYY-MM-DD) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_merge_requests List merge requests assigned to a group milestone. Returns: assigned merge requests with state, source and target branches, and pagination metadata. See also: gitlab_group_milestone_get, gitlab_group_milestone_issues, gitlab_group_milestone_burndown_events. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs - `order_by` (string): Order results by field (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_milestone_update Update an existing group milestone. Returns: the updated milestone with state, dates, and expiry. See also: gitlab_group_milestone_get, gitlab_group_milestone_list, gitlab_group_milestone_delete. **Parameters:** - `description` (string): Milestone description - `due_date` (string): Due date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `milestone_iid` (integer) (required): Milestone IID (group-scoped). Use gitlab_group_milestone_list to find IIDs - `start_date` (string): Start date (YYYY-MM-DD) - `state_event` (string): State transition: activate or close - `title` (string): Milestone title Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_projects List the projects in a GitLab group. Returns: projects with path, visibility, and archived status. See also: gitlab_group_get, gitlab_subgroups_list, gitlab_group_transfer_project. **Parameters:** - `active` (boolean): Filter by active (true) or inactive/archived (false) projects - `archived` (boolean): Filter archived projects - `group_id` (string) (required): Group ID or URL-encoded path - `include_subgroups` (boolean): Include projects in subgroups - `min_access_level` (integer): Limit to projects where the caller has at least this access level (10=Guest,20=Reporter,30=Developer,40=Maintainer,50=Owner) - `order_by` (string): Order by field (id, name, path, created_at, updated_at, last_activity_at, similarity) - `owned` (boolean): Limit to projects owned by current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter projects by name - `simple` (boolean): Return limited fields - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to starred projects - `topic` (string): Filter projects by topic - `visibility` (string): Filter by visibility (public, internal, private) - `with_custom_attributes` (boolean): Include custom attributes in the response - `with_issues_enabled` (boolean): Limit to projects with issues enabled - `with_merge_requests_enabled` (boolean): Limit to projects with merge requests enabled - `with_security_reports` (boolean): Limit to projects with security reports (Ultimate) - `with_shared` (boolean): Include shared projects Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_branch_get Get a single group-level protected branch by name or wildcard. Returns: the protected branch with push, merge, and unprotect access levels (access_level, access_level_description, user_id, group_id) and force-push and code-owner-approval flags. See also: gitlab_group_protected_branch_list, gitlab_group_protected_branch_update, gitlab_group_protected_branch_unprotect. **Parameters:** - `branch` (string) (required): Branch name or wildcard - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_branch_list List group-level protected branches with search and offset or keyset pagination. Returns: protected branches with push, merge, and unprotect access levels (access_level, access_level_description, user_id, group_id), force-push and code-owner-approval flags, plus pagination metadata. See also: gitlab_group_protected_branch_get, gitlab_group_protected_branch_protect, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order results by (e.g. name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search by branch name - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_branch_protect Protect a group-level branch or wildcard, optionally with per-user/per-group allowed-to-push, merge, and unprotect entries. Returns: the created protected branch with its push, merge, and unprotect access levels and force-push and code-owner-approval flags. See also: gitlab_group_protected_branch_get, gitlab_group_protected_branch_update, gitlab_group_protected_branch_unprotect. **Parameters:** - `allow_force_push` (boolean): Allow force push - `allowed_to_merge` (array of objects): Users/groups allowed to merge - `allowed_to_push` (array of objects): Users/groups allowed to push - `allowed_to_unprotect` (array of objects): Users/groups allowed to unprotect - `code_owner_approval_required` (boolean): Require code owner approval - `group_id` (string) (required): Group ID or URL-encoded path - `merge_access_level` (integer): Merge access level - `name` (string) (required): Branch name or wildcard to protect - `push_access_level` (integer): Push access level (0=No access, 30=Developer, 40=Maintainer, 60=Admin) - `unprotect_access_level` (integer): Unprotect access level Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_protected_branch_unprotect Unprotect a group-level branch, cascading the removal to all subgroup projects. Returns: a success confirmation naming the unprotected branch. See also: gitlab_group_protected_branch_get, gitlab_group_protected_branch_list, gitlab_group_protected_branch_protect. **Parameters:** - `branch` (string) (required): Branch name or wildcard to unprotect - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_protected_branch_update Update a group-level protected branch, adding or removing (_destroy) allowed-to-push, merge, and unprotect entries. Returns: the updated protected branch with its push, merge, and unprotect access levels and force-push and code-owner-approval flags. See also: gitlab_group_protected_branch_get, gitlab_group_protected_branch_list, gitlab_group_protected_branch_unprotect. **Parameters:** - `allow_force_push` (boolean): Allow force push - `allowed_to_merge` (array of objects): Users/groups allowed to merge - `allowed_to_push` (array of objects): Users/groups allowed to push - `allowed_to_unprotect` (array of objects): Users/groups allowed to unprotect - `branch` (string) (required): Branch name or wildcard - `code_owner_approval_required` (boolean): Require code owner approval - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string): New branch name or wildcard Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_environment_get Get a single group-level protected environment by tier name. Returns: the environment with its deploy access levels (id, access level, user/group, group inheritance) and approval rules. See also: gitlab_group_protected_environment_list, gitlab_group_protected_environment_update, gitlab_group_protected_environment_unprotect. **Parameters:** - `environment` (string) (required): Environment tier (production, staging, testing, development, other) - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_environment_list List group-level protected environments with order_by/sort and offset or keyset pagination. Returns: group protected environments with their deploy access levels, required approval count, approval rules, and pagination metadata. See also: gitlab_group_protected_environment_get, gitlab_group_protected_environment_protect, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_protected_environment_protect Protect a group-level environment tier with deploy access levels and approval rules; protection cascades to all subgroup projects. Returns: the newly protected environment with its deploy access levels, required approval count, and approval rules. See also: gitlab_group_protected_environment_get, gitlab_group_protected_environment_update, gitlab_group_protected_environment_unprotect. **Parameters:** - `approval_rules` (array of objects): Approval rules - `deploy_access_levels` (array of objects): Deploy access levels - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string) (required): Environment tier to protect (production, staging, testing, development, other) - `required_approval_count` (integer): Required number of approvals Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_protected_environment_unprotect Unprotect a group-level environment tier, removing its deployment gates from the group and its subgroup projects. Returns: a success confirmation. See also: gitlab_group_protected_environment_list, gitlab_group_protected_environment_protect. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment` (string) (required): Environment tier to unprotect (production, staging, testing, development, other) - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_protected_environment_update Update a group-level protected environment's deploy access levels and approval rules (use _destroy to remove an entry). Returns: the updated environment with its deploy access levels, required approval count, and approval rules. See also: gitlab_group_protected_environment_get, gitlab_group_protected_environment_protect, gitlab_group_protected_environment_unprotect. **Parameters:** - `approval_rules` (array of objects): Updated approval rules - `deploy_access_levels` (array of objects): Updated deploy access levels - `environment` (string) (required): Environment tier (production, staging, testing, development, other) - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string): New environment tier (production, staging, testing, development, other) - `required_approval_count` (integer): Required number of approvals Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_release_list List releases across all projects in a group with pagination, ordering, and keyset support. Returns: tag names, release names, dates, author, commit, assets, milestones, evidences, and _links per release. See also: gitlab_group_get, gitlab_release_list, gitlab_release_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order releases by a column (e.g. released_at, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `simple` (boolean): Return only limited fields for each release - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_restore Restore a GitLab group marked for deletion. Returns: the restored group metadata. See also: gitlab_group_delete, gitlab_group_get, gitlab_group_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_saml_link_add Add a SAML group link to a GitLab group. **Parameters:** - `access_level` (integer) (required): Access level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner, 25=Security Manager where supported) - `group_id` (string) (required): Group ID or URL-encoded path - `member_role_id` (integer): Custom member role ID - `provider` (string): SAML provider name - `saml_group_name` (string) (required): Name of the SAML group Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_saml_link_delete Delete a SAML group link from a GitLab group by SAML group name. Returns: a confirmation that the SAML group mapping was removed (members are not deleted). See also: gitlab_group_saml_link_list, gitlab_group_saml_link_get, gitlab_group_saml_link_add. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `saml_group_name` (string) (required): Name of the SAML group to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_saml_link_get Get one SAML group link of a GitLab group by SAML group name. Returns: the link's SAML group name, access level, and provider. See also: gitlab_group_saml_link_list, gitlab_group_saml_link_add, gitlab_group_saml_link_delete. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `saml_group_name` (string) (required): Name of the SAML group Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_saml_link_list List a GitLab group's SAML group links. Returns: each link's SAML group name, access level, and provider. See also: gitlab_group_saml_users_list, gitlab_group_saml_link_add, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_saml_users_list List SAML SSO-provisioned users of a top-level GitLab group, with keyset pagination. Returns: matching users with full profile (id, username, name, state, email, identities, scim_identities, custom_attributes, created_by) plus pagination metadata. See also: gitlab_group_saml_link_list, gitlab_group_members_list, gitlab_group_get. **Parameters:** - `active` (boolean): Limit to active users only - `blocked` (boolean): Limit to blocked users only - `created_after` (string): Return users created after this timestamp (RFC3339, e.g. 2026-01-02T15:04:05Z) - `created_before` (string): Return users created before this timestamp (RFC3339, e.g. 2026-01-02T15:04:05Z) - `group_id` (string) (required): Top-level group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by (e.g. id, name, username, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter SAML users by name, username, or public email - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `username` (string): Filter by an exact username Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_search Search GitLab groups by name or path. Returns: matching groups with path, name, and visibility. See also: gitlab_group_list, gitlab_group_get, gitlab_group_create. **Parameters:** - `query` (string) (required): Search query string Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_service_account_create Create a service account in a GitLab group (top-level only). **Parameters:** - `email` (string): Service account email - `group_id` (string) (required): Group ID or URL-encoded path (top-level only) - `name` (string): Service account name - `username` (string): Service account username Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_service_account_delete Delete a service account from a GitLab group (top-level only). **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path (top-level only) - `hard_delete` (boolean): Hard delete the service account - `service_account_id` (integer) (required): Service account user ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_service_account_list List all service accounts for a GitLab group. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order by id or username - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_service_account_pat_create Create a personal access token for a group service account. **Parameters:** - `description` (string): Token description - `expires_at` (string): Expiration date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string) (required): Token name - `scopes` (array of strings) (required): Token scopes (e.g. api read_api read_user) - `service_account_id` (integer) (required): Service account user ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_service_account_pat_list List personal access tokens for a group service account. **Parameters:** - `created_after` (string): Return tokens created after this RFC3339 timestamp - `created_before` (string): Return tokens created before this RFC3339 timestamp - `expires_after` (string): Return tokens expiring after this date (YYYY-MM-DD) - `expires_before` (string): Return tokens expiring before this date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `last_used_after` (string): Return tokens last used after this RFC3339 timestamp - `last_used_before` (string): Return tokens last used before this RFC3339 timestamp - `order_by` (string): Order tokens by a supported column (e.g. id, created_at, expires_at, last_used_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `revoked` (boolean): Filter by revoked state: true returns only revoked tokens, false only active ones - `search` (string): Filter tokens whose name contains this text - `service_account_id` (integer) (required): Service account user ID - `sort` (string): Sort direction: asc or desc - `state` (string): Filter by token state: active or inactive - `user_id` (integer): Filter by the user ID that owns the token Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_service_account_pat_revoke Revoke a personal access token for a group service account. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID - `token_id` (integer) (required): Personal access token ID to revoke Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_service_account_pat_rotate Rotate a group service account's personal access token: revokes the supplied token_id and issues a replacement in one step (all tiers, Owner role). Returns: the new personal access token object (id, name, scopes, active, revoked, created_at, expires_at, and the one-time token value — capture it immediately, it is not retrievable later). See also: gitlab_group_service_account_pat_create, gitlab_group_service_account_pat_revoke, gitlab_group_service_account_pat_list. **Parameters:** - `expires_at` (string): Expiration date for the new token (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID - `token_id` (integer) (required): Personal access token ID to rotate Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_service_account_update Update a service account in a GitLab group (top-level only). **Parameters:** - `email` (string): New email - `group_id` (string) (required): Group ID or URL-encoded path (top-level only) - `name` (string): New name - `service_account_id` (integer) (required): Service account user ID - `username` (string): New username Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_share Share a group with another group at a chosen access level. Returns: the shared group's id, name, path, and web URL. See also: gitlab_group_unshare, gitlab_group_get, gitlab_group_members_list. **Parameters:** - `expires_at` (string): Share expiration date (YYYY-MM-DD) - `group_access` (integer) (required): Access level for the shared group (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer); 5=Minimal access, 15=Planner, 25=Security Manager, 60=Admin are not valid for group shares - `group_id` (string) (required): Group ID or URL-encoded path to share - `share_group_id` (integer) (required): Group ID to share with Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_share_with_group Share a GitLab group with another group (Groups API). Returns: a confirmation with the granted access role. See also: gitlab_group_shared_with_list, gitlab_group_unshare_from_group, gitlab_group_get. **Parameters:** - `expires_at` (string): Expiration date for the share (YYYY-MM-DD) - `group_access` (integer) (required): Access level granted to the shared group (10=Guest 20=Reporter 30=Developer 40=Maintainer 50=Owner) - `group_id` (string) (required): Group ID or URL-encoded path of the group being shared - `member_role_id` (integer): Custom member role ID to grant (Ultimate) - `shared_group_id` (integer) (required): ID of the group to share with Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_shared_projects_list List projects shared with a GitLab group. Returns: shared projects with path, visibility, and archived status. See also: gitlab_group_projects, gitlab_group_shared_with_list, gitlab_group_get. **Parameters:** - `archived` (boolean): Filter archived projects - `group_id` (string) (required): Group ID or URL-encoded path - `min_access_level` (integer): Limit to projects where the caller has at least this access level (10=Guest,20=Reporter,30=Developer,40=Maintainer,50=Owner) - `order_by` (string): Order by field (id, name, path, created_at, updated_at, last_activity_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter projects by name - `simple` (boolean): Return limited fields - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to starred projects - `visibility` (string): Filter by visibility (public, internal, private) - `with_custom_attributes` (boolean): Include custom attributes in the response - `with_issues_enabled` (boolean): Limit to projects with issues enabled - `with_merge_requests_enabled` (boolean): Limit to projects with merge requests enabled Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_shared_with_list List groups shared with a GitLab group (group-to-group shares). Returns: the shared groups with path, visibility, and access metadata. See also: gitlab_group_invited_list, gitlab_group_members_list, gitlab_subgroups_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `min_access_level` (integer): Minimum access level the share grants (10=Guest,20=Reporter,30=Developer,40=Maintainer,50=Owner) - `order_by` (string): Order shared groups by field (name, path, id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter shared groups by name or path - `skip_groups` (array of integers): Group IDs to exclude from the results - `sort` (string): Sort direction (asc, desc) - `visibility` (string): Filter by visibility (public, internal, private) - `with_custom_attributes` (boolean): Include custom attributes in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_transfer Transfer a GitLab group under a new parent (or to top level). Returns: the updated group metadata. See also: gitlab_group_transfer_locations, gitlab_group_get, gitlab_subgroups_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path of the group to move - `parent_id` (integer): ID of the new parent group; omit to turn the subgroup into a top-level group Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_transfer_locations List candidate parent groups for transferring a GitLab group. Returns: eligible destination groups with id, name, and full path. See also: gitlab_group_transfer_project, gitlab_group_get, gitlab_subgroups_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Order candidate parent groups by field (name, path, id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter candidate parent groups by name or path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_transfer_project Transfer a project into a GitLab group namespace. Returns: the updated project metadata. See also: gitlab_group_transfer_locations, gitlab_group_get, gitlab_group_projects. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `project_id` (string) (required): Project ID or URL-encoded path to transfer Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_unarchive Unarchive a GitLab group (restore write access). Returns: a success confirmation. See also: gitlab_group_archive, gitlab_group_get, gitlab_group_update. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_unshare Revoke an existing group-to-group share (destructive, requires confirmation). Returns: a delete confirmation. See also: gitlab_group_share, gitlab_group_get, gitlab_group_members_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `share_group_id` (integer) (required): Group ID to stop sharing with Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_unshare_from_group Revoke a group-to-group share (Groups API). Returns: a success confirmation. See also: gitlab_group_share_with_group, gitlab_group_shared_with_list, gitlab_group_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path of the group being unshared - `shared_group_id` (integer) (required): ID of the group whose share is removed Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_update Update a GitLab group's settings. Returns: the updated group metadata. See also: gitlab_group_get, gitlab_group_create, gitlab_group_delete. **Parameters:** - `allow_merge_on_skipped_pipeline` (boolean): Allow merging when the pipeline is skipped - `allow_personal_snippets` (boolean): Allow members to create personal snippets - `allowed_email_domains_list` (string): Comma-separated list of email domains allowed for members (Premium/Ultimate) - `auto_ban_user_on_excessive_projects_download` (boolean): Automatically ban users who exceed the unique project download limit (Ultimate) - `auto_devops_enabled` (boolean): Enable Auto DevOps for projects in this group - `crm_enabled` (boolean): Enable Customer Relations Management (CRM) for the group - `default_branch` (string): Default branch name - `default_branch_protection` (integer): Deprecated: default branch protection level (0=none,1=partial,2=full,3=initial push,4=fully protected). Prefer default_branch_protection_defaults - `default_branch_protection_defaults` (object): Default branch protection settings object - `description` (string): Group description - `duo_availability` (string): GitLab Duo availability (default_on, default_off, never_on) - `duo_features_enabled` (boolean): Enable GitLab Duo features - `emails_disabled` (boolean): Deprecated: disable email notifications. Prefer emails_enabled - `emails_enabled` (boolean): Enable email notifications - `enabled_git_access_protocol` (string): Allowed Git access protocol (ssh, http, all) - `experiment_features_enabled` (boolean): Enable experimental features - `extra_shared_runners_minutes_limit` (integer): Extra shared runner compute-minutes (administrators only) - `file_template_project_id` (integer): Project ID providing file templates for this group (Premium/Ultimate) - `group_id` (string) (required): Group ID or URL-encoded path - `ip_restriction_ranges` (string): Comma-separated CIDR ranges allowed to access the group (Premium/Ultimate) - `lfs_enabled` (boolean): Enable Git LFS - `lock_duo_features_enabled` (boolean): Prevent subgroups from changing the Duo features setting - `lock_math_rendering_limits_enabled` (boolean): Prevent subgroups from changing the math rendering limits setting - `math_rendering_limits_enabled` (boolean): Enable math rendering limits - `max_artifacts_size` (integer): Maximum job artifacts size in MB (administrators only) - `membership_lock` (boolean): Prevent members from being added to projects in this group - `mentions_disabled` (boolean): Disable @-mention notifications - `name` (string): Group name - `only_allow_merge_if_all_discussions_are_resolved` (boolean): Only allow merging when all discussions are resolved - `only_allow_merge_if_pipeline_succeeds` (boolean): Only allow merging when the pipeline succeeds - `path` (string): Group URL path - `prevent_forking_outside_group` (boolean): Prevent forking projects outside the group (Premium/Ultimate) - `prevent_sharing_groups_outside_hierarchy` (boolean): Prevent inviting groups outside this group's hierarchy - `project_creation_level` (string): Who can create projects (noone, maintainer, developer) - `request_access_enabled` (boolean): Allow users to request access - `require_two_factor_authentication` (boolean): Require two-factor authentication for members - `share_with_group_lock` (boolean): Prevent sharing projects in this group with other groups - `shared_runners_minutes_limit` (integer): Shared runner compute-minutes limit (administrators only) - `shared_runners_setting` (string): Shared runners setting (enabled, disabled_and_overridable, disabled_and_unoverridable) - `step_up_auth_required_oauth_provider` (string): OAuth provider required for step-up authentication - `subgroup_creation_level` (string): Who can create subgroups (owner, maintainer) - `two_factor_grace_period` (integer): Grace period in hours before two-factor authentication is enforced - `unique_project_download_limit` (integer): Max number of unique projects a user can download before being banned (Ultimate) - `unique_project_download_limit_alertlist` (array of integers): User IDs notified when the unique project download limit is exceeded (Ultimate) - `unique_project_download_limit_allowlist` (array of strings): Usernames excluded from the unique project download limit (Ultimate) - `unique_project_download_limit_interval_in_seconds` (integer): Time window in seconds for the unique project download limit (Ultimate) - `visibility` (string): Visibility level (private, internal, public) - `web_based_commit_signing_enabled` (boolean): Enable web-based commit signing for projects in this group - `wiki_access_level` (string): Wiki access level (disabled, private, enabled) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_upload_avatar Upload or replace a GitLab group's avatar image. Returns: the updated group metadata. See also: gitlab_group_update, gitlab_group_get, gitlab_group_create. **Parameters:** - `content_base64` (string): Base64-encoded image content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local image file on the MCP server filesystem. Alternative to content_base64 for files too large to base64-encode. Only one of file_path or content_base64 should be provided. - `filename` (string) (required): Avatar filename (e.g. avatar.png) - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_variable_create Create a CI/CD variable in a group with type, environment scope, and protected/masked/raw/masked_and_hidden flags. Returns: the created variable's key, value, type, flags, environment scope, and description. See also: gitlab_group_variable_list, gitlab_group_variable_get, gitlab_group_variable_update. **Parameters:** - `description` (string): Variable description - `environment_scope` (string): Environment scope (default: *) - `group_id` (string) (required): Group ID or URL-encoded path - `key` (string) (required): Variable key name - `masked` (boolean): Mask variable value in job logs - `masked_and_hidden` (boolean): Mask and hide variable value - `protected` (boolean): Only expose in protected branches/tags - `raw` (boolean): Treat variable value as raw string - `value` (string) (required): Variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_variable_delete Delete a group CI/CD variable by key, selecting an environment-scoped instance via the filter. Returns: a success confirmation message. See also: gitlab_group_variable_list, gitlab_group_variable_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment_scope` (string): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `group_id` (string) (required): Group ID or URL-encoded path - `key` (string) (required): Variable key name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_variable_get Get a single group CI/CD variable by key, optionally selecting an environment-scoped instance via the filter. Returns: the variable's key, value, type, protected/masked/hidden/raw flags, environment scope, and description. See also: gitlab_group_variable_list, gitlab_group_variable_update, gitlab_group_variable_delete. **Parameters:** - `environment_scope` (string): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `group_id` (string) (required): Group ID or URL-encoded path - `key` (string) (required): Variable key name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_variable_list List a group's CI/CD variables with order_by, sort, and offset or keyset pagination. Returns: each variable's key, value, type, protected/masked/hidden/raw flags, environment scope, description, and pagination metadata. See also: gitlab_group_variable_get, gitlab_group_variable_create, gitlab_group_variable_update. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column by which to order keyset-paginated results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset-paginated results (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_variable_update Update a group CI/CD variable, selecting an environment-scoped instance via the filter. Returns: the updated variable's key, value, type, protected/masked/hidden/raw flags, environment scope, and description. See also: gitlab_group_variable_get, gitlab_group_variable_list, gitlab_group_variable_delete. **Parameters:** - `description` (string): Updated variable description - `environment_scope` (string): Filter by environment scope (shorthand for filter.environment_scope) - `filter` (object): Filter selecting the variable by environment scope; mirrors the GitLab variable filter object - `group_id` (string) (required): Group ID or URL-encoded path - `key` (string) (required): Variable key name - `masked` (boolean): Mask variable value in job logs - `protected` (boolean): Only expose in protected branches/tags - `raw` (boolean): Treat variable value as raw string - `value` (string): Updated variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_wiki_create Create a new group wiki page. Returns: the created page with title, slug, format, content, and encoding. See also: gitlab_group_wiki_get, gitlab_group_wiki_edit, gitlab_group_wiki_list. **Parameters:** - `content` (string) (required): Content of the wiki page - `format` (string): Content format: markdown (default), rdoc, asciidoc, or org - `group_id` (string) (required): Group ID or URL-encoded path - `title` (string) (required): Title of the wiki page Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_group_wiki_delete Delete a group wiki page permanently. Returns: a success confirmation for the removed page. See also: gitlab_group_wiki_get, gitlab_group_wiki_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `slug` (string) (required): URL-encoded slug of the wiki page to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_group_wiki_edit Update an existing group wiki page by slug. Returns: the updated page with title, slug, format, content, and encoding. See also: gitlab_group_wiki_get, gitlab_group_wiki_delete, gitlab_group_wiki_list. **Parameters:** - `content` (string): New content - `format` (string): Content format: markdown, rdoc, asciidoc, or org - `group_id` (string) (required): Group ID or URL-encoded path - `slug` (string) (required): URL-encoded slug of the wiki page to edit - `title` (string): New title Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_group_wiki_get Get a single group wiki page by slug. Returns: the page title, slug, format, content, and encoding. See also: gitlab_group_wiki_list, gitlab_group_wiki_edit, gitlab_group_wiki_delete. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `render_html` (boolean): Return HTML-rendered content - `slug` (string) (required): URL-encoded slug of the wiki page - `version` (string): Wiki page version SHA Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_group_wiki_list List a group's wiki pages (GitLab Premium). Returns: each page's title, slug, and format (plus content when with_content is set), with hints to read or create pages. See also: gitlab_group_wiki_get, gitlab_group_wiki_create. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `with_content` (boolean): Include page content in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### import (6 tools) #### gitlab_import_from_bitbucket_cloud Import a repository from Bitbucket Cloud. Returns: the created project for the imported repository. See also: gitlab_import_from_bitbucket_server, gitlab_import_from_github. **Parameters:** - `bitbucket_api_token` (string): Bitbucket Cloud API token (replaces app passwords). Treat as secret: do not log or store it, and redact it in telemetry/errors. Requires bitbucket_email - `bitbucket_app_password` (string): Bitbucket Cloud app password (legacy auth). Treat as secret: do not log or store it, and redact it in telemetry/errors. Provide this OR bitbucket_api_token + bitbucket_email - `bitbucket_email` (string): Atlassian account email associated with the API token (required when using bitbucket_api_token) - `bitbucket_username` (string) (required): Bitbucket Cloud username - `new_name` (string): New name for the imported project - `repo_path` (string) (required): Bitbucket repository path (e.g. owner/repo) - `target_namespace` (string) (required): Target namespace for the imported project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_import_from_bitbucket_server Import a repository from Bitbucket Server. Returns: the created project for the imported repository. See also: gitlab_import_from_bitbucket_cloud, gitlab_import_from_github. **Parameters:** - `bitbucket_server_project` (string) (required): Bitbucket Server project key - `bitbucket_server_repo` (string) (required): Bitbucket Server repository slug - `bitbucket_server_url` (string) (required): Bitbucket Server URL - `bitbucket_server_username` (string) (required): Bitbucket Server username - `new_name` (string): New name for the imported project - `new_namespace` (string): Target namespace for the imported project - `personal_access_token` (string) (required): Bitbucket Server personal access token. Treat as secret: do not log or store it, and redact it in telemetry/errors - `timeout_strategy` (string): Timeout strategy (optimistic or pessimistic) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_import_from_github Import a repository from GitHub. Returns: the created project for the imported repository with its import status. See also: gitlab_cancel_github_import, gitlab_import_github_gists. **Parameters:** - `github_hostname` (string): GitHub hostname for GitHub Enterprise - `new_name` (string): New name for the imported project - `optional_stages` (object): Optional import stages to enable (each defaults to disabled when omitted) - `personal_access_token` (string) (required): GitHub personal access token. Treat as secret: do not log or store it, and redact it in telemetry/errors - `repo_id` (integer) (required): GitHub repository ID - `target_namespace` (string) (required): Target namespace for the imported project - `timeout_strategy` (string): Timeout strategy (optimistic or pessimistic) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_import_github_gists Import GitHub gists into snippets. Returns: a success status; the import runs asynchronously. See also: gitlab_import_from_github, gitlab_cancel_github_import. **Parameters:** - `personal_access_token` (string) (required): GitHub personal access token. Treat as secret: do not log or store it, and redact it in telemetry/errors Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_import_group_from_file Import a group from a local export archive. Returns: a confirmation that the import started (GitLab builds the group asynchronously). See also: gitlab_schedule_group_export, gitlab_download_group_export, gitlab_group_list. **Parameters:** - `file` (string) (required): Canonical path to a local export archive (.tar.gz) under the current working directory, OS temp directory, or GITLAB_MCP_ALLOWED_IMPORT_DIRS. Symlinks are resolved and escapes are rejected - `name` (string) (required): Name for the imported group - `parent_id` (integer): ID of the parent group to import into - `path` (string) (required): URL path for the imported group Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_import_project_from_file Import a project from an export archive. Returns: the new project's import status, type, correlation id, and any import error. See also: gitlab_get_project_import_status, gitlab_download_project_export. **Parameters:** - `content_base64` (string): Base64-encoded export archive content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Canonical path to a local export archive (.tar.gz) under the current working directory, OS temp directory, or GITLAB_MCP_ALLOWED_IMPORT_DIRS. Symlinks are resolved and escapes are rejected. Only one of file_path or content_base64 should be provided. - `name` (string): Name for the imported project - `namespace` (string): Namespace to import the project into (user or group path) - `override_params` (object): Optional project attributes to override on the imported project (mirrors the create-project attributes accepted by override_params[]) - `overwrite` (boolean): If true, overwrite an existing project with the same path - `path` (string): URL path for the imported project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### instance (5 tools) #### gitlab_instance_variable_create Create an instance-level CI/CD variable with type and protected/masked/raw flags (admin-only). Returns: the created variable's key, value (redacted when masked), type, flags, and description. See also: gitlab_instance_variable_list, gitlab_instance_variable_get, gitlab_instance_variable_update. **Parameters:** - `description` (string): Variable description - `key` (string) (required): Variable key name - `masked` (boolean): Mask variable value in job logs - `protected` (boolean): Only expose in protected branches/tags - `raw` (boolean): Treat variable value as raw string - `value` (string) (required): Variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_instance_variable_delete Delete an instance-level CI/CD variable by key (admin-only). Returns: a success confirmation message. See also: gitlab_instance_variable_list, gitlab_instance_variable_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key` (string) (required): Variable key name Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_instance_variable_get Get a single instance-level CI/CD variable by key (admin-only). Returns: the variable's key, value (redacted when masked), type, protected/masked/raw flags, and description. See also: gitlab_instance_variable_list, gitlab_instance_variable_update, gitlab_instance_variable_delete. **Parameters:** - `key` (string) (required): Variable key name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_instance_variable_list List instance-level CI/CD variables with order_by, sort, and offset or keyset pagination (admin-only). Returns: each variable's key, value (redacted when masked), type, protected/masked/raw flags, description, and pagination metadata. See also: gitlab_instance_variable_get, gitlab_instance_variable_create, gitlab_instance_variable_update, gitlab_instance_variable_delete. **Parameters:** - `order_by` (string): Column by which to order keyset-paginated results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset-paginated results (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_instance_variable_update Update an instance-level CI/CD variable by key, with type and protected/masked/raw flags (admin-only). Returns: the updated variable's key, value (redacted when masked), type, protected/masked/raw flags, and description. See also: gitlab_instance_variable_get, gitlab_instance_variable_list, gitlab_instance_variable_delete. **Parameters:** - `description` (string): Updated variable description - `key` (string) (required): Variable key name - `masked` (boolean): Mask variable value in job logs - `protected` (boolean): Only expose in protected branches/tags - `raw` (boolean): Treat variable value as raw string - `value` (string): Updated variable value - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### interactive (4 tools) #### gitlab_interactive_issue_create Create a GitLab issue through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the issue. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path where the issue will be created Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_interactive_mr_create Create a GitLab merge request through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the MR. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path where the MR will be created Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_interactive_project_create Create a GitLab project through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the project except initialize_with_readme, where decline/cancel continues with false. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_interactive_release_create Create a GitLab release through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the release. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path where the release will be created Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### issue (47 tools) #### gitlab_issue_create Create a new issue in a project. Returns: the created issue with IID, state, labels, assignees, milestone, due date, and web URL. See also: gitlab_issue_get, gitlab_issue_list, gitlab_issue_update. **Parameters:** - `assignee_id` (integer): Single user ID to assign (use assignee_ids for multiple) - `assignee_ids` (array of integers): User IDs to assign - `confidential` (boolean): Mark issue as confidential - `created_at` (string): Creation date override (ISO 8601, requires admin permissions) - `description` (string): Issue description (Markdown supported) - `discussion_to_resolve` (string): Discussion ID to mark as resolved by this issue - `due_date` (string): Due date in YYYY-MM-DD format - `epic_id` (integer): Epic ID to associate the issue with - `iid` (integer): Explicit issue IID to assign (requires admin permissions; normally GitLab assigns the next IID automatically) - `issue_type` (string): Issue type (issue, incident, test_case, task) - `labels` (array of strings): Label names to apply - `merge_request_to_resolve_discussions_of` (integer): MR IID whose unresolved discussions become issues - `milestone_id` (integer): Milestone ID to associate - `project_id` (string) (required): Project ID or URL-encoded path - `title` (string) (required): Issue title - `weight` (integer): Issue weight, 0 or higher Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_create_todo Create a to-do for an issue. Returns: the created to-do item with action, target, and state. See also: gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_delete Delete an issue permanently. Returns: a success confirmation naming the issue and project. See also: gitlab_issue_get, gitlab_issue_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_issue_emoji_create Add an emoji reaction to an issue. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_issue_emoji_list, gitlab_issue_emoji_delete. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_emoji_delete Remove an emoji reaction from an issue by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_issue_emoji_list, gitlab_issue_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_issue_emoji_get Get a single emoji reaction on an issue by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_issue_emoji_list, gitlab_issue_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_emoji_list List all emoji reactions on an issue. Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_issue_emoji_get, gitlab_issue_emoji_create, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_get Get a single issue from a project by issue IID. Returns: issue metadata, state, labels, assignees, author, due date, task completion, and web URL. See also: gitlab_issue_list, gitlab_issue_update, gitlab_issue_delete, gitlab_issue_notes_list. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_get_by_id Get a single issue by its global ID. Returns: the issue with state, labels, assignees, author, and web URL. See also: gitlab_issue_get, gitlab_issue_list. **Parameters:** - `issue_id` (integer) (required): The global issue ID (not the project-scoped IID) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_iteration_event_get Get a single iteration event for an issue (Premium/Ultimate). Returns: the event with action, the iteration object, and the acting user. See also: gitlab_issue_iteration_event_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `iteration_event_id` (integer) (required): Iteration event ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_iteration_event_list List iteration events for an issue (Premium/Ultimate). Returns: iteration events with action, the iteration object, the acting user, and pagination metadata. See also: gitlab_issue_iteration_event_get, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_label_event_get Get a single label event for an issue. Returns: the event with action, the label object, and the acting user. See also: gitlab_issue_label_event_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `label_event_id` (integer) (required): Label event ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_label_event_list List label events for an issue. Returns: label events with action, the label object, the acting user, and pagination metadata. See also: gitlab_issue_label_event_get, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_link_create Create a link between two issues (optionally across projects). Returns: the created link with its id, link_type, and source_issue/target_issue objects. See also: gitlab_issue_link_list, gitlab_issue_link_delete, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Source issue IID - `link_type` (string) (required): Link type: relates_to (default), blocks, or is_blocked_by - `project_id` (string) (required): Source project ID or URL-encoded path - `target_issue_iid` (string) (required): Target issue IID - `target_project_id` (string) (required): Target project ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_link_delete Remove an existing issue link by its issue_link_id. Returns: a deletion confirmation. See also: gitlab_issue_link_list, gitlab_issue_link_create, gitlab_issue_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `issue_iid` (integer) (required): Issue IID - `issue_link_id` (integer) (required): Issue link ID to remove - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_issue_link_get Get one issue link by its issue_link_id. Returns: the link's id, link_type, and full source_issue/target_issue objects. See also: gitlab_issue_link_list, gitlab_issue_link_create, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID - `issue_link_id` (integer) (required): Issue link ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_link_list List all issues linked to a source issue. Returns: each linked issue with its link_type, issue_link_id, full author/assignee/milestone objects, labels, and dates. See also: gitlab_issue_link_get, gitlab_issue_link_create, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_list List issues in one project with filtering and pagination. Returns: matching issues with state, labels, assignees, author, and pagination metadata. See also: gitlab_issue_get, gitlab_issue_create, gitlab_search_issues. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (string): Filter by assignee username - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return issues created before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `due_date` (string): Filter by due date (0=no due date, overdue, week, month, next_month_and_previous_two_weeks) - `iids` (array of integers): Filter by issue internal IDs - `in` (string): Fields the search query applies to (title, description, or title,description) - `issue_type` (string): Filter by issue type (issue, incident, test_case, task) - `iteration_id` (integer): Filter by iteration ID - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (e.g. thumbsup, or None/Any) - `not_assignee_id` (integer): Exclude issues assigned to this user ID - `not_assignee_username` (string): Exclude issues assigned to this username - `not_author_id` (integer): Exclude issues authored by this user ID - `not_author_username` (string): Exclude issues authored by this username - `not_in` (string): Fields the negated search query applies to (title, description) - `not_labels` (array of strings): Label names to exclude - `not_milestone` (string): Milestone title to exclude - `not_my_reaction_emoji` (string): Exclude issues you reacted to with this emoji - `order_by` (string): Order by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `state` (string): Filter by state (opened, closed, all) - `updated_after` (string): Return issues updated after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return issues updated before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `with_labels_details` (boolean): Return label objects with full details (id, name, color, description) instead of just names Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_list_all List issues across accessible projects. Returns: visible issues with project context and pagination metadata. See also: gitlab_issue_list, gitlab_issue_list_group, gitlab_search_issues. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (string): Filter by assignee username - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601) - `created_before` (string): Return issues created before date (ISO 8601) - `due_date` (string): Filter by due date (0, overdue, week, month, next_month_and_previous_two_weeks) - `iids` (array of integers): Filter by issue internal IDs - `in` (string): Fields the search query applies to (title, description, or title,description) - `issue_type` (string): Filter by issue type (issue, incident, test_case, task) - `iteration_id` (integer): Filter by iteration ID - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (or None/Any) - `not_assignee_id` (array of integers): Exclude issues assigned to these user IDs - `not_assignee_username` (string): Exclude issues assigned to this username - `not_author_id` (array of integers): Exclude issues authored by these user IDs - `not_author_username` (string): Exclude issues authored by this username - `not_in` (string): Fields the negated search query applies to (title, description) - `not_labels` (array of strings): Label names to exclude - `not_milestone` (string): Milestone title to exclude - `not_my_reaction_emoji` (array of strings): Exclude issues you reacted to with these emoji - `not_search` (string): Exclude issues matching this search text - `order_by` (string): Order by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `state` (string): Filter by state (opened, closed, all) - `updated_after` (string): Return issues updated after date (ISO 8601) - `updated_before` (string): Return issues updated before date (ISO 8601) - `with_labels_details` (boolean): Return label objects with full details instead of just names Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_list_group List issues across a group. Returns: matching issues from projects in the group with pagination metadata. See also: gitlab_issue_list, gitlab_group_get, gitlab_search_issues. **Parameters:** - `assignee_id` (integer): Filter by assignee user ID - `assignee_username` (string): Filter by assignee username - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidential status - `created_after` (string): Return issues created after date (ISO 8601) - `created_before` (string): Return issues created before date (ISO 8601) - `due_date` (string): Filter by due date (0, overdue, week, month, next_month_and_previous_two_weeks) - `group_id` (string) (required): Group ID or URL-encoded path - `iids` (array of integers): Filter by issue internal IDs - `in` (string): Fields the search query applies to (title, description, or title,description) - `issue_type` (string): Filter by issue type (issue, incident, test_case, task) - `iteration_id` (integer): Filter by iteration ID - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by issues you reacted to with this emoji (or None/Any) - `not_assignee_id` (integer): Exclude issues assigned to this user ID - `not_assignee_username` (string): Exclude issues assigned to this username - `not_author_id` (integer): Exclude issues authored by this user ID - `not_author_username` (string): Exclude issues authored by this username - `not_in` (string): Fields the negated search query applies to (title, description) - `not_labels` (array of strings): Label names to exclude - `not_milestone` (string): Milestone title to exclude - `not_my_reaction_emoji` (string): Exclude issues you reacted to with this emoji - `not_search` (string): Exclude issues matching this search text - `order_by` (string): Order by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `state` (string): Filter by state (opened, closed, all) - `updated_after` (string): Return issues updated after date (ISO 8601) - `updated_before` (string): Return issues updated before date (ISO 8601) - `with_labels_details` (boolean): Return label objects with full details instead of just names Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_milestone_event_get Get a single milestone event for an issue. Returns: the event with action, the milestone object, and the acting user. See also: gitlab_issue_milestone_event_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `milestone_event_id` (integer) (required): Milestone event ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_milestone_event_list List milestone events for an issue. Returns: milestone events with action, the milestone object, the acting user, and pagination metadata. See also: gitlab_issue_milestone_event_get, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_move Move an issue to another project. Returns: the issue in its new project. See also: gitlab_issue_get, gitlab_issue_update. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Source project ID or URL-encoded path - `to_project_id` (integer) (required): Target project ID to move issue to Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_mrs_closing List MRs that close this issue on merge. Returns: related merge requests with state, author, and branches. See also: gitlab_issue_get, gitlab_issue_mrs_related. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_mrs_related List MRs related to this issue. Returns: related merge requests with state, author, and branches. See also: gitlab_issue_get, gitlab_issue_mrs_closing. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_note_create Add a comment (note) to an issue. Returns: the created note with id, author, body, timestamps, and resolvable/internal flags. See also: gitlab_issue_note_list, gitlab_issue_get, gitlab_create_issue_discussion. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `created_at` (string): Backdate the note to this RFC 3339 timestamp (e.g. 2026-01-15T10:00:00Z). Requires administrator or project/group owner permissions; ignored otherwise. - `internal` (boolean): Mark note as internal (visible only to project members) - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_note_delete Delete an issue note permanently. Returns: a success confirmation naming the note, issue, and project. See also: gitlab_issue_note_get, gitlab_issue_note_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `issue_iid` (integer) (required): Issue internal ID - `note_id` (integer) (required): ID of the note to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_issue_note_emoji_create Add an emoji reaction to an issue note. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_issue_note_emoji_list, gitlab_issue_note_emoji_delete. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_issue_note_emoji_delete Remove an emoji reaction from an issue note by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_issue_note_emoji_list, gitlab_issue_note_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_issue_note_emoji_get Get a single emoji reaction on an issue note by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_issue_note_emoji_list, gitlab_issue_note_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_note_emoji_list List all emoji reactions on an issue note (comment). Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_issue_note_emoji_get, gitlab_issue_note_emoji_create, gitlab_issue_note_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID) - `note_id` (integer) (required): Note ID - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_note_get Get a single issue note by its ID. Returns: the note with author, body, timestamps, position, and resolvable/internal flags. See also: gitlab_issue_note_list, gitlab_issue_note_update, gitlab_issue_note_delete. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `note_id` (integer) (required): ID of the note to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_note_list List all notes (comments) on an issue. Returns: notes with author, body, system/internal flags, and pagination metadata. See also: gitlab_issue_note_get, gitlab_issue_note_create, gitlab_get_issue_discussion. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Order by field (created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_note_update Update an issue note's body. Returns: the updated note with new body and updated_at timestamp. See also: gitlab_issue_note_get, gitlab_issue_note_list, gitlab_issue_note_delete. **Parameters:** - `body` (string) (required): Updated note body (Markdown supported) - `issue_iid` (integer) (required): Issue internal ID - `note_id` (integer) (required): ID of the note to update - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_participants List an issue's participants. Returns: participating users with username and name. See also: gitlab_issue_get, gitlab_issue_notes_list. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_reorder Reorder an issue within its list. Returns: the updated issue. See also: gitlab_issue_get, gitlab_issue_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `move_after_id` (integer): ID of issue to position after - `move_before_id` (integer): ID of issue to position before - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_spent_time_add Add spent time to an issue. Returns: the updated time tracking stats. See also: gitlab_issue_spent_time_reset, gitlab_issue_time_stats_get. **Parameters:** - `duration` (string) (required): Human-readable duration (e.g. 1h, 30m, 1w2d) - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `summary` (string): Optional summary of work done Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_spent_time_reset Reset an issue's spent time. Returns: the updated time tracking stats. See also: gitlab_issue_spent_time_add, gitlab_issue_time_stats_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_state_event_get Get a single state event for an issue. Returns: the event with the state value and the acting user. See also: gitlab_issue_state_event_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `state_event_id` (integer) (required): State event ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_state_event_list List state events for an issue. Returns: state events with the state value, the acting user, and pagination metadata. See also: gitlab_issue_state_event_get, gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_subscribe Subscribe to an issue's notifications. Returns: the issue with the updated subscription state. See also: gitlab_issue_get, gitlab_issue_unsubscribe. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_time_estimate_reset Clear an issue's time estimate. Returns: the updated time tracking stats. See also: gitlab_issue_time_estimate_set, gitlab_issue_time_stats_get. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_time_estimate_set Set an issue's time estimate. Returns: the updated time tracking stats. See also: gitlab_issue_time_estimate_reset, gitlab_issue_time_stats_get. **Parameters:** - `duration` (string) (required): Human-readable duration (e.g. 3h30m, 1w2d) - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_time_stats_get Read an issue's time tracking totals. Returns: estimate and spent time in seconds and human-readable form. See also: gitlab_issue_time_estimate_set, gitlab_issue_spent_time_add. **Parameters:** - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_unsubscribe Unsubscribe from an issue's notifications. Returns: the issue with the updated subscription state. See also: gitlab_issue_get, gitlab_issue_subscribe. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_update Update a GitLab issue. Supports changing title, description, state (close/reopen), assignees, labels (replace, add, or remove), milestone, due date, confidential flag, issue_type, weight, and discussion_locked. Only specified fields are modified. **Parameters:** - `add_labels` (array of strings): Label names to add without removing existing - `assignee_id` (integer): Single user ID to assign (use assignee_ids for multiple) - `assignee_ids` (array of integers): New assignee user IDs - `confidential` (boolean): Update confidential flag - `description` (string): New description (Markdown supported) - `discussion_locked` (boolean): Lock discussions on this issue - `due_date` (string): New due date in YYYY-MM-DD format - `epic_id` (integer): Epic ID to associate - `issue_iid` (integer) (required): Issue IID (project-scoped internal ID, not 'issue_id') - `issue_type` (string): Issue type (issue, incident, test_case, task) - `labels` (array of strings): Label names to replace all existing - `milestone_id` (integer): New milestone ID (0 to unset; omit to leave unchanged) - `project_id` (string) (required): Project ID or URL-encoded path - `remove_labels` (array of strings): Label names to remove - `state_event` (string): State transition; set to close or reopen when changing issue state. - `title` (string): New title - `updated_at` (string): Update timestamp override (ISO 8601/RFC 3339, requires admin permissions) - `weight` (integer): Issue weight, 0 or higher Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_issue_weight_event_list List weight events for an issue (Premium/Ultimate). Returns: weight events with the weight value, the acting user, and pagination metadata. See also: gitlab_issue_get. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### job (17 tools) #### gitlab_job_artifacts Download the full artifact archive for a CI job (base64-encoded, truncated at 1MB). Returns: archive size, content, and truncation flag. See also: gitlab_job_download_single_artifact, gitlab_job_keep_artifacts, gitlab_job_get. **Parameters:** - `job_id` (integer) (required): Job ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_cancel Cancel a CI job. Set force:true to cancel jobs already in a non-cancellable state (requires GitLab v17.2+). Returns: updated job state. See also: gitlab_job_get, gitlab_job_retry. **Parameters:** - `force` (boolean): Force cancel even if the job is already in a non-cancellable state - `job_id` (integer) (required): Job ID to cancel - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_job_delete_artifacts Delete the artifacts for one CI job (destructive). Returns: a success confirmation. See also: gitlab_job_artifacts, gitlab_job_get, gitlab_job_delete_project_artifacts. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `job_id` (integer) (required): Job ID to delete artifacts from - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_job_delete_project_artifacts Delete every eligible artifact across a project (destructive, irreversible). Returns: a success confirmation. See also: gitlab_job_delete_artifacts, gitlab_job_list_project, gitlab_job_artifacts. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_job_download_artifacts Download the latest successful artifacts archive for a ref and job name. Returns: archive size, content, and truncation flag. See also: gitlab_job_artifacts, gitlab_job_download_single_artifact, gitlab_job_get. **Parameters:** - `job` (string) (required): Job name to download artifacts from - `project_id` (string) (required): Project ID or URL-encoded path - `ref_name` (string) (required): Branch or tag name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_download_single_artifact Download one artifact file from a job by job_id and artifact_path. Returns: file size, raw content, and truncation flag. See also: gitlab_job_artifacts, gitlab_job_download_artifacts, gitlab_job_get. **Parameters:** - `artifact_path` (string) (required): Path to the artifact file within the archive - `job_id` (integer) (required): Job ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_download_single_artifact_by_ref Download one artifact file from the latest successful job on a ref by name and path. Returns: file size, raw content, and truncation flag. See also: gitlab_job_download_artifacts, gitlab_job_download_single_artifact, gitlab_job_get. **Parameters:** - `artifact_path` (string) (required): Path to the artifact file within the archive - `job` (string) (required): Job name - `project_id` (string) (required): Project ID or URL-encoded path - `ref_name` (string) (required): Branch or tag name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_erase Erase a finished CI job's trace log and artifacts (destructive). Returns: updated job state. See also: gitlab_job_get, gitlab_job_trace, gitlab_job_artifacts. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `job_id` (integer) (required): Job ID to act on - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_job_get Get one CI job. Returns: status, stage, ref, embedded commit/pipeline/project/runner/user objects, timing fields, and failure metadata. See also: gitlab_job_trace, gitlab_job_cancel, gitlab_job_retry. **Parameters:** - `job_id` (integer) (required): Job ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_keep_artifacts Keep a CI job's artifacts by clearing their expiration. Returns: updated job state. See also: gitlab_job_artifacts, gitlab_job_get, gitlab_job_download_artifacts. **Parameters:** - `job_id` (integer) (required): Job ID to act on - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_job_list List CI jobs for one pipeline with status filters, keyset pagination, and ordering. Returns: job summaries with status, stage, ref, and pipeline association. See also: gitlab_job_get, gitlab_job_trace, gitlab_pipeline_get. **Parameters:** - `include_retried` (boolean): Include retried jobs in the response - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `pipeline_id` (integer) (required): Pipeline ID to list jobs for - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (array of strings): Filter by job status: created, pending, running, failed, success, canceled, skipped, waiting_for_resource, manual - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_list_bridges List CI bridge (trigger) jobs for one pipeline with keyset pagination. Returns: bridge summaries with status and downstream pipeline references. See also: gitlab_job_list, gitlab_pipeline_get, gitlab_job_get. **Parameters:** - `include_retried` (boolean): Include retried bridge jobs in the response - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `pipeline_id` (integer) (required): Pipeline ID to list bridge jobs for - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (array of strings): Filter by job status: created, pending, running, failed, success, canceled, skipped, manual - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_list_project List CI jobs in one project with filters, keyset pagination, and ordering. Returns: job summaries, status, stage, ref, and pipeline associations. See also: gitlab_job_get, gitlab_job_trace, gitlab_pipeline_get. **Parameters:** - `include_retried` (boolean): Include retried jobs in the response - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (array of strings): Filter by job status: created, pending, running, failed, success, canceled, skipped, waiting_for_resource, manual - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_play Run a manual CI job with optional variable overrides. Returns: the started job state. See also: gitlab_job_get, gitlab_job_retry, gitlab_job_trace. **Parameters:** - `job_id` (integer) (required): Job ID to run - `job_variables_attributes` (array of objects): Job variables to inject into the manual job run - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_job_retry Retry a failed or canceled CI job. Returns: the newly created job state. See also: gitlab_job_get, gitlab_job_trace, gitlab_job_cancel. **Parameters:** - `job_id` (integer) (required): Job ID to act on - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_job_trace Get CI job trace output. Returns: text log with truncation metadata when logs exceed limits. See also: gitlab_job_get, gitlab_job_retry, gitlab_job_cancel. **Parameters:** - `job_id` (integer) (required): Job ID to get trace log for - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_job_wait Wait for a CI job to finish, polling until terminal state or timeout. Returns: final job snapshot, wait duration, poll count, and timed-out flag. See also: gitlab_job_get, gitlab_job_trace, gitlab_job_retry. **Parameters:** - `fail_on_error` (boolean): Return isError when job ends in failed/canceled status (default true) - `interval_seconds` (integer): Polling interval in seconds (5-60, default 10) - `job_id` (integer) (required): Job ID to wait for - `project_id` (string) (required): Project ID or URL-encoded path - `timeout_seconds` (integer): Maximum wait time in seconds (1-3600, default 300) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### label (8 tools) #### gitlab_label_create Create a project label with required name and hex color, plus optional description, priority, and archived state. Returns: the created label (id, name, color, text_color, description, counts, priority, subscribed, is_project_label, archived). See also: gitlab_label_get, gitlab_label_update, gitlab_issue_list. **Parameters:** - `archived` (boolean): Whether to create the label in archived state - `color` (string) (required): Label color in hex format (e.g. #FF0000) - `description` (string): Label description - `name` (string) (required): Label name - `priority` (integer): Label priority (lower is higher priority, 0 means no priority) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_label_delete Delete a project label by ID or name. Destructive: the label is removed from the project and unassigned from issues and merge requests. Returns: a deletion confirmation. See also: gitlab_label_list, gitlab_label_get, gitlab_label_create. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `label_id` (string) (required): Label ID or name - `name` (string): Label name to delete (alternative to label_id for selecting the label by name) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_label_get Get a single project label by ID or name. Returns: id, name, color, text_color, description, open/closed issue counts, open MR count, priority, subscribed, is_project_label, and archived. See also: gitlab_label_list, gitlab_label_update, gitlab_label_delete. **Parameters:** - `label_id` (string) (required): Label ID or name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_label_list List labels in a project with optional search, counts, ancestor-group inclusion, ordering, and offset or keyset pagination. Returns: id, name, color, text_color, description, open/closed issue counts, open MR count, priority, subscribed, is_project_label, archived, and pagination metadata. See also: gitlab_label_get, gitlab_label_create, gitlab_issue_list. **Parameters:** - `include_ancestor_groups` (boolean): Include labels from ancestor groups - `order_by` (string): Column to order results by (e.g. name, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Filter labels by keyword search - `sort` (string): Sort direction (asc, desc) - `with_counts` (boolean): Include issue and merge request counts Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_label_promote Promote a project label to a group label, sharing it across the group's projects. Returns: no content on success; requires group-level Maintainer or higher access. See also: gitlab_label_get, gitlab_label_list, gitlab_group_label_list. **Parameters:** - `label_id` (string) (required): Label ID or name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_label_subscribe Subscribe the authenticated user to a project label for notifications. Returns: the label with subscribed=true (already-subscribed yields 304 Not Modified). See also: gitlab_label_unsubscribe, gitlab_label_get, gitlab_label_list. **Parameters:** - `label_id` (string) (required): Label ID or name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_label_unsubscribe Unsubscribe the authenticated user from a project label. Returns: no content on success (not-subscribed yields 304 Not Modified). See also: gitlab_label_subscribe, gitlab_label_get, gitlab_label_list. **Parameters:** - `label_id` (string) (required): Label ID or name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_label_update Update an existing project label (new_name, color, description, priority, archived). Returns: the updated label (id, name, color, text_color, description, counts, priority, subscribed, is_project_label, archived). See also: gitlab_label_get, gitlab_label_list, gitlab_label_delete. **Parameters:** - `archived` (boolean): Set true to archive, false to unarchive - `color` (string): New label color in hex format - `description` (string): New label description - `label_id` (string) (required): Label ID or name - `name` (string): Label name to update (alternative to label_id for selecting the label by name) - `new_name` (string): New label name - `priority` (integer): New label priority (0 to remove) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### list (85 tools) #### gitlab_list_alert_metric_images List alert metric images. Returns: an array of metric images with id, filename, url, and url_text. See also: gitlab_upload_alert_metric_image, gitlab_update_alert_metric_image. **Parameters:** - `alert_iid` (integer) (required): Alert IID - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_applications List instance OAuth applications. Returns: an array of applications with id, application_id, name, redirect URIs, and scopes. See also: gitlab_create_application, gitlab_delete_application. **Parameters:** - `order_by` (string): For keyset pagination: name of the column by which to order results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): For keyset pagination: sort order (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_attestations List SLSA build provenance attestations for a project artifact by subject digest (Ultimate). Returns: each attestation's id, iid, project_id, build_id, status, predicate_kind, predicate_type, subject_digest, download_url, and created/updated/expire timestamps. See also: gitlab_download_attestation, gitlab_list_packages, gitlab_get_project. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `subject_digest` (string) (required): Subject digest (hash) to filter attestations Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_billable_group_members List the billable members of a group (Premium/Ultimate). Returns: each member's id, username, name, state, email, membership type, removable flag, is_last_owner, last activity, and last login, plus pagination. See also: gitlab_list_billable_member_memberships, gitlab_remove_billable_group_member, gitlab_group_members_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order billable members by (e.g. id, name, username, last_activity_on) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter billable members by name or username - `sort` (string): Sort order (e.g. name_asc, name_desc, last_activity_on_asc, last_activity_on_desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_billable_member_memberships List the memberships of a billable group member (Premium/Ultimate). Returns: each membership's source id, source full name, source members URL, access level (numeric + string), created/expiry dates, plus pagination. See also: gitlab_list_billable_group_members, gitlab_remove_billable_group_member, gitlab_group_members_list. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order memberships by (e.g. id, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction: asc or desc - `user_id` (integer) (required): User ID of the billable member Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_branch_rules List a project's aggregated branch protection rules by full project path. Returns: each branch rule with its matched pattern, default and protected flags, matching branch count, branch protection settings (allow force push, code-owner approval required), approval rules, external status checks, and keyset pagination metadata. See also: gitlab_protected_branches_list, gitlab_protected_branch_get, gitlab_get_project. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `first` (integer): Number of items to return (default 20, max 100) - `last` (integer): Number of items from the end (backward pagination) - `project_path` (string) (required): required,Project full path (e.g. my-group/my-project) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_broadcast_messages List instance broadcast messages. Returns: an array of broadcast messages with id, message, theme, target, starts_at, and ends_at. See also: gitlab_get_broadcast_message, gitlab_create_broadcast_message. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_bulk_import_entities List bulk import entities. Returns: an array of migrated entities with id, source_full_path, entity_type, and status. See also: gitlab_get_bulk_import_entity, gitlab_list_bulk_import_entity_failures. **Parameters:** - `bulk_import_id` (integer): Bulk import ID. If omitted, returns entities across all imports. - `order_by` (string): Column to order results by (e.g. created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) - `status` (string): Filter by entity status: created, started, finished, timeout, failed, canceled Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_bulk_import_entity_failures List bulk import entity failures. Returns: an array of failure records with relation, exception, and correlation id. See also: gitlab_get_bulk_import_entity, gitlab_list_bulk_import_entities. **Parameters:** - `bulk_import_id` (integer) (required): Bulk import ID - `entity_id` (integer) (required): Entity ID within the bulk import Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_bulk_imports List bulk imports. Returns: an array of bulk imports with id, status, source_type, and timestamps. See also: gitlab_start_bulk_import, gitlab_get_bulk_import. **Parameters:** - `order_by` (string): Column to order results by (e.g. created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) - `status` (string): Filter by status: created, started, finished, timeout, failed, canceled Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_catalog_resources List published CI/CD Catalog resources (component projects) with optional search, scope, and sort. Returns: catalog resources with name, full path, description, latest version, star and fork counts, open issue and MR counts, web URL, and keyset pagination metadata. See also: gitlab_get_catalog_resource, gitlab_ci_lint, gitlab_create_pipeline. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `first` (integer): Number of items to return (default 20, max 100) - `last` (integer): Number of items from the end (backward pagination) - `scope` (string): Filter scope: ALL (default) or NAMESPACED - `search` (string): Search resources by name or description - `sort` (string): Sort order: NAME_ASC (default), NAME_DESC, LATEST_RELEASED_AT_ASC, LATEST_RELEASED_AT_DESC, STAR_COUNT_ASC, STAR_COUNT_DESC Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_ci_yml_templates List the GitLab-provided CI/CD pipeline YAML templates. Returns: available templates with key and name, plus pagination metadata. See also: gitlab_get_ci_yml_template, gitlab_ci_lint, gitlab_file_create. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, name, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_cluster_agent_tokens List cluster agent tokens. Returns: an array of agent tokens with id, name, and status. See also: gitlab_get_cluster_agent_token, gitlab_create_cluster_agent_token. **Parameters:** - `agent_id` (integer) (required): Agent ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only used with pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_cluster_agents List project cluster agents. Returns: an array of agents with id, name, and created_at. See also: gitlab_get_cluster_agent, gitlab_register_cluster_agent. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only used with pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_commit_discussions List discussion threads on a commit with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state, diff position) and pagination metadata. See also: gitlab_get_commit_discussion, gitlab_create_commit_discussion, gitlab_commit_get. **Parameters:** - `commit_sha` (string) (required): Commit SHA - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_custom_attributes List custom attributes for a resource. Returns: an array of key/value custom attributes. See also: gitlab_get_custom_attribute, gitlab_set_custom_attribute. **Parameters:** - `resource_id` (integer) (required): ID of the resource - `resource_type` (string) (required): Resource type: user, group, or project Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_custom_emoji List custom emoji for a GitLab group via GraphQL API. Returns: paginated list with ID, name, URL, and created date. See also: gitlab_create_custom_emoji. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `first` (integer): Number of items to return (default 20, max 100) - `group_path` (string) (required): required,Group full path (e.g. my-group) - `last` (integer): Number of items from the end (backward pagination) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_deployment_merge_requests List the merge requests associated with a deployment, with merge-request filtering (state, approval, author, assignee, draft, created date) and offset or keyset pagination. Returns: matching merge requests with full metadata (author, assignees, reviewers, labels, milestone, pipelines, time stats, timestamps) and pagination metadata. See also: gitlab_mr_get, gitlab_mr_list, gitlab_deployment_list. **Parameters:** - `approved` (string): Filter by approval status: yes or no - `approved_by_ids` (array of values): Filter by MRs approved by all listed user IDs. Accepts user IDs, or exactly one of "Any" (approved by someone) or "None" (unapproved) - `approved_by_usernames` (array of strings): Filter by MRs approved by all listed usernames - `approver_ids` (array of values): Filter by MRs with all listed users as eligible approvers. Accepts user IDs, or exactly one of "Any" (has approvers) or "None" (has none) - `assignee_id` (integer): Filter by assignee user ID - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `created_after` (string): Return MRs created after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return MRs created before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) - `deployment_id` (integer) (required): Deployment ID - `draft` (boolean): Filter by draft status (true=only drafts, false=only non-drafts) - `in` (string): Modify the scope of the search attribute (title, description, or title,description) - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by MRs the caller reacted to with this emoji (e.g. thumbsup) - `non_archived` (boolean): Return merge requests from non-archived projects only. Default is true - `not_author_username` (string): Exclude MRs authored by this username - `not_labels` (array of strings): Label names to exclude - `order_by` (string): Order by: created_at or updated_at - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `reviewer_id` (integer): Filter by reviewer user ID - `reviewer_username` (string): Filter by reviewer username - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort order: asc or desc - `source_branch` (string): Filter by source branch name - `state` (string): Filter by state: opened, closed, merged, all - `target_branch` (string): Filter by target branch name - `updated_after` (string): Return MRs updated after date (ISO 8601, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return MRs updated before date (ISO 8601, e.g. 2025-12-31T23:59:59Z) - `view` (string): Set to 'simple' to return only basic MR fields - `wip` (string): Filter by draft/WIP status: 'yes' for draft MRs, 'no' for non-draft - `with_labels_details` (boolean): Include full label details (color, description) in the response - `with_merge_status_recheck` (boolean): Asynchronously recalculate each MR's merge_status before returning Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_dockerfile_templates List available Dockerfile templates with pagination and sorting. Returns: matching templates with key and name plus pagination metadata. See also: gitlab_get_dockerfile_template, gitlab_list_gitignore_templates. **Parameters:** - `order_by` (string): Order results by a field supported by the templates endpoint (e.g. key, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_emails List the current user's email addresses. Returns: email entries with ID, address, and confirmation time. See also: gitlab_user_current, gitlab_modify_user. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_emails_for_user List all email addresses registered to a specific user account. Returns: each email's ID, address, and confirmation timestamp, with offset/keyset pagination support. See also: gitlab_get_email, gitlab_add_email_for_user, gitlab_delete_email_for_user, gitlab_get_user. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for ordered results: asc or desc - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_enterprise_users List enterprise users for a top-level group with filtering and pagination. Returns: enterprise users with full profile fields (identities, SCIM identities, custom attributes, sign-in metadata, license seat usage) and pagination metadata. See also: gitlab_get_enterprise_user, gitlab_disable_2fa_enterprise_user, gitlab_delete_enterprise_user. **Parameters:** - `active` (boolean): Filter for active users only - `blocked` (boolean): Filter for blocked users only - `created_after` (string): Filter users created after this date (ISO 8601) - `created_before` (string): Filter users created before this date (ISO 8601) - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search by name or username or email - `sort` (string): Sort order for keyset pagination: asc or desc - `two_factor` (string): Filter by 2FA status: enabled or disabled - `username` (string): Filter by exact username Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_epic_discussions List discussion threads on a group epic with cursor-based keyset pagination. Returns: discussion threads with their notes (id, author username, body, system flag, timestamps) and pagination metadata. See also: gitlab_get_epic_discussion, gitlab_create_epic_discussion, gitlab_epic_get, gitlab_epic_note_list. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `epic_iid` (integer) (required): Epic IID within the group - `first` (integer): Number of items to return (default 20, max 100) - `full_path` (string) (required): Full path of the group (e.g. my-group or my-group/sub-group) - `last` (integer): Number of items from the end (backward pagination) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_error_tracking_client_keys List error-tracking client keys. Returns: an array of client keys with id, public_key, and sentry_dsn. See also: gitlab_create_error_tracking_client_key, gitlab_get_error_tracking_settings. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_feature_definitions List feature flag definitions. Returns: an array of definitions with name, type, default_enabled, group, and milestone. See also: gitlab_list_features, gitlab_set_feature_flag. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_features List instance feature flags. Returns: an array of features with name, state, and gates (boolean, actors, groups, percentages). See also: gitlab_list_feature_definitions, gitlab_set_feature_flag. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_freeze_periods List deploy freeze periods for a GitLab project. **Parameters:** - `order_by` (string): Column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_geo_sites List all Geo sites. Returns: each site with id, name, url, primary/enabled flags, capacities, and pagination metadata. See also: gitlab_get_geo_site, gitlab_list_status_all_geo_sites, gitlab_create_geo_site. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_gitignore_templates List available .gitignore templates with order_by, sort, and offset or keyset pagination. Returns: each template's key and name, plus pagination metadata. See also: gitlab_get_gitignore_template, gitlab_file_create. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, name, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_gpg_keys List the authenticated user's GPG keys. Returns: each key's ID, armored public key, and creation timestamp. See also: gitlab_get_gpg_key, gitlab_add_gpg_key, gitlab_delete_gpg_key, gitlab_list_gpg_keys_for_user. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_gpg_keys_for_user List a specific user's GPG keys. Returns: each key's ID, armored public key, and creation timestamp. See also: gitlab_get_gpg_key_for_user, gitlab_add_gpg_key_for_user, gitlab_delete_gpg_key_for_user, gitlab_get_user. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_audit_events List group-level audit events for a group. Returns: audit events with author, entity, event name/type, details, timestamps, and pagination metadata. See also: gitlab_get_group_audit_event, gitlab_list_project_audit_events, gitlab_list_instance_audit_events. **Parameters:** - `created_after` (string): Return events created after this date (ISO 8601 YYYY-MM-DD) - `created_before` (string): Return events created before this date (ISO 8601 YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_badges List badges for a group, including inherited group badges. Returns: badges (id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind) plus pagination metadata. See also: gitlab_get_group_badge, gitlab_add_group_badge. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `name` (string): Filter by badge name - `order_by` (string): Column to order results by for keyset pagination (e.g. id, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_epic_label_events List label events for a group epic (Premium/Ultimate). Returns: label events with action, the label object, the acting user, and pagination metadata. See also: gitlab_get_group_epic_label_event, gitlab_epic_get. **Parameters:** - `epic_iid` (integer) (required): Epic internal ID (IID) within the group - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_integrations List all active integrations configured on a group. Requires Owner role (some integrations require GitLab Premium/Ultimate). **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_iterations List a group's iterations (sprints), optionally filtered by state, search term, or ancestor groups. Returns: iterations with sequence, title, description, state, start and due dates, web URL, and pagination metadata. See also: gitlab_group_get, gitlab_issue_list_group, gitlab_list_project_iterations. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `include_ancestors` (boolean): Include ancestor iterations - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Search by title - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `state` (string): Filter by state: opened, upcoming, current, closed, all Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_markdown_uploads List all Markdown uploads in a group. Returns: each upload's id, filename, size, creation time, and uploader (id, username, name, state, avatar, web URL), plus pagination metadata. See also: gitlab_delete_group_markdown_upload_by_id, gitlab_delete_group_markdown_upload_by_secret, gitlab_group_get. **Parameters:** - `group_id` (string) (required): The ID or URL-encoded path of the group - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_member_roles List group-level custom member roles. Returns: each role with id, name, description, base_access_level, and its enabled permission flags. See also: gitlab_list_instance_member_roles, gitlab_create_group_member_role, gitlab_delete_group_member_role. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_packages List packages across a group and its descendant projects with optional filters and ordering. Returns: matching packages with type, status, owning project id/path, pipeline metadata, tags, _links, and pagination metadata. See also: gitlab_package_list, gitlab_package_file_list, gitlab_package_delete. **Parameters:** - `exclude_subgroups` (boolean): Exclude packages from subgroups (only return packages from the group's direct projects) - `group_id` (string) (required): Group ID or URL-encoded path - `include_versionless` (boolean): Include versionless packages - `order_by` (string): Order by group package registry field: created_at, name, version, type, or project_path. - `package_name` (string): Filter by package name - `package_type` (string): Filter by package type: composer, conan, generic, golang, helm, maven, npm, nuget, pypi, or terraform_module. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction: asc or desc - `status` (string): Filter by status: default, hidden, processing, error, pending_destruction, or deprecated. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_personal_access_tokens List a group's enterprise personal access tokens. Returns: tokens with name, scopes, owner user ID, active/revoked flags, created and last-used dates, expiry, and pagination metadata. See also: gitlab_revoke_group_personal_access_token, gitlab_list_group_ssh_keys, gitlab_group_get. **Parameters:** - `created_after` (string): Return tokens created on or after this date (YYYY-MM-DD) - `created_before` (string): Return tokens created on or before this date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `last_used_after` (string): Return tokens last used on or after this date (YYYY-MM-DD) - `last_used_before` (string): Return tokens last used on or before this date (YYYY-MM-DD) - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `revoked` (boolean): Filter by revoked status - `search` (string): Filter tokens by name - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `state` (string): Filter by state (active, inactive) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_relations_export_status List the status of a group's relations export, optionally filtered by relation. Returns: per-relation export status, error detail, batched flag, batch count, per-batch progress, and pagination metadata. See also: gitlab_schedule_group_relations_export, gitlab_group_get. **Parameters:** - `group_id` (string) (required): The ID or URL-encoded path of the group - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `relation` (string): Filter by relation type (for example labels, milestones, badges) - `sort` (string): Sort order for results: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_scim_identities List a top-level group's SCIM identities provisioned through SAML SSO SCIM. Returns: each identity with external_uid, user_id, and active status. See also: gitlab_get_group_scim_identity, gitlab_update_group_scim_identity, gitlab_delete_group_scim_identity. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_ssh_certificates List the SSH CA certificates registered on a group. Returns: each certificate's id, title, public key, and creation timestamp, with offset/keyset pagination. See also: gitlab_create_group_ssh_certificate, gitlab_delete_group_ssh_certificate, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_group_ssh_keys List a group's enterprise SSH keys. Returns: keys with title, owner user ID, usage type, created/expiry/last-used dates, and pagination metadata. See also: gitlab_delete_group_ssh_key, gitlab_list_group_personal_access_tokens, gitlab_group_get. **Parameters:** - `created_after` (string): Return keys created on or after this date (YYYY-MM-DD) - `created_before` (string): Return keys created on or before this date (YYYY-MM-DD) - `expires_after` (string): Return keys expiring on or after this date (YYYY-MM-DD) - `expires_before` (string): Return keys expiring on or before this date (YYYY-MM-DD) - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_impersonation_tokens List all impersonation tokens for a user. Returns: each token's id, name, active flag, scopes, revoked flag, created_at, expires_at, and last_used_at. See also: gitlab_get_impersonation_token, gitlab_create_impersonation_token, gitlab_revoke_impersonation_token. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `state` (string): Filter by state: all/active/inactive - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_instance_audit_events List instance-level audit events (administrator only). Returns: audit events with author, entity, event name/type, details, timestamps, and pagination metadata. See also: gitlab_get_instance_audit_event, gitlab_list_group_audit_events, gitlab_list_project_audit_events. **Parameters:** - `created_after` (string): Return events created after this date (ISO 8601 YYYY-MM-DD) - `created_before` (string): Return events created before this date (ISO 8601 YYYY-MM-DD) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_instance_member_roles List instance-level custom member roles. Returns: each role with id, name, description, base_access_level, and its enabled permission flags. See also: gitlab_create_instance_member_role, gitlab_delete_instance_member_role, gitlab_list_group_member_roles. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_integrations List all integrations (services) configured for a project, including their active status. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_issue_discussions List discussion threads on an issue with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state) and pagination metadata. See also: gitlab_get_issue_discussion, gitlab_create_issue_discussion, gitlab_issue_get, gitlab_issue_note_list. **Parameters:** - `issue_iid` (integer) (required): Issue internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_job_token_group_allowlist List groups on a project's CI/CD job token allowlist. Returns: allowlisted groups with id, name, full path, and web URL plus pagination metadata. See also: gitlab_add_group_job_token_allowlist, gitlab_remove_group_job_token_allowlist, gitlab_get_job_token_access_settings. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only applies when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only applies when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_job_token_inbound_allowlist List projects on a project's CI/CD job token inbound allowlist. Returns: allowlisted projects with id, name, path, and web URL plus pagination metadata. See also: gitlab_add_project_job_token_allowlist, gitlab_remove_project_job_token_allowlist, gitlab_get_job_token_access_settings. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only applies when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only applies when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_license_templates List available license templates with an optional popular filter, order_by/sort, and offset or keyset pagination. Returns: each template's key, name, nickname, featured flag, source/HTML URLs, description, conditions, permissions, limitations, and content, with pagination metadata. See also: gitlab_get_license_template, gitlab_create_file. **Parameters:** - `order_by` (string): Column by which to order keyset-paginated results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `popular` (boolean): Filter by popular licenses - `sort` (string): Sort direction for keyset-paginated results (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_merge_request_in_merge_train List the merge requests on a merge train for a target branch. Returns: merge train entries with the merge request, user, pipeline, status, duration, and pagination metadata. See also: gitlab_list_project_merge_trains, gitlab_get_merge_request_on_merge_train, gitlab_add_merge_request_to_merge_train. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Filter by scope: active, complete - `sort` (string): Sort order: asc or desc - `target_branch` (string) (required): Target branch name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_mr_context_commits List the context commits pinned to a merge request for review. Returns: commit summaries (full SHA, short SHA, title, author name/email, created date). See also: gitlab_mr_get, gitlab_create_mr_context_commits, gitlab_delete_mr_context_commits. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_package_protection_rules List package protection rules for a project. Returns: each rule's id, project id, package name pattern, package type, and minimum push/delete access levels, with pagination metadata. For container image protection use gitlab_registry_protection_list. See also: gitlab_create_package_protection_rule, gitlab_update_package_protection_rule. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_aliases List every project alias the authenticated administrator can see. Returns: each alias with id, project_id, and name (the full set; no pagination). See also: gitlab_get_project_alias, gitlab_create_project_alias, gitlab_delete_project_alias. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_audit_events List project-level audit events for a project. Returns: audit events with author, entity, event name/type, details, timestamps, and pagination metadata. See also: gitlab_get_project_audit_event, gitlab_list_group_audit_events, gitlab_list_instance_audit_events. **Parameters:** - `created_after` (string): Return events created after this date (ISO 8601 YYYY-MM-DD) - `created_before` (string): Return events created before this date (ISO 8601 YYYY-MM-DD) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_badges List badges for a project, including inherited group badges. Returns: badges (id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind) plus pagination metadata. See also: gitlab_get_project_badge, gitlab_add_project_badge. **Parameters:** - `name` (string): Filter by badge name - `order_by` (string): Column to order results by for keyset pagination (e.g. id, name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_dependencies List dependencies for a GitLab project. Supports filtering by package manager. Returns: paginated list with name, version, package manager, file path, vulnerabilities, and licenses. See also: gitlab_create_dependency_list_export, gitlab_list_vulnerabilities. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `package_manager` (string): Filter by package manager (bundler, composer, conan, go, gradle, maven, npm, nuget, pip, pipenv, pnpm, yarn, sbt, setuptools) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset-paginated results: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_external_status_checks List a project's external status check services. Returns: each check with id, name, external_url, hmac, protected branches, and pagination metadata. See also: gitlab_create_project_external_status_check, gitlab_update_project_external_status_check, gitlab_delete_project_external_status_check, gitlab_list_project_mr_external_status_checks. **Parameters:** - `order_by` (string): Column to order by for keyset pagination (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_iterations List iterations (sprints) for a project, optionally including ancestor-group iterations. Returns: iterations with id, iid, sequence, group_id, title, description, state, start/due dates, timestamps, web URL, and pagination metadata. See also: gitlab_list_group_iterations, gitlab_issue_list, gitlab_milestone_list. **Parameters:** - `include_ancestors` (boolean): Include ancestor iterations - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search by title - `state` (string): Filter by state: opened, upcoming, current, closed, all Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_merge_trains List all merge trains in a project. Returns: merge train entries with the merge request, user, pipeline, target branch, status, duration, and pagination metadata. See also: gitlab_list_merge_request_in_merge_train, gitlab_get_merge_request_on_merge_train, gitlab_add_merge_request_to_merge_train. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Filter by scope: active, complete - `sort` (string): Sort order: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_mirrors List a project's push (remote) mirrors. Returns: each mirror with id, enabled state, redacted URL, last-update status, and pagination metadata. See also: gitlab_get_project_mirror, gitlab_add_project_mirror, gitlab_project_pull_mirror_get. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only applies when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only applies when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_mr_external_status_checks List the external status checks for a merge request and their status. Returns: each check with id, name, external_url, status, and pagination metadata. See also: gitlab_list_project_external_status_checks, gitlab_set_project_mr_external_status_check_status, gitlab_retry_failed_external_status_check_for_project_mr. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): Column to order by for keyset pagination (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_scan_profile_statuses List the security scan profile statuses for a GitLab project via GraphQL. Requires Ultimate. Returns: per-scan-type profile status (NOT_CONFIGURED, PENDING, ACTIVE, WARNING, FAILED, or STALE). See also: gitlab_attach_security_scan_profile, gitlab_detach_security_scan_profile, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#project-scanprofilestatuses **Parameters:** - `project_full_path` (string) (required): Full project path (namespace/project); numeric project IDs are not accepted by the GraphQL project(fullPath:) field Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_status_checks List a project's external status check services (deprecated endpoint). Returns: each check with id, name, external_url, hmac, protected branches, and pagination metadata. See also: gitlab_list_project_external_status_checks, gitlab_create_project_external_status_check, gitlab_list_project_mr_external_status_checks. **Parameters:** - `order_by` (string): Column to order by for keyset pagination (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_project_templates List project templates of a given template_type with optional id/type filters, order_by/sort, and offset or keyset pagination. Returns: each template's key, name, nickname, popularity, and source/HTML URLs. See also: gitlab_get_project_template, gitlab_create_project. **Parameters:** - `id` (integer): Filter to a single template by numeric id (maps to gl.ListProjectTemplatesOptions.ID) - `order_by` (string): Column by which to order keyset-paginated results - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset-paginated results (asc, desc) - `template_type` (string) (required): Template family in the request path: dockerfiles, gitignores, gitlab_ci_ymls, licenses, issues, merge_requests - `type` (string): Optional secondary template type filter passed as the 'type' query parameter (maps to gl.ListProjectTemplatesOptions.Type) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_repository_submodules List the Git submodules defined in a repository's .gitmodules. Returns: each submodule's name, path, remote url, resolved_project, and pinned commit_sha, plus a count. See also: gitlab_read_repository_submodule_file, gitlab_update_repository_submodule, gitlab_repository_tree. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch name, tag, or commit SHA (defaults to default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_resource_group_upcoming_jobs List the upcoming CI jobs queued for one resource group by key. Returns: each pending job's ID, name, status, and stage, ordered as they will run under the resource group's process mode. See also: gitlab_get_resource_group, gitlab_list_resource_groups, gitlab_list_resource_group_upcoming_jobs. **Parameters:** - `key` (string) (required): Resource group key - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_resource_groups List the CI resource groups configured for a project. Returns: each resource group's ID, key, and process mode that controls how jobs sharing the group are serialized to limit pipeline concurrency. See also: gitlab_get_resource_group, gitlab_edit_resource_group, gitlab_list_resource_group_upcoming_jobs. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_secure_files List project secure files. Returns: an array of secure files with id, name, checksum, and created_at. See also: gitlab_show_secure_file, gitlab_create_secure_file. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_security_findings List a pipeline's security report findings with severity, confidence, scanner, and report-type filters plus keyset pagination. Returns: matching findings with UUID, name, severity, confidence, report type, scanner, identifiers (CVE, CWE, OWASP), code location, state, evidence, and linked vulnerability state. See also: gitlab_list_vulnerabilities, gitlab_pipeline_security_summary, gitlab_vulnerability_severity_count. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `confidence` (array of strings): Filter by confidence: CONFIRMED, MEDIUM, LOW - `first` (integer): Number of items to return (default 20, max 100) - `last` (integer): Number of items from the end (backward pagination) - `pipeline_iid` (string) (required): Pipeline IID within the project - `project_path` (string) (required): Full path of the project (e.g. my-group/my-project) - `report_type` (array of strings): Filter by report type: SAST, DAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, SECRET_DETECTION, COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING - `scanner` (array of strings): Filter by scanner external IDs - `severity` (array of strings): Filter by severity: CRITICAL, HIGH, MEDIUM, LOW, INFO, UNKNOWN Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_service_accounts List instance-level service accounts. Returns: service account summaries with ID, username, name, and email. Requires admin token. See also: gitlab_create_service_account, gitlab_update_instance_service_account. **Parameters:** - `order_by` (string): Field to order by (id/username/name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc/desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_snippet_discussions List discussion threads on a project snippet with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state) and pagination metadata. See also: gitlab_get_snippet_discussion, gitlab_create_snippet_discussion, gitlab_project_snippet_get, gitlab_snippet_note_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID - `sort` (string): Sort direction (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_ssh_keys List the current user's SSH keys. Returns: key summaries with ID, title, fingerprint, usage type, and expiry. See also: gitlab_get_ssh_key, gitlab_add_ssh_key, gitlab_delete_ssh_key. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_ssh_keys_for_user List a specific user's SSH keys. Returns: key summaries with ID, title, fingerprint, usage type, and expiry. See also: gitlab_get_ssh_key_for_user, gitlab_add_ssh_key_for_user, gitlab_delete_ssh_key_for_user. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order for keyset pagination: asc or desc - `user_id` (integer) (required): The ID of the user Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_status_all_geo_sites List replication status for all Geo sites. Returns: per-site health, replication lag, and detailed sync/verification/checksum counts and percentages, with pagination metadata. See also: gitlab_get_status_geo_site, gitlab_list_geo_sites. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_system_hooks List instance system hooks. Returns: an array of system hooks with id, url, and event triggers. See also: gitlab_get_system_hook, gitlab_add_system_hook. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_terraform_states List Terraform states. Returns: an array of states with name, lock status, and latest version. See also: gitlab_get_terraform_state, gitlab_lock_terraform_state. **Parameters:** - `project_path` (string) (required): Full project path (e.g. group/project) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_topics List instance project topics. Returns: an array of topics with id, name, title, description, and project counts. See also: gitlab_get_topic, gitlab_create_topic. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter topics by search query - `sort` (string): Sort order for keyset-paginated results: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_user_contribution_events List a user's contribution events. Returns: event entries with action, target type/title, project, and timestamp. See also: gitlab_get_user, gitlab_get_user_activities, gitlab_get_user_associations_count. **Parameters:** - `action` (string): Filter by action type: created | updated | closed | reopened | pushed | commented | merged | joined | left | destroyed | expired | approved - `after` (string): Only events after this date (YYYY-MM-DD) - `before` (string): Only events before this date (YYYY-MM-DD) - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Include all events across a user's projects (e.g. 'all') - `sort` (string): Sort order: asc or desc - `target_type` (string): Filter by target type: Issue | Milestone | MergeRequest | Note | Project | Snippet | User - `user_id` (integer) (required): The ID of the user whose events to retrieve Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_users List users with filtering and pagination support. Returns: user summaries including ID, username, name, state, and profile URLs. See also: gitlab_get_user, gitlab_user_current, gitlab_create_user. **Parameters:** - `active` (boolean): Filter for active users only - `admins` (boolean): Filter for administrators only - `blocked` (boolean): Filter for blocked users only - `created_after` (string): Filter users created after this date (RFC3339) - `created_before` (string): Filter users created before this date (RFC3339) - `custom_attributes` (object): Filter users by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `exclude_active` (boolean): Exclude active users from the result - `exclude_external` (boolean): Exclude external users from the result - `exclude_humans` (boolean): Exclude human users from the result - `exclude_internal` (boolean): Exclude internal (bot/system) users from the result - `extern_uid` (string): Filter by external UID (use with provider) - `external` (boolean): Filter for external users only - `humans` (boolean): Filter for human (non-bot, non-internal) users only - `order_by` (string): Order users by: id, name, username, created_at, or updated_at. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `provider` (string): Filter by external provider name (use with extern_uid) - `public_email` (string): Filter by exact public email address - `search` (string): Search users by name or username or email - `sort` (string): Sort order: asc or desc - `two_factor` (string): Filter by two-factor authentication status: enabled or disabled. - `username` (string): Filter by exact username - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `without_project_bots` (boolean): Exclude project bot users from the result - `without_projects` (boolean): Filter for users without any projects Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_vulnerabilities List a project's vulnerabilities with severity, state, scanner, and report-type filters plus keyset pagination. Returns: matching vulnerabilities with title, severity, state, report type, scanner, identifiers, detection time, and web URL. See also: gitlab_get_vulnerability, gitlab_vulnerability_severity_count, gitlab_list_security_findings. **Parameters:** - `after` (string): Cursor for forward pagination (from previous response end_cursor) - `before` (string): Cursor for backward pagination (from previous response start_cursor) - `first` (integer): Number of items to return (default 20, max 100) - `has_issues` (boolean): Filter by whether a linked issue exists - `has_resolution` (boolean): Filter by whether a resolution exists - `last` (integer): Number of items from the end (backward pagination) - `project_path` (string) (required): Full path of the project (e.g. my-group/my-project) - `report_type` (array of strings): Filter by report type: SAST, DAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, SECRET_DETECTION, COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING - `scanner` (array of strings): Filter by scanner external IDs - `severity` (array of strings): Filter by severity: CRITICAL, HIGH, MEDIUM, LOW, INFO, UNKNOWN - `sort` (string): Sort order: severity_desc, severity_asc, detected_desc, detected_asc - `state` (array of strings): Filter by state: DETECTED, CONFIRMED, DISMISSED, RESOLVED Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_work_item_types List work item types for a namespace. Returns: id, name, and enabled flag for each type. Supports name filter, only_available flag, and cursor pagination. Experimental. See also: gitlab_list_work_items, gitlab_create_work_item. **Parameters:** - `after` (string): Cursor for forward pagination - `before` (string): Cursor for backward pagination - `first` (integer): Number of types to return from the beginning (cursor pagination) - `full_path` (string) (required): Project or group full path (namespace path) - `last` (integer): Number of types to return from the end (backward cursor pagination) - `name` (string): Filter by work item type name - `only_available` (boolean): Return only available work item types Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_list_work_items List work items in a project or group namespace with filtering and cursor pagination. Returns: matching work items with type, state, title, author, labels, child work items, and timestamps. Experimental. See also: gitlab_get_work_item, gitlab_create_work_item, gitlab_list_work_item_types. **Parameters:** - `after` (string): Cursor for forward pagination - `author_username` (string): Filter by author username - `confidential` (boolean): Filter by confidentiality - `first` (integer): Number of items to return (cursor-based pagination) - `full_path` (string) (required): Full path of the project or group - `include_ancestors` (boolean): Include ancestor work items - `include_descendants` (boolean): Include descendant work items - `label_name` (array of strings): Filter by label names - `search` (string): Search in title and description - `sort` (string): Sort order - `state` (string): Filter by state (opened/closed/all) - `types` (array of strings): Filter by work item types Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### lock (1 tool) #### gitlab_lock_terraform_state Lock a Terraform state. Returns: the state with its lock acquired. See also: gitlab_unlock_terraform_state, gitlab_get_terraform_state. **Parameters:** - `name` (string) (required): Terraform state name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### mark (1 tool) #### gitlab_mark_migration Mark a database migration as complete. Returns: a success status. See also: gitlab_get_settings, gitlab_get_metadata. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `database` (string): Database name (optional, e.g. main or ci) - `version` (integer) (required): Migration version number to mark as successful Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### milestone (7 tools) #### gitlab_milestone_create Create a new milestone in a project with title and optional description, start date, and due date. Returns: the created milestone with IID, state, dates, and web URL. See also: gitlab_milestone_get, gitlab_milestone_update, gitlab_milestone_list. **Parameters:** - `description` (string): Milestone description - `due_date` (string): Due date (YYYY-MM-DD) - `project_id` (string) (required): Project ID or URL-encoded path - `start_date` (string): Start date (YYYY-MM-DD) - `title` (string) (required): Milestone title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_milestone_delete Delete a milestone permanently from a project by milestone IID. Returns: a success confirmation naming the milestone and project. See also: gitlab_milestone_get, gitlab_milestone_update, gitlab_milestone_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `milestone_iid` (integer) (required): Milestone IID (project-scoped). Use gitlab_milestone_list to find IIDs - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_milestone_get Get a single milestone from a project by milestone IID. Returns: milestone title, description, state, start/due dates, expiry, group/project IDs, timestamps, and web URL. See also: gitlab_milestone_list, gitlab_milestone_update, gitlab_milestone_issues, gitlab_milestone_merge_requests. **Parameters:** - `milestone_iid` (integer) (required): Milestone IID (project-scoped). Use gitlab_milestone_list to find IIDs - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_milestone_issues List issues assigned to a single milestone with ordering and pagination. Returns: assigned issues with IID, title, state, web URL, creation time, and pagination metadata. See also: gitlab_milestone_get, gitlab_milestone_merge_requests, gitlab_issue_list. **Parameters:** - `milestone_iid` (integer) (required): Milestone IID (project-scoped). Use gitlab_milestone_list to find IIDs - `order_by` (string): Order results by field (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_milestone_list List milestones in one project with state/title/search filters, ancestor inclusion, ordering, and pagination. Returns: matching milestones with state, dates, expiry, web URL, and pagination metadata. See also: gitlab_milestone_get, gitlab_milestone_create, gitlab_milestone_issues. **Parameters:** - `iids` (array of integers): Filter by milestone IIDs - `include_ancestors` (boolean): Include milestones from parent groups - `include_parent_milestones` (boolean): Deprecated (GitLab 16.7+): use include_ancestors instead. Include milestones from parent groups - `order_by` (string): Order results by field (e.g. created_at, updated_at, due_date, title) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search milestones by title or description - `sort` (string): Sort direction (asc, desc) - `state` (string): Filter by state (active, closed) - `title` (string): Filter by exact milestone title Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_milestone_merge_requests List merge requests assigned to a single milestone with ordering and pagination. Returns: assigned merge requests with IID, title, state, source/target branches, web URL, creation time, and pagination metadata. See also: gitlab_milestone_get, gitlab_milestone_issues, gitlab_merge_request_list. **Parameters:** - `milestone_iid` (integer) (required): Milestone IID (project-scoped). Use gitlab_milestone_list to find IIDs - `order_by` (string): Order results by field (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_milestone_update Update an existing milestone's title, description, start/due dates, or state (state_event close/activate) by milestone IID. Returns: the updated milestone with state, dates, and web URL. See also: gitlab_milestone_get, gitlab_milestone_delete, gitlab_milestone_list. **Parameters:** - `description` (string): Milestone description - `due_date` (string): Due date (YYYY-MM-DD) - `milestone_iid` (integer) (required): Milestone IID (project-scoped). Use gitlab_milestone_list to find IIDs - `project_id` (string) (required): Project ID or URL-encoded path - `start_date` (string): Start date (YYYY-MM-DD) - `state_event` (string): State transition: activate or close - `title` (string): Milestone title Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### modify (1 tool) #### gitlab_modify_user Modify an existing user. Returns: the updated user profile metadata. See also: gitlab_get_user, gitlab_create_user, gitlab_delete_user. **Parameters:** - `admin` (boolean): Grant or revoke admin privileges - `auditor` (boolean): Grant or revoke auditor privileges (Premium/Ultimate) - `bio` (string): New bio text - `can_create_group` (boolean): Allow user to create groups - `commit_email` (string): Email used for commits - `email` (string): New email address - `extern_uid` (string): External UID for the provider - `external` (boolean): Mark or unmark as external - `job_title` (string): New job title - `linkedin` (string): LinkedIn account - `location` (string): New location - `locked` (boolean): Lock or unlock the user account - `name` (string): New display name - `note` (string): New admin note - `organization` (string): New organization - `password` (string): New password - `private_profile` (boolean): Set profile as private - `projects_limit` (integer): New maximum projects limit - `provider` (string): External provider name (use with extern_uid) - `public_email` (string): Publicly visible email address - `skip_reconfirmation` (boolean): Skip reconfirmation on email change - `skype` (string): Skype account - `theme_id` (integer): GitLab theme ID for the user's UI - `twitter` (string): Twitter/X account - `user_id` (integer) (required): The ID of the user to modify - `username` (string): New username - `view_diffs_file_by_file` (boolean): Show whitespace changes in diffs file by file - `website_url` (string): User website URL Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### mr (74 tools) #### gitlab_mr_add_spent_time Add spent time to a merge request. Returns: the updated time tracking stats (estimate and spent time, seconds and human-readable). See also: gitlab_mr_reset_spent_time, gitlab_mr_set_time_estimate, gitlab_mr_time_stats. **Parameters:** - `duration` (string) (required): Human-readable duration (e.g. 1h, 30m, 1w2d) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `summary` (string): Optional summary of work done Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approval_config Get the approval configuration of a merge request. Returns: approvals required and left, approved-by users with timestamps, suggested approvers, approver groups, and the remaining approval rules. See also: gitlab_mr_approval_state, gitlab_mr_approval_rules, gitlab_mr_approve. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approval_reset Reset all approvals on a merge request. Returns: a success confirmation. See also: gitlab_mr_approval_state, gitlab_mr_approval_config, gitlab_mr_unapprove. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approval_rule_create Create an approval rule on a merge request. Returns: the created rule with its type, required count, eligible approvers, users, and groups. See also: gitlab_mr_approval_rules, gitlab_mr_approval_rule_update, gitlab_mr_approval_rule_delete. **Parameters:** - `approval_project_rule_id` (integer) (required): Project-level approval rule ID to inherit from - `approvals_required` (integer) (required): Number of approvals required - `group_ids` (array of integers) (required): Group IDs eligible to approve - `merge_request_iid` (integer) (required): Merge request internal ID - `name` (string) (required): Rule name - `project_id` (string) (required): Project ID or URL-encoded path - `user_ids` (array of integers) (required): User IDs eligible to approve Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_approval_rule_delete Delete an approval rule from a merge request. Returns: a success confirmation. See also: gitlab_mr_approval_rules, gitlab_mr_approval_rule_update, gitlab_mr_approval_rule_create. **Parameters:** - `approval_rule_id` (integer) (required): Approval rule ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_approval_rule_update Update an approval rule on a merge request. Returns: the updated rule with its type, required count, eligible approvers, users, and groups. See also: gitlab_mr_approval_rules, gitlab_mr_approval_rule_create, gitlab_mr_approval_rule_delete. **Parameters:** - `approval_rule_id` (integer) (required): Approval rule ID - `approvals_required` (integer) (required): Number of approvals required - `group_ids` (array of integers) (required): Group IDs eligible to approve - `merge_request_iid` (integer) (required): Merge request internal ID - `name` (string) (required): Rule name - `project_id` (string) (required): Project ID or URL-encoded path - `user_ids` (array of integers) (required): User IDs eligible to approve Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approval_rules List the approval rules of a merge request. Returns: each rule with its type, required count, approved flag, eligible approvers, users, groups, and source rule. See also: gitlab_mr_approval_rule_create, gitlab_mr_approval_rule_update, gitlab_mr_approval_state. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approval_state Get the approval state of a merge request. Returns: whether project rules were overwritten and each applicable rule with its type, required count, approved flag, and approvers. See also: gitlab_mr_approval_rules, gitlab_mr_approval_config, gitlab_mr_approve. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_approve Approve a merge request on behalf of the caller. Returns: the approval state with required-approvals count, approved-by count, and overall approved flag. See also: gitlab_mr_unapprove, gitlab_mr_merge, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string): Head SHA of the merge request — approve only if HEAD matches (safety check, applies to approve only) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_cancel_auto_merge Cancel auto-merge (merge-when-pipeline-succeeds) on a merge request. Returns: the MR with auto-merge disabled. See also: gitlab_mr_merge, gitlab_mr_get. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_changes_get Get the current file diffs (changes) for a merge request. Returns: per-file diffs with old_path, new_path, diff content, file status (added/deleted/renamed), file modes, and truncated_files when GitLab collapses large diffs. See also: gitlab_mr_diff_versions_list, gitlab_mr_raw_diffs, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' - `unidiff` (boolean): Return diffs in unified diff format (default: false) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_commits List the commits that make up a merge request. Returns: commit SHAs, titles, authors, and timestamps with pagination metadata. See also: gitlab_mr_get, gitlab_commit_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Column to order results by (e.g. created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_create Open a new merge request from a source branch into a target branch. Returns: the created MR with IID, state, source/target branches, merge status, assignees, reviewers, labels, and web URL. See also: gitlab_mr_get, gitlab_mr_list, gitlab_mr_merge. **Parameters:** - `allow_collaboration` (boolean): Allow commits from upstream members who can merge to target branch - `approvals_before_merge` (integer): Number of approvals required before this MR can be merged (deprecated; use the approval rules API) - `assignee_id` (integer): Single user ID to assign (use assignee_ids for multiple) - `assignee_ids` (array of integers): User IDs to assign - `description` (string): Merge request description (Markdown supported) - `labels` (array of strings): Label names to apply - `milestone_id` (integer): Milestone ID to associate with the merge request - `project_id` (string) (required): Project ID or URL-encoded path - `remove_source_branch` (boolean): Delete source branch after merge. Only set if explicitly requested by the user. Omit to preserve repository defaults - `reviewer_ids` (array of integers): User IDs to add as reviewers - `source_branch` (string) (required): Source branch name - `squash` (boolean): Squash commits on merge. Only set if explicitly requested by the user. Omit to preserve repository defaults - `target_branch` (string) (required): Target branch name. If not specified by the user use the project default branch from gitlab_project_get (do NOT assume main) - `target_project_id` (integer): Target project ID (for cross-project/fork MRs) - `title` (string) (required): Merge request title Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_create_pipeline Trigger a new CI/CD pipeline for a merge request. Returns: the created pipeline with id, status, ref, sha, and web URL. See also: gitlab_mr_pipelines, gitlab_pipeline_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_create_todo Create a to-do for a merge request for the caller. Returns: the created to-do item with action, target, and state. See also: gitlab_mr_get, gitlab_mr_subscribe. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_delete Delete a merge request permanently. Returns: a success confirmation naming the MR and project. See also: gitlab_mr_update, gitlab_mr_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID to delete (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_dependencies_list List a merge request's blocking dependencies. Returns: the dependency links with blocking MR references and their states. See also: gitlab_mr_dependency_create, gitlab_mr_dependency_delete. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_dependency_create Add a blocking dependency to a merge request. Returns: the created dependency linking the MR to its blocking MR. See also: gitlab_mr_dependency_delete, gitlab_mr_dependencies_list. **Parameters:** - `blocking_merge_request_id` (integer) (required): ID of the merge request that blocks this one - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_dependency_delete Remove a blocking dependency from a merge request. Returns: a success confirmation naming the MR, blocking MR, and project. See also: gitlab_mr_dependency_create, gitlab_mr_dependencies_list. **Parameters:** - `blocking_merge_request_id` (integer) (required): ID of the blocking merge request to remove - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_diff_version_get Get a single merge request diff version with its commits and file diffs. Returns: the diff version with id, SHAs, state, real_size, the full commit list, and per-file diffs (optionally in unified-diff format). See also: gitlab_mr_diff_versions_list, gitlab_mr_changes_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `unidiff` (boolean): Return diffs in unified diff format (default: false) - `version_id` (integer) (required): Diff version ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_diff_versions_list List all diff versions (historical snapshots) of a merge request. Returns: an array of diff versions with id, head/base/start SHAs, state, real_size, and created_at, plus pagination metadata. See also: gitlab_mr_diff_version_get, gitlab_mr_changes_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_discussion_create Create a new discussion thread on a merge request, optionally as an inline diff comment. Returns: the created thread with its first note (author, body, resolvable state, diff position). See also: gitlab_mr_discussion_reply, gitlab_mr_discussion_list, gitlab_mr_changes. **Parameters:** - `body` (string) (required): Discussion body - `commit_id` (string): SHA of the commit to anchor the discussion to (optional). - `created_at` (string): Backdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `position` (object): Diff position for inline comments. Omit for general MR discussions. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_discussion_get Get a single merge request discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state, diff position). See also: gitlab_mr_discussion_list, gitlab_mr_discussion_reply, gitlab_mr_discussion_resolve. **Parameters:** - `discussion_id` (string) (required): ID of the discussion - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_discussion_list List discussion threads on a merge request with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state, diff position) and pagination metadata. See also: gitlab_mr_discussion_get, gitlab_mr_discussion_create, gitlab_mr_get, gitlab_mr_note_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc or desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_discussion_note_delete Delete a note from a merge request discussion thread (destructive). Returns: a deletion confirmation message. See also: gitlab_mr_discussion_note_update, gitlab_mr_discussion_get, gitlab_mr_discussion_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `discussion_id` (string) (required): ID of the discussion containing the note - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): ID of the note to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_discussion_note_update Update the body or resolved state of a note in a merge request discussion thread. Returns: the updated note. See also: gitlab_mr_discussion_reply, gitlab_mr_discussion_note_delete, gitlab_mr_discussion_get. **Parameters:** - `body` (string): New body text (Markdown). Leave empty to keep current body. - `created_at` (string): Override the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): ID of the discussion containing the note - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): ID of the note to update - `project_id` (string) (required): Project ID or URL-encoded path - `resolved` (boolean): Set to true to resolve, false to unresolve. Omit to leave unchanged. Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_discussion_reply Add a reply note to an existing merge request discussion thread. Returns: the created note (author, body, timestamps, resolvable state). See also: gitlab_mr_discussion_create, gitlab_mr_discussion_get, gitlab_mr_discussion_note_update. **Parameters:** - `body` (string) (required): Reply body - `created_at` (string): Backdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): ID of the discussion to reply to - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_discussion_resolve Resolve or unresolve a merge request discussion thread. Returns: the thread with its updated resolved state and notes. See also: gitlab_mr_discussion_get, gitlab_mr_discussion_list, gitlab_mr_discussion_reply. **Parameters:** - `discussion_id` (string) (required): ID of the discussion to resolve - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `resolved` (boolean) (required): True to resolve, false to unresolve Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_draft_note_create Create a pending draft note on a merge request. Returns: the created draft note with ID, author, body, and inline position. See also: gitlab_mr_draft_note_list, gitlab_mr_draft_note_publish, gitlab_mr_draft_note_publish_all. **Parameters:** - `commit_id` (string): SHA of the commit to comment on - `in_reply_to_discussion_id` (string): Discussion ID to reply to - `merge_request_iid` (integer) (required): Merge request internal ID - `note` (string) (required): Note body text (Markdown) - `position` (object): Diff position for inline comments on specific lines. Omit for general MR comments. - `project_id` (string) (required): Project ID or URL-encoded path - `resolve_discussion` (boolean): Resolve the discussion when published Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_draft_note_delete Delete a pending draft note permanently. Returns: a success confirmation naming the note, merge request, and project. See also: gitlab_mr_draft_note_list, gitlab_mr_draft_note_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request internal ID - `note_id` (integer) (required): Draft note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_draft_note_get Get a single draft note from a merge request. Returns: the draft note with author, body, resolve flag, line code, and inline diff position. See also: gitlab_mr_draft_note_list, gitlab_mr_draft_note_update, gitlab_mr_draft_note_publish. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `note_id` (integer) (required): Draft note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_draft_note_list List pending draft notes on a merge request. Returns: each draft note with author, body, optional inline position, line code, and pagination metadata. See also: gitlab_mr_draft_note_get, gitlab_mr_draft_note_create, gitlab_mr_draft_note_publish_all. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): Order by: id (default) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort: asc or desc (default) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_draft_note_publish Publish a single draft note as a regular merge request note. Returns: a success confirmation naming the note, merge request, and project. See also: gitlab_mr_draft_note_publish_all, gitlab_mr_draft_note_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `note_id` (integer) (required): Draft note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_draft_note_publish_all Publish all of the user's pending draft notes on a merge request. Returns: a success confirmation naming the merge request and project. See also: gitlab_mr_draft_note_list, gitlab_mr_draft_note_publish. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_draft_note_update Update a pending draft note's body or position. Returns: the updated draft note. See also: gitlab_mr_draft_note_get, gitlab_mr_draft_note_publish. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `note` (string): Updated note body text (Markdown) - `note_id` (integer) (required): Draft note ID - `position` (object): Updated diff position for inline comments - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_emoji_create Add an emoji reaction to a merge request. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_mr_emoji_list, gitlab_mr_emoji_delete. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_emoji_delete Remove an emoji reaction from a merge request by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_mr_emoji_list, gitlab_mr_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_emoji_get Get a single emoji reaction on a merge request by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_mr_emoji_list, gitlab_mr_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_emoji_list List all emoji reactions on a merge request. Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_mr_emoji_get, gitlab_mr_emoji_create, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_get Get a single merge request from a project by its IID. Returns: MR metadata, state, source/target branches, merge status, assignees, reviewers, labels, milestone, and web URL. See also: gitlab_mr_list, gitlab_mr_update, gitlab_mr_merge, gitlab_mr_commits. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_issues_closed List issues that will be closed when the merge request is merged. Returns: issues with state, labels, assignees, and web URL plus pagination metadata. See also: gitlab_mr_related_issues, gitlab_issue_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Column to order results by (e.g. created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_label_event_get Get a single label event for a merge request. Returns: the event with action, the label object, and the acting user. See also: gitlab_mr_label_event_list. **Parameters:** - `label_event_id` (integer) (required): Label event ID - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_label_event_list List label events for a merge request. Returns: label events with action, the label object, the acting user, and pagination metadata. See also: gitlab_mr_label_event_get, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_list List merge requests in one project with filtering and pagination. Returns: matching MRs with state, branches, merge status, assignees, reviewers, labels, and pagination metadata. See also: gitlab_mr_get, gitlab_mr_create, gitlab_mr_list_group. **Parameters:** - `approved_by_ids` (array of values): Filter by MRs approved by all listed user IDs. Accepts user IDs, or exactly one of "Any" (approved by someone) or "None" (unapproved) - `approved_by_usernames` (array of strings): Filter by MRs approved by all listed usernames - `approver_ids` (array of values): Filter by MRs with all listed users as eligible approvers. Accepts user IDs, or exactly one of "Any" (has approvers) or "None" (has none) - `assignee_id` (integer): Filter by assignee user ID - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `created_after` (string): Return MRs created after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return MRs created before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `deployed_after` (string): Return MRs deployed after date (ISO 8601 format) - `deployed_before` (string): Return MRs deployed before date (ISO 8601 format) - `draft` (boolean): Filter by draft status (true=only drafts, false=only non-drafts) - `environment` (string): Filter by deployment environment name - `iids` (array of integers): Filter by merge request internal IDs - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by MRs the caller reacted to with this emoji (e.g. thumbsup) - `non_archived` (boolean): Return merge requests from non-archived projects only. Default is true - `not_author_username` (string): Exclude MRs authored by this username - `not_labels` (array of strings): Label names to exclude - `order_by` (string): Order by field (created_at, updated_at, title) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `reviewer_id` (integer): Filter by reviewer user ID - `reviewer_username` (string): Filter by reviewer username - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `source_branch` (string): Filter by source branch name - `state` (string): Filter by state (opened, closed, merged, all) - `target_branch` (string): Filter by target branch name - `updated_after` (string): Return MRs updated after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return MRs updated before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `view` (string): Set to 'simple' to return only basic MR fields - `wip` (string): Filter by draft/WIP status: 'yes' for draft MRs, 'no' for non-draft - `with_labels_details` (boolean): Include full label details (color, description) in the response - `with_merge_status_recheck` (boolean): Asynchronously recalculate each MR's merge_status before returning Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_list_global List merge requests across all accessible projects. Returns: visible MRs with project context, state, branches, and pagination metadata. See also: gitlab_mr_list, gitlab_mr_list_group, gitlab_search_merge_requests. **Parameters:** - `approved` (string): Filter by approval status: 'yes' or 'no' (Premium) - `approved_by_ids` (array of values): Filter by MRs approved by all listed user IDs. Accepts user IDs, or exactly one of "Any" (approved by someone) or "None" (unapproved) - `approved_by_usernames` (array of strings): Filter by MRs approved by all listed usernames - `approver_ids` (array of values): Filter by MRs with all listed users as eligible approvers. Accepts user IDs, or exactly one of "Any" (has approvers) or "None" (has none) - `assignee_id` (integer): Filter by assignee user ID - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `created_after` (string): Return MRs created after date (ISO 8601) - `created_before` (string): Return MRs created before date (ISO 8601) - `draft` (boolean): Filter by draft status (true=only drafts, false=only non-drafts) - `in` (string): Scope of the search filter (e.g. title, description, or title,description) - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by MRs the caller reacted to with this emoji (e.g. thumbsup) - `non_archived` (boolean): Return merge requests from non-archived projects only. Default is true - `not_author_username` (string): Exclude MRs authored by this username - `not_labels` (array of strings): Label names to exclude - `order_by` (string): Order by field (created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `reviewer_id` (integer): Filter by reviewer user ID - `reviewer_username` (string): Filter by reviewer username - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `source_branch` (string): Filter by source branch name - `state` (string): Filter by state (opened, closed, merged, all) - `target_branch` (string): Filter by target branch name - `updated_after` (string): Return MRs updated after date (ISO 8601) - `updated_before` (string): Return MRs updated before date (ISO 8601) - `view` (string): Set to 'simple' to return only basic MR fields - `wip` (string): Filter by draft/WIP status: 'yes' for draft MRs, 'no' for non-draft - `with_labels_details` (boolean): Include full label details (color, description) in the response - `with_merge_status_recheck` (boolean): Asynchronously recalculate each MR's merge_status before returning Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_list_group List merge requests across a group and its projects. Returns: visible MRs with project context, state, branches, and pagination metadata. See also: gitlab_mr_list, gitlab_mr_list_global, gitlab_group_get. **Parameters:** - `approved_by_ids` (array of values): Filter by MRs approved by all listed user IDs. Accepts user IDs, or exactly one of "Any" (approved by someone) or "None" (unapproved) - `approved_by_usernames` (array of strings): Filter by MRs approved by all listed usernames - `approver_ids` (array of values): Filter by MRs with all listed users as eligible approvers. Accepts user IDs, or exactly one of "Any" (has approvers) or "None" (has none) - `assignee_id` (integer): Filter by assignee user ID - `author_id` (integer): Filter by author user ID - `author_username` (string): Filter by author username - `created_after` (string): Return MRs created after date (ISO 8601) - `created_before` (string): Return MRs created before date (ISO 8601) - `draft` (boolean): Filter by draft status (true=only drafts, false=only non-drafts) - `group_id` (string) (required): Group ID or URL-encoded path - `in` (string): Scope of the search filter (e.g. title, description, or title,description) - `labels` (array of strings): Label names to filter by - `milestone` (string): Milestone title to filter by - `my_reaction_emoji` (string): Filter by MRs the caller reacted to with this emoji (e.g. thumbsup) - `non_archived` (boolean): Return merge requests from non-archived projects only. Default is true - `not_author_username` (string): Exclude MRs authored by this username - `not_labels` (array of strings): Label names to exclude - `order_by` (string): Order by field (created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `reviewer_id` (integer): Filter by reviewer user ID - `reviewer_username` (string): Filter by reviewer username - `scope` (string): Filter by scope (created_by_me, assigned_to_me, all) - `search` (string): Search in title and description - `sort` (string): Sort direction (asc, desc) - `source_branch` (string): Filter by source branch name - `state` (string): Filter by state (opened, closed, merged, all) - `target_branch` (string): Filter by target branch name - `updated_after` (string): Return MRs updated after date (ISO 8601) - `updated_before` (string): Return MRs updated before date (ISO 8601) - `view` (string): Set to 'simple' to return only basic MR fields - `wip` (string): Filter by draft/WIP status: 'yes' for draft MRs, 'no' for non-draft - `with_labels_details` (boolean): Include full label details (color, description) in the response - `with_merge_status_recheck` (boolean): Asynchronously recalculate each MR's merge_status before returning Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_merge Merge a merge request now, or schedule auto-merge when its pipeline succeeds. Returns: the merged MR with merge_commit_sha and updated state. See also: gitlab_mr_get, gitlab_mr_pipelines, gitlab_mr_cancel_auto_merge. **Parameters:** - `auto_merge` (boolean): Set true only when the user asks to merge when the pipeline succeeds or enable auto-merge. - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_commit_message` (string): Custom merge commit message - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `merge_when_pipeline_succeeds` (boolean): Deprecated alias for auto_merge: merge when the pipeline succeeds. Prefer auto_merge - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string): Head SHA of the merge request — merge only if HEAD matches (safety check) - `should_remove_source_branch` (boolean): Delete source branch after merge. Only set if explicitly requested by the user. Omit to preserve repository defaults - `squash` (boolean): Squash commits on merge. Only set if explicitly requested by the user. Omit to preserve repository defaults - `squash_commit_message` (string): Custom squash commit message (used when squash is enabled) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_milestone_event_get Get a single milestone event for a merge request. Returns: the event with action, the milestone object, and the acting user. See also: gitlab_mr_milestone_event_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `milestone_event_id` (integer) (required): Milestone event ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_milestone_event_list List milestone events for a merge request. Returns: milestone events with action, the milestone object, the acting user, and pagination metadata. See also: gitlab_mr_milestone_event_get, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_note_create Add a general comment (note) to a merge request. Returns: the created note with id, author, body, timestamps, and resolvable/internal flags. See also: gitlab_mr_notes_list, gitlab_mr_get, gitlab_mr_discussion_create. **Parameters:** - `body` (string) (required): Comment body (Markdown supported) - `created_at` (string): Backdate the note to this RFC 3339 timestamp (e.g. 2026-01-15T10:00:00Z). Requires administrator or project/group owner permissions; ignored otherwise. - `internal` (boolean): Mark note as internal (visible only to project members) - `merge_request_diff_head_sha` (string): Required for the deduplication of system notes: SHA referencing the most recent diff version of the merge request. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_note_delete Delete a merge request note permanently. Returns: a success confirmation naming the note, MR, and project. See also: gitlab_mr_note_get, gitlab_mr_notes_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): ID of the note to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_note_emoji_create Add an emoji reaction to a merge request note. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_mr_note_emoji_list, gitlab_mr_note_emoji_delete. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_mr_note_emoji_delete Remove an emoji reaction from a merge request note by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_mr_note_emoji_list, gitlab_mr_note_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_mr_note_emoji_get Get a single emoji reaction on a merge request note by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_mr_note_emoji_list, gitlab_mr_note_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_note_emoji_list List all emoji reactions on a merge request note (comment). Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_mr_note_emoji_get, gitlab_mr_note_emoji_create, gitlab_mr_note_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): Note ID - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_note_get Get a single merge request note by its ID. Returns: the note with author, body, timestamps, position, and resolvable/internal flags. See also: gitlab_mr_notes_list, gitlab_mr_note_update, gitlab_mr_note_delete. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): ID of the note to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_note_update Update a merge request note's body. Returns: the updated note with new body and updated_at timestamp. See also: gitlab_mr_note_get, gitlab_mr_notes_list, gitlab_mr_note_delete. **Parameters:** - `body` (string) (required): Updated comment body - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `note_id` (integer) (required): ID of the note to update - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_notes_list List all notes (comments) on a merge request. Returns: notes with author, body, system/internal flags, and pagination metadata. See also: gitlab_mr_note_get, gitlab_mr_note_create, gitlab_mr_discussion_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Order by field (created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_participants List the participants of a merge request. Returns: participating users with username, name, and state. See also: gitlab_mr_reviewers, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_pipelines List the CI/CD pipelines attached to a merge request. Returns: pipelines with id, status, ref, sha, and web URL. See also: gitlab_mr_create_pipeline, gitlab_mr_merge, gitlab_pipeline_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_raw_diffs Get the raw unified-diff output for a merge request in plain-text git-apply format. Returns: raw_diff, a single plain-text unified diff for the MR head suitable for patch application or programmatic analysis. See also: gitlab_mr_changes_get, gitlab_mr_diff_versions_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_rebase Rebase a merge request's source branch onto its target. Returns: whether a rebase is now in progress (poll merge_request.get to track completion). See also: gitlab_mr_get, gitlab_mr_merge. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID to rebase (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `skip_ci` (boolean): Skip triggering CI pipeline after rebase Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_related_issues List issues related to a merge request. Returns: issues with state, labels, assignees, and web URL plus pagination metadata. See also: gitlab_mr_issues_closed, gitlab_issue_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `order_by` (string): Column to order results by (e.g. created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_reset_spent_time Reset a merge request's spent time. Returns: the updated time tracking stats. See also: gitlab_mr_add_spent_time, gitlab_mr_time_stats. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_reset_time_estimate Clear a merge request's time estimate. Returns: the updated time tracking stats. See also: gitlab_mr_set_time_estimate, gitlab_mr_time_stats. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_reviewers List the reviewers of a merge request. Returns: reviewer users with username, name, and review state. See also: gitlab_mr_participants, gitlab_mr_update. **Parameters:** - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_set_time_estimate Set a merge request's time estimate. Returns: the updated time tracking stats (estimate and spent time, seconds and human-readable). See also: gitlab_mr_reset_time_estimate, gitlab_mr_add_spent_time, gitlab_mr_time_stats. **Parameters:** - `duration` (string) (required): Human-readable duration (e.g. 3h30m, 1w2d) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_state_event_get Get a single state event for a merge request. Returns: the event with the state value and the acting user. See also: gitlab_mr_state_event_list. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `state_event_id` (integer) (required): State event ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_state_event_list List state events for a merge request. Returns: state events with the state value, the acting user, and pagination metadata. See also: gitlab_mr_state_event_get, gitlab_mr_get. **Parameters:** - `merge_request_iid` (integer) (required): Merge request internal ID - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_subscribe Subscribe the caller to a merge request's notifications. Returns: the MR with the updated subscription state. See also: gitlab_mr_unsubscribe, gitlab_mr_get. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_time_stats Read a merge request's time tracking totals. Returns: estimate and spent time in seconds and human-readable form. See also: gitlab_mr_set_time_estimate, gitlab_mr_add_spent_time. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_unapprove Remove the caller's approval from a merge request. Returns: a success confirmation naming the MR and project. See also: gitlab_mr_approve, gitlab_mr_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string): Head SHA of the merge request — approve only if HEAD matches (safety check, applies to approve only) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_unsubscribe Unsubscribe the caller from a merge request's notifications. Returns: the MR with the updated subscription state. See also: gitlab_mr_subscribe, gitlab_mr_get. **Parameters:** - `include_diverged_commits_count` (boolean): Include the count of commits the source branch is behind the target branch (diverged_commits_count) - `include_rebase_in_progress` (boolean): Include whether a rebase is currently in progress (rebase_in_progress) - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return the title and description rendered to HTML Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_mr_update Update an existing merge request's fields or state. Returns: the updated MR with its new field values, state, labels, assignees, and reviewers. See also: gitlab_mr_get, gitlab_mr_merge, gitlab_mr_approve. **Parameters:** - `add_labels` (array of strings): Label names to add without removing existing - `allow_collaboration` (boolean): Allow commits from upstream members who can merge to target branch - `assignee_id` (integer): Single user ID to assign (use assignee_ids for multiple) - `assignee_ids` (array of integers): User IDs to assign as merge request assignees - `description` (string): New description - `discussion_locked` (boolean): Lock discussions on the merge request - `labels` (array of strings): Label names to replace all labels on the merge request - `merge_request_iid` (integer) (required): Merge request IID (project-scoped, not 'merge_request_id') - `milestone_id` (integer): Milestone ID (0 to unset) - `project_id` (string) (required): Project ID or URL-encoded path - `remove_labels` (array of strings): Label names to remove - `remove_source_branch` (boolean): Delete source branch after merge. Only set if explicitly requested - `reviewer_ids` (array of integers): User IDs to add as reviewers - `squash` (boolean): Squash commits on merge. Only set if explicitly requested - `state_event` (string): State transition (close, reopen) - `target_branch` (string): New target branch - `title` (string): New title Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### namespace (4 tools) #### gitlab_namespace_exists Check whether a namespace path is taken. Returns: an exists flag and suggested alternative paths when the path is unavailable. See also: gitlab_namespace_get, gitlab_namespace_search. **Parameters:** - `id` (string) (required): Namespace path to check for existence - `parent_id` (integer): Parent namespace ID to scope the check Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_namespace_get Get a single namespace by ID or path. Returns: the namespace with id, name, path, kind, full path, parent id, plan, trial state, and seat usage. See also: gitlab_namespace_list, gitlab_namespace_search. **Parameters:** - `id` (string) (required): Namespace ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_namespace_list List namespaces visible to the authenticated user. Returns: matching namespaces with id, name, path, kind, plan, seat usage, and pagination metadata. See also: gitlab_namespace_get, gitlab_namespace_search, gitlab_group_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `owned_only` (boolean): If true return only namespaces owned by the authenticated user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `search` (string): Filter namespaces by search term - `sort` (string): Sort direction for keyset-paginated results (asc, desc) - `top_level_only` (boolean): If true return only top-level namespaces Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_namespace_search Search namespaces by name or path. Returns: matching namespaces with id, name, path, kind, and pagination metadata. See also: gitlab_namespace_list, gitlab_namespace_get. **Parameters:** - `query` (string) (required): Search query string for namespaces Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### notification (6 tools) #### gitlab_notification_global_get Get the authenticated user's global notification settings. Returns: the global notification level, notification email, and the per-event flags (issue, merge request, pipeline, note, and epic events) when the level is custom. See also: gitlab_notification_global_update, gitlab_notification_project_get, gitlab_notification_group_get. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_notification_global_update Update the authenticated user's global notification settings. Returns: the updated global notification level, notification email, and per-event flags. See also: gitlab_notification_global_get, gitlab_notification_project_update, gitlab_notification_group_update. **Parameters:** - `close_issue` (boolean): Notify on issue close - `close_merge_request` (boolean): Notify on MR close - `failed_pipeline` (boolean): Notify on pipeline failure - `fixed_pipeline` (boolean): Notify on pipeline fix - `issue_due` (boolean): Notify on issue due date - `level` (string): Notification level: disabled, participating, watch, global, mention, custom - `merge_merge_request` (boolean): Notify on MR merge - `merge_when_pipeline_succeeds` (boolean): Notify on merge when pipeline succeeds - `moved_project` (boolean): Notify on project move - `new_epic` (boolean): Notify on new epic - `new_issue` (boolean): Notify on new issue - `new_merge_request` (boolean): Notify on new MR - `new_note` (boolean): Notify on new note - `notification_email` (string): Email address for notifications - `push_to_merge_request` (boolean): Notify on push to MR - `reassign_issue` (boolean): Notify on issue reassign - `reassign_merge_request` (boolean): Notify on MR reassign - `reopen_issue` (boolean): Notify on issue reopen - `reopen_merge_request` (boolean): Notify on MR reopen - `success_pipeline` (boolean): Notify on pipeline success Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_notification_group_get Get the authenticated user's notification settings for a group. Returns: the group notification level, notification email, and per-event flags when the level is custom. See also: gitlab_notification_group_update, gitlab_notification_global_get, gitlab_notification_project_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_notification_group_update Update the authenticated user's notification settings for a group. Returns: the updated group notification level, notification email, and per-event flags. See also: gitlab_notification_group_get, gitlab_notification_global_update, gitlab_notification_project_update. **Parameters:** - `close_issue` (boolean): Notify on issue close - `close_merge_request` (boolean): Notify on MR close - `failed_pipeline` (boolean): Notify on pipeline failure - `fixed_pipeline` (boolean): Notify on pipeline fix - `group_id` (string) (required): Group ID or URL-encoded path - `issue_due` (boolean): Notify on issue due date - `level` (string): Notification level: disabled, participating, watch, global, mention, custom - `merge_merge_request` (boolean): Notify on MR merge - `merge_when_pipeline_succeeds` (boolean): Notify on merge when pipeline succeeds - `moved_project` (boolean): Notify on project move - `new_epic` (boolean): Notify on new epic - `new_issue` (boolean): Notify on new issue - `new_merge_request` (boolean): Notify on new MR - `new_note` (boolean): Notify on new note - `notification_email` (string): Email address for notifications - `push_to_merge_request` (boolean): Notify on push to MR - `reassign_issue` (boolean): Notify on issue reassign - `reassign_merge_request` (boolean): Notify on MR reassign - `reopen_issue` (boolean): Notify on issue reopen - `reopen_merge_request` (boolean): Notify on MR reopen - `success_pipeline` (boolean): Notify on pipeline success Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_notification_project_get Get the authenticated user's notification settings for a project. Returns: the project notification level, notification email, and per-event flags when the level is custom. See also: gitlab_notification_project_update, gitlab_notification_global_get, gitlab_notification_group_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_notification_project_update Update the authenticated user's notification settings for a project. Returns: the updated project notification level, notification email, and per-event flags. See also: gitlab_notification_project_get, gitlab_notification_global_update, gitlab_notification_group_update. **Parameters:** - `close_issue` (boolean): Notify on issue close - `close_merge_request` (boolean): Notify on MR close - `failed_pipeline` (boolean): Notify on pipeline failure - `fixed_pipeline` (boolean): Notify on pipeline fix - `issue_due` (boolean): Notify on issue due date - `level` (string): Notification level: disabled, participating, watch, global, mention, custom - `merge_merge_request` (boolean): Notify on MR merge - `merge_when_pipeline_succeeds` (boolean): Notify on merge when pipeline succeeds - `moved_project` (boolean): Notify on project move - `new_epic` (boolean): Notify on new epic - `new_issue` (boolean): Notify on new issue - `new_merge_request` (boolean): Notify on new MR - `new_note` (boolean): Notify on new note - `notification_email` (string): Email address for notifications - `project_id` (string) (required): Project ID or URL-encoded path - `push_to_merge_request` (boolean): Notify on push to MR - `reassign_issue` (boolean): Notify on issue reassign - `reassign_merge_request` (boolean): Notify on MR reassign - `reopen_issue` (boolean): Notify on issue reopen - `reopen_merge_request` (boolean): Notify on MR reopen - `success_pipeline` (boolean): Notify on pipeline success Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### orbit (6 tools) #### gitlab_orbit_dsl Retrieve the GitLab Orbit (Knowledge Graph) query DSL schema or LLM grammar. **Parameters:** - `response_format` (string): Response format: raw, llm, or json. When omitted, the API server-side default is used. Note: gitlab_orbit_query forces raw when this field is empty. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_orbit_graph_status Inspect GitLab Orbit (Knowledge Graph) indexing status for one namespace, project, or full_path. **Parameters:** - `full_path` (string): Full path of a group or project to inspect, for example gitlab-org/gitlab. Set exactly one scope field. - `namespace_id` (integer): Namespace/group ID to inspect. Set exactly one of namespace_id, project_id, or full_path. - `project_id` (integer): Project ID to inspect. Set exactly one of namespace_id, project_id, or full_path. - `response_format` (string): Response format: raw, llm, or json. When omitted, the API server-side default is used. Note: gitlab_orbit_query forces raw when this field is empty. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_orbit_query Execute a read-only GitLab Orbit (Knowledge Graph) query (traversal, aggregation, neighbors, or path_finding). **Parameters:** - `query` (object) (required): Orbit query DSL JSON object. The query_type must be one of: traversal, aggregation, neighbors, path_finding. See QueryInput docstring for the shape of each variant. - `response_format` (string): Response format: raw, llm, or json. When omitted, the API server-side default is used. Note: gitlab_orbit_query forces raw when this field is empty. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_orbit_schema Inspect the GitLab Orbit (Knowledge Graph) ontology: domains, node types, edge types. **Parameters:** - `expand` (array of strings): Node names to expand with full properties and relationships. - `format` (string): Schema response format: raw, llm, or json. When omitted, the API server-side default is used (json). - `response_format` (string): Alias for format. Must match format when both are set. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_orbit_status Inspect GitLab Orbit (Knowledge Graph) cluster health on GitLab.com. **Parameters:** - `response_format` (string): Response format: raw, llm, or json. When omitted, the API server-side default is used. Note: gitlab_orbit_query forces raw when this field is empty. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_orbit_tools List the GitLab Orbit (Knowledge Graph) MCP tool manifest and parameter schemas. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### package (8 tools) #### gitlab_package_delete Delete a package permanently. Returns: a success confirmation naming the deleted package and project. See also: gitlab_package_list, gitlab_package_file_delete. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `package_id` (string) (required): Package ID to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_package_download Download a single file from the Generic Package Registry to a local path. Returns: the local output path, byte size, and SHA256 checksum. See also: gitlab_package_file_list, gitlab_package_list. **Parameters:** - `file_name` (string) (required): File name to download - `output_path` (string) (required): Absolute path where the file will be saved on the local filesystem - `package_name` (string) (required): Package name - `package_version` (string) (required): Package version - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_package_file_delete Delete a single file from a package permanently. Returns: a success confirmation naming the deleted file, package, and project. See also: gitlab_package_file_list, gitlab_package_delete. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `package_file_id` (string) (required): Package file ID to delete - `package_id` (string) (required): Package ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_package_file_list List the files within a single package. Returns: package files with name, size, checksums, creation time, and pagination metadata. See also: gitlab_package_download, gitlab_package_file_delete, gitlab_package_list. **Parameters:** - `order_by` (string): Order package files by: created_at, file_name, or id - `package_id` (string) (required): Package ID - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_package_list List packages in a project with optional filters and ordering. Returns: matching packages with type, status, pipeline metadata, tags, _links, and pagination metadata. See also: gitlab_package_file_list, gitlab_package_publish, gitlab_package_delete. **Parameters:** - `include_versionless` (boolean): Include versionless packages - `order_by` (string): Order by package registry field: created_at, name, version, or type. - `package_name` (string): Filter by package name - `package_type` (string): Filter by package type: composer, conan, generic, golang, helm, maven, npm, nuget, pypi, or terraform_module. - `package_version` (string): Filter by package version - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc - `status` (string): Filter by status: default, hidden, processing, error, pending_destruction, or deprecated. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_package_publish Publish a single file to the Generic Package Registry. Returns: the published file's id, package id, name, size, checksums (md5/sha1/sha256), and download URL. See also: gitlab_package_publish_and_link, gitlab_package_publish_directory, gitlab_package_list. **Parameters:** - `content_base64` (string): Base64-encoded file content. Only one should be provided. - `file_name` (string) (required): Name of the file within the package - `file_path` (string): Absolute path to a local file. Alternative to content_base64. Only one of file_path or content_base64 should be provided. - `package_name` (string) (required): Package name (alphanumeric, dots, dashes, underscores) - `package_version` (string) (required): Package version (e.g. 1.0.0) - `project_id` (string) (required): Project ID or URL-encoded path - `select` (string): Response detail selector. Use package_file to receive the published file metadata (id, size, checksums). - `status` (string): Package visibility on publish: default (publicly visible) or hidden. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_package_publish_and_link Publish a file to the Generic Package Registry and link it to a release in one call. Returns: the published file metadata and the created release asset link. See also: gitlab_package_publish, gitlab_package_publish_directory, gitlab_release_get. **Parameters:** - `content_base64` (string): Base64-encoded file content. Alternative to file_path. - `file_name` (string) (required): Name of the file within the package - `file_path` (string): Absolute path to a local file. Alternative to content_base64. - `link_name` (string): Display name of the release link. Defaults to file_name if omitted. MUST be the exact filename — never add descriptive suffixes. - `link_type` (string): Type of the release link: package, runbook, image, or other. Defaults to package. - `package_name` (string) (required): Package name (alphanumeric, dots, dashes, underscores) - `package_version` (string) (required): Package version (e.g. 1.0.0) - `project_id` (string) (required): Project ID or URL-encoded path - `status` (string): Package status: default or hidden - `tag_name` (string) (required): Tag name of the release to link the package file to Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_package_publish_directory Publish every regular file from a local directory to the Generic Package Registry. Returns: total files, total bytes, per-file results, and any per-file errors. See also: gitlab_package_publish, gitlab_package_publish_and_link, gitlab_package_list. **Parameters:** - `directory_path` (string) (required): Absolute path to a local directory whose files will be published - `include_pattern` (string): Single glob pattern to filter files within the directory (e.g. *.txt or *.tar.gz). If omitted, all regular files are included. Do not pass comma-separated filenames. - `package_name` (string) (required): Package name (alphanumeric, dots, dashes, underscores) - `package_version` (string) (required): Package version (e.g. 1.0.0) - `project_id` (string) (required): Project ID or URL-encoded path - `status` (string): Package status: default or hidden Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### pages (9 tools) #### gitlab_pages_domain_create Add a new custom Pages domain to a project. Returns: the created domain with verification code, auto-SSL flag, and certificate details. See also: gitlab_pages_domain_get, gitlab_pages_domain_update, gitlab_pages_domain_list. **Parameters:** - `auto_ssl_enabled` (boolean): Enable automatic SSL certificate provisioning - `certificate` (string): PEM-encoded SSL certificate - `domain` (string) (required): Custom domain name (e.g. example.com) - `key` (string): PEM-encoded private key for the certificate - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pages_domain_delete Remove a custom Pages domain from a project (destructive). Returns: a success confirmation naming the deleted domain. See also: gitlab_pages_domain_get, gitlab_pages_domain_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `domain` (string) (required): The Pages domain name to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pages_domain_get Get a single Pages custom domain by name. Returns: the domain with verification status and code, auto-SSL flag, enabled-until date, and certificate subject/expiration. See also: gitlab_pages_domain_list, gitlab_pages_domain_update, gitlab_pages_domain_delete. **Parameters:** - `domain` (string) (required): The Pages domain name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pages_domain_list List the custom Pages domains for a project with pagination. Returns: matching domains with verification status, auto-SSL flag, project ID, certificate details, and pagination metadata. See also: gitlab_pages_domain_get, gitlab_pages_domain_create, gitlab_pages_domain_list_all. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pages_domain_list_all List ALL GitLab Pages custom domains across the whole instance in one call (admin only). Use this instead of gitlab_pages_domain_list when you need every domain on the instance, not just those attached to a single project. Returns: all domains with verification status, auto-SSL flag, project ID, and certificate subject. See also: gitlab_pages_domain_list, gitlab_pages_domain_get, gitlab_pages_domain_create. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pages_domain_update Update an existing Pages custom domain's auto-SSL flag or certificate. Returns: the updated domain with verification status and certificate details. See also: gitlab_pages_domain_get, gitlab_pages_domain_delete, gitlab_pages_domain_list. **Parameters:** - `auto_ssl_enabled` (boolean): Enable automatic SSL certificate provisioning - `certificate` (string): PEM-encoded SSL certificate - `domain` (string) (required): The Pages domain name to update - `key` (string): PEM-encoded private key for the certificate - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pages_get Get the Pages settings for a project. Returns: the Pages URL, force-HTTPS and unique-domain flags, primary domain, and recent deployments. See also: gitlab_pages_update, gitlab_pages_unpublish, gitlab_pages_domain_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pages_unpublish Unpublish a project's Pages site (destructive). Returns: a success confirmation. See also: gitlab_pages_get, gitlab_pages_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pages_update Update the Pages settings for a project. Returns: the updated Pages settings with URL, force-HTTPS and unique-domain flags, primary domain, and deployments. See also: gitlab_pages_get, gitlab_pages_domain_create, gitlab_pages_unpublish. **Parameters:** - `pages_https_only` (boolean): Enforce HTTPS for Pages - `pages_primary_domain` (string): Primary domain for Pages - `pages_unique_domain_enabled` (boolean): Enable unique domain for Pages - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### patch (1 tool) #### gitlab_patch_job_token_access_settings Update a project's CI/CD job token access settings. Returns: a confirmation that the inbound scope setting was updated. See also: gitlab_get_job_token_access_settings, gitlab_add_project_job_token_allowlist, gitlab_add_group_job_token_allowlist. **Parameters:** - `enabled` (boolean) (required): Enable or disable the CI/CD job token scope - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### personal (6 tools) #### gitlab_personal_access_token_get Get a personal access token by ID. Use token_id=0 to retrieve the current token used for authentication. **Parameters:** - `token_id` (integer) (required): Access token ID (required, use 0 for current token) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_personal_access_token_list List personal access tokens. Filter by state, search by name, or filter by user ID (admin only). **Parameters:** - `created_after` (string): Return tokens created on or after this date (YYYY-MM-DD) - `created_before` (string): Return tokens created on or before this date (YYYY-MM-DD) - `expires_after` (string): Return tokens that expire on or after this date (YYYY-MM-DD) - `expires_before` (string): Return tokens that expire on or before this date (YYYY-MM-DD) - `last_used_after` (string): Return tokens last used on or after this date (YYYY-MM-DD) - `last_used_before` (string): Return tokens last used on or before this date (YYYY-MM-DD) - `order_by` (string): Column to order results by (e.g. created_at, expires_at, last_used_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `revoked` (boolean): Filter by revoked status: true to return only revoked tokens, false for non-revoked - `search` (string): Search by token name - `sort` (string): Sort order: created_asc, created_desc, expires_asc, expires_desc, last_used_asc, last_used_desc, name_asc, name_desc - `state` (string): Token state filter: active, inactive - `user_id` (integer): Filter by user ID (admin only) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_personal_access_token_revoke Revoke a personal access token by ID. This action cannot be undone. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `token_id` (integer) (required): Access token ID to revoke Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_personal_access_token_revoke_self Revoke the personal access token used for the current request. This action cannot be undone. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_personal_access_token_rotate Rotate a personal access token, generating a new token value. Optionally set a new expiry date. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format - `token_id` (integer) (required): Access token ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_personal_access_token_rotate_self Rotate the personal access token used for the current request. Returns the new token value. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### pipeline (30 tools) #### gitlab_pipeline_cancel Cancel a running pipeline. Returns: updated pipeline metadata reflecting the canceled status. See also: gitlab_pipeline_get, gitlab_pipeline_retry, gitlab_job_list_project. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to act on - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_create Create a new pipeline. Returns: created pipeline metadata including ID, status, and target ref. See also: gitlab_pipeline_get, gitlab_pipeline_wait, gitlab_job_list_project. **Parameters:** - `inputs` (object): Pipeline input parameters keyed by input name. Values may be string, number, boolean, or array of strings, matching the inputs declared in .gitlab-ci.yml spec:inputs. - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Branch or tag name to run the pipeline for - `variables` (array of objects): Pipeline variables to set Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pipeline_delete Delete a pipeline and all its jobs. Returns: a success status and confirmation message. See also: gitlab_pipeline_get, gitlab_pipeline_list, gitlab_pipeline_cancel. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `pipeline_id` (integer) (required): Pipeline ID to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pipeline_get Get one pipeline by ID. Returns: full pipeline metadata, status lifecycle fields, and links. See also: gitlab_pipeline_list, gitlab_pipeline_variables, gitlab_job_list_project, gitlab_pipeline_retry. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_latest Get the latest pipeline for a ref. Returns: full pipeline metadata for the most recent run. See also: gitlab_pipeline_get, gitlab_pipeline_list, gitlab_job_list_project. **Parameters:** - `created_after` (string): Return pipelines created after date (ISO 8601 format). Applies to the list fallback. - `created_before` (string): Return pipelines created before date (ISO 8601 format). Applies to the list fallback. - `name` (string): Filter by pipeline name. Applies to the list fallback. - `order_by` (string): Order by field (id, status, ref, updated_at, user_id). Applies to the list fallback. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch or tag name to filter by (defaults to the default branch) - `scope` (string): Filter by scope (running, pending, finished, branches, tags). Applies to the list fallback. - `sha` (string): Filter by commit SHA. Applies to the list fallback. - `sort` (string): Sort direction (asc, desc). Applies to the list fallback. - `source` (string): Filter by source (push, web, trigger, schedule, api, external, pipeline, chat, merge_request_event). Applies to the list fallback. - `status` (string): Filter by status (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled). Applies to the list fallback. - `updated_after` (string): Return pipelines updated after date (ISO 8601 format). Applies to the list fallback. - `updated_before` (string): Return pipelines updated before date (ISO 8601 format). Applies to the list fallback. - `username` (string): Filter by username that triggered the pipeline. Applies to the list fallback. - `yaml_errors` (boolean): Return only pipelines with YAML errors. Applies to the list fallback. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_list List project pipelines with filters and pagination. Returns: pipeline IDs, refs, statuses, source, and timing metadata. See also: gitlab_pipeline_get, gitlab_pipeline_latest, gitlab_job_list_project. **Parameters:** - `created_after` (string): Return pipelines created after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `created_before` (string): Return pipelines created before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `name` (string): Filter by pipeline name - `order_by` (string): Order by field (id, status, ref, updated_at, user_id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Filter by branch or tag name - `scope` (string): Filter by scope (running, pending, finished, branches, tags) - `sha` (string): Filter by commit SHA - `sort` (string): Sort direction (asc, desc) - `source` (string): Filter by source (push, web, trigger, schedule, api, external, pipeline, chat, merge_request_event) - `status` (string): Filter by status (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled) - `updated_after` (string): Return pipelines updated after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) - `updated_before` (string): Return pipelines updated before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) - `username` (string): Filter by username that triggered the pipeline - `yaml_errors` (boolean): Return only pipelines with YAML errors Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_retry Retry failed and canceled jobs in a pipeline. Returns: updated pipeline metadata after re-queuing jobs. See also: gitlab_pipeline_get, gitlab_pipeline_cancel, gitlab_job_list_project. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to act on - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_create Create a pipeline schedule. Returns: the created schedule with id, description, ref, cron, owner, and inputs. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_update, gitlab_pipeline_schedule_list. **Parameters:** - `active` (boolean): Whether the schedule is active (default: true) - `cron` (string) (required): Cron expression (e.g. 0 1 * * *) - `cron_timezone` (string): Cron timezone (e.g. UTC or America/New_York) - `description` (string) (required): Schedule description - `inputs` (array of objects): Pipeline inputs to seed on the schedule; each entry has name and value - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Branch or tag to run the pipeline on Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pipeline_schedule_create_variable Create a pipeline schedule variable. Returns: the created variable with key, value, and variable_type. See also: gitlab_pipeline_schedule_edit_variable, gitlab_pipeline_schedule_delete_variable. **Parameters:** - `key` (string) (required): Variable key - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID - `value` (string) (required): Variable value. Required when creating a schedule variable - `variable_type` (string): Variable type: env_var (default) or file Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pipeline_schedule_delete Delete a pipeline schedule permanently. Returns: a success confirmation. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_delete_variable Delete a pipeline schedule variable. Returns: a success confirmation naming the key. See also: gitlab_pipeline_schedule_create_variable, gitlab_pipeline_schedule_edit_variable. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `key` (string) (required): Variable key to delete - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_edit_variable Edit a pipeline schedule variable. Returns: the updated variable with key, value, and variable_type. See also: gitlab_pipeline_schedule_create_variable, gitlab_pipeline_schedule_delete_variable. **Parameters:** - `key` (string) (required): Variable key to edit - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID - `value` (string) (required): New variable value. Required when editing a schedule variable - `variable_type` (string): Variable type: env_var or file Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_get Get a single pipeline schedule by ID. Returns: the schedule with cron, ref, owner, last_pipeline, variables, and inputs. See also: gitlab_pipeline_schedule_list, gitlab_pipeline_schedule_update, gitlab_pipeline_schedule_run. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_list List pipeline schedules in a project. Returns: schedules with description, ref, cron, owner, and pagination metadata. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_create. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Filter by scope: active or inactive - `sort` (string): Sort order for keyset pagination: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_list_triggered_pipelines List pipelines triggered by a schedule. Returns: triggered pipelines with status, ref, sha, web URL, and pagination metadata. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_run. **Parameters:** - `order_by` (string): Column to order results by (e.g. id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID - `sort` (string): Sort direction for triggered pipelines: asc or desc (default asc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_run Run a pipeline schedule immediately. Returns: the schedule's current state after triggering. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_list_triggered_pipelines. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_take_ownership Take ownership of a pipeline schedule. Returns: the schedule with the caller as owner. See also: gitlab_pipeline_schedule_update, gitlab_pipeline_schedule_run. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_schedule_update Update a pipeline schedule. Returns: the updated schedule with cron, ref, owner, and inputs. See also: gitlab_pipeline_schedule_get, gitlab_pipeline_schedule_take_ownership. **Parameters:** - `active` (boolean): Enable or disable the schedule - `cron` (string): Updated cron expression - `cron_timezone` (string): Updated cron timezone - `description` (string): Updated description - `inputs` (array of objects): Pipeline inputs to set on the schedule; each entry has name, value, and optional destroy - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Updated branch or tag - `schedule_id` (integer) (required): Pipeline schedule ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_security_summary Summarize a pipeline's security scan results. Returns: per-scanner vulnerability and scanned-resource counts for the pipeline (SAST, DAST, and other report types). See also: gitlab_vulnerability_severity_count, gitlab_list_vulnerabilities. **Parameters:** - `pipeline_iid` (string) (required): Pipeline IID (internal ID within the project) - `project_path` (string) (required): Full path of the project (e.g. my-group/my-project) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_test_report Get a pipeline's full test report. Returns: total/passed/failed/skipped counts and per-suite breakdown. See also: gitlab_pipeline_test_report_summary, gitlab_pipeline_get, gitlab_job_list_project. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_test_report_summary Get a pipeline's test report summary. Returns: aggregate test totals and per-suite summaries with build IDs. See also: gitlab_pipeline_test_report, gitlab_pipeline_get, gitlab_job_list_project. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_trigger_create Create a pipeline trigger token. Returns: the created trigger with id, description, token secret, and owner. See also: gitlab_pipeline_trigger_run, gitlab_pipeline_trigger_list, gitlab_pipeline_trigger_delete. **Parameters:** - `description` (string) (required): Trigger token description - `project_id` (string) (required): Project ID or path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pipeline_trigger_delete Delete a pipeline trigger token. Returns: a success confirmation. See also: gitlab_pipeline_trigger_get, gitlab_pipeline_trigger_create. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `trigger_id` (integer) (required): Pipeline trigger ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_pipeline_trigger_get Get a single pipeline trigger token. Returns: the trigger with id, description, token, owner, and timestamps. See also: gitlab_pipeline_trigger_list, gitlab_pipeline_trigger_update, gitlab_pipeline_trigger_delete. **Parameters:** - `project_id` (string) (required): Project ID or path - `trigger_id` (integer) (required): Pipeline trigger ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_trigger_list List a project's pipeline trigger tokens. Returns: trigger tokens with id, description, owner, last-used time, and pagination metadata. See also: gitlab_pipeline_trigger_get, gitlab_pipeline_trigger_create, gitlab_pipeline_trigger_run. **Parameters:** - `order_by` (string): Field by which to order results when using keyset pagination (e.g. id). - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort order: asc or desc. Defaults to the API ordering. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_trigger_run Trigger a pipeline using a trigger token. Returns: the created pipeline with id, status, ref, sha, source, user, detailed_status, and web URL. See also: gitlab_pipeline_trigger_list, gitlab_pipeline_get. **Parameters:** - `inputs` (object): Map of pipeline input name to value (string, number, boolean, or array of strings) for inputs declared in the pipeline spec. - `project_id` (string) (required): Project ID or path - `ref` (string) (required): Branch or tag name to run pipeline on - `token` (string) (required): Pipeline trigger token - `variables` (object): Map of CI/CD variable name to value injected into the triggered pipeline. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_pipeline_trigger_update Update a pipeline trigger token's description. Returns: the updated trigger with id, description, token, and owner. See also: gitlab_pipeline_trigger_get, gitlab_pipeline_trigger_delete. **Parameters:** - `description` (string): New trigger token description - `project_id` (string) (required): Project ID or path - `trigger_id` (integer) (required): Pipeline trigger ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_update_metadata Update a pipeline's name. Returns: updated pipeline metadata reflecting the new name. See also: gitlab_pipeline_get, gitlab_pipeline_list, gitlab_pipeline_create. **Parameters:** - `name` (string) (required): New pipeline name - `pipeline_id` (integer) (required): Pipeline ID to update - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_variables List a pipeline's runtime variables. Returns: variable keys, values, and types. See also: gitlab_pipeline_get, gitlab_pipeline_create, gitlab_job_list_project. **Parameters:** - `pipeline_id` (integer) (required): Pipeline ID to retrieve - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_pipeline_wait Wait for a pipeline to reach a terminal state (success, failed, canceled, skipped, manual). Polls the pipeline status at a configurable interval and sends progress notifications. Returns the final pipeline details when done or when the timeout is reached. **Parameters:** - `fail_on_error` (boolean): Return isError when pipeline ends in failed/canceled status (default true) - `interval_seconds` (integer): Polling interval in seconds (5-60, default 10) - `pipeline_id` (integer) (required): Pipeline ID returned by pipeline.list, pipeline.get, pipeline.latest, or merge_request.pipelines; do not use merge_request_iid. - `project_id` (string) (required): Project ID or URL-encoded path - `timeout_seconds` (integer): Maximum wait time in seconds (1-3600, default 300) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### preview (2 tools) #### gitlab_preview_group_badge Preview how a group badge's link_url and image_url resolve after placeholder interpolation, without persisting it. Returns: the rendered badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_add_group_badge, gitlab_list_group_badges. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `image_url` (string) (required): Badge image URL with placeholders - `link_url` (string) (required): Badge link URL with placeholders - `name` (string): Badge name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_preview_project_badge Preview how a project badge's link_url and image_url resolve after placeholder interpolation, without persisting it. Returns: the rendered badge with id, name, link_url, image_url, rendered_link_url, rendered_image_url, and kind. See also: gitlab_add_project_badge, gitlab_list_project_badges. **Parameters:** - `image_url` (string) (required): Badge image URL with placeholders - `link_url` (string) (required): Badge link URL with placeholders - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### project (90 tools) #### gitlab_project_access_token_create Create a new project access token with specified name, scopes, access level, and optional expiry date. **Parameters:** - `access_level` (integer): Access level: 5 (Minimal access), 10 (guest), 15 (Planner, Premium/Ultimate), 20 (reporter), 25 (Security Manager, Premium/Ultimate), 30 (developer), 40 (maintainer); 50=Owner and 60=Admin are not valid for project access tokens - `description` (string): Token description - `expires_at` (string): Expiry date in YYYY-MM-DD format - `name` (string) (required): Token name - `project_id` (string) (required): Project ID or URL-encoded path - `scopes` (array of strings) (required): Token scopes: api, read_api, read_repository, write_repository, etc. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_access_token_get Get a specific project access token by its ID. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `token_id` (integer) (required): Access token ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_access_token_list List all access tokens for a GitLab project. Filter by state (active, inactive). **Parameters:** - `order_by` (string): Column to order results by (e.g. created_at, expires_at, last_used_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order: asc or desc - `state` (string): Token state filter: active, inactive Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_access_token_revoke Revoke a project access token. This action cannot be undone. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `token_id` (integer) (required): Access token ID to revoke Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_access_token_rotate Rotate a project access token, generating a new token value. Optionally set a new expiry date. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format - `project_id` (string) (required): Project ID or URL-encoded path - `token_id` (integer) (required): Access token ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_access_token_rotate_self Rotate the project access token used for the current request. Returns the new token value. **Parameters:** - `expires_at` (string): New expiry date in YYYY-MM-DD format - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_add_push_rule Add push rules to a project. Returns: the created push-rule configuration. See also: gitlab_project_get_push_rules, gitlab_project_edit_push_rule. **Parameters:** - `author_email_regex` (string): Regex to validate author email addresses - `branch_name_regex` (string): Regex to validate branch names - `commit_committer_check` (boolean): Reject commits where committer is not a project member - `commit_committer_name_check` (boolean): Reject commits where committer name does not match user name - `commit_message_negative_regex` (string): Regex that commit messages must NOT match - `commit_message_regex` (string): Regex that commit messages must match - `deny_delete_tag` (boolean): Deny tag deletion - `file_name_regex` (string): Regex for disallowed file names - `max_file_size` (integer): Maximum file size (MB). 0 means unlimited - `member_check` (boolean): Only allow commits from project members - `prevent_secrets` (boolean): Reject files that are likely to contain secrets - `project_id` (string) (required): Project ID or URL-encoded path - `reject_non_dco_commits` (boolean): Reject commits without DCO certification - `reject_unsigned_commits` (boolean): Reject commits that are not GPG signed Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_approval_config_change Change a project's approval configuration. Returns: the updated approval settings. See also: gitlab_project_approval_config_get, gitlab_project_approval_rule_create. **Parameters:** - `approvals_before_merge` (integer): Number of approvals required before merge - `disable_overriding_approvers_per_merge_request` (boolean): Prevent overriding approvers per MR - `merge_requests_author_approval` (boolean): Allow MR author to approve their own MR - `merge_requests_disable_committers_approval` (boolean): Prevent MR committers from approving - `project_id` (string) (required): Project ID or URL-encoded path - `require_password_to_approve` (boolean): Require the approver's password to approve (deprecated: use require_reauthentication_to_approve) - `require_reauthentication_to_approve` (boolean): Require reauthentication to approve - `reset_approvals_on_push` (boolean): Reset approvals when new commits are pushed - `selective_code_owner_removals` (boolean): Only remove code owner approvals when relevant files change Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_approval_config_get Get a project's approval configuration. Returns: the approval settings such as reset_approvals_on_push and author approval flags. See also: gitlab_project_approval_config_change, gitlab_project_approval_rule_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_approval_rule_create Create a project approval rule. Returns: the created rule with name, approvals_required, users, and groups. See also: gitlab_project_approval_rule_list, gitlab_project_approval_rule_update. **Parameters:** - `applies_to_all_protected_branches` (boolean): Apply this rule to all protected branches - `approvals_required` (integer) (required): Number of approvals required - `group_ids` (array of integers): Group IDs to assign as approvers - `name` (string) (required): Rule name - `project_id` (string) (required): Project ID or URL-encoded path - `protected_branch_ids` (array of integers): Protected branch IDs to scope the rule to - `report_type` (string): Report type for report-approver rules (e.g. code_coverage, license_scanning) - `rule_type` (string): Rule type (regular, code_owner) - `user_ids` (array of integers): User IDs to assign as approvers - `usernames` (array of strings): Usernames to assign as approvers Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_approval_rule_delete Delete a project approval rule. Returns: a success confirmation naming the rule and project. See also: gitlab_project_approval_rule_list, gitlab_project_approval_config_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `rule_id` (integer) (required): Approval rule ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_approval_rule_get Get a single project approval rule. Returns: the rule with name, approvals_required, users, and groups. See also: gitlab_project_approval_rule_list, gitlab_project_approval_rule_update. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `rule_id` (integer) (required): Approval rule ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_approval_rule_list List a project's approval rules. Returns: rules with name, approvals_required, eligible approvers, and groups, plus pagination metadata. See also: gitlab_project_approval_rule_get, gitlab_project_approval_rule_create. **Parameters:** - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Keyset sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_approval_rule_update Update a project approval rule. Returns: the updated rule with name, approvals_required, users, and groups. See also: gitlab_project_approval_rule_get, gitlab_project_approval_rule_delete. **Parameters:** - `applies_to_all_protected_branches` (boolean): Apply this rule to all protected branches - `approvals_required` (integer): Updated number of approvals required - `group_ids` (array of integers): Updated group IDs to assign as approvers - `name` (string): Updated rule name - `project_id` (string) (required): Project ID or URL-encoded path - `protected_branch_ids` (array of integers): Updated protected branch IDs - `rule_id` (integer) (required): Approval rule ID - `user_ids` (array of integers): Updated user IDs to assign as approvers - `usernames` (array of strings): Updated usernames to assign as approvers Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_archive Archive a project (read-only). Returns: the project with archived set to true. See also: gitlab_project_unarchive, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_create Create a new GitLab project. Returns: the created project with id, path_with_namespace, default_branch, visibility, and web URL. See also: gitlab_project_get, gitlab_project_update, gitlab_project_create_for_user. **Parameters:** - `allow_merge_on_skipped_pipeline` (boolean): Allow merge when pipeline is skipped - `analytics_access_level` (string): Analytics access level (disabled, private, enabled) - `approvals_before_merge` (integer): Number of approvals required before merge (deprecated: use Merge Request Approvals API) - `auto_cancel_pending_pipelines` (string): Auto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled. - `auto_devops_deploy_strategy` (string): Auto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays). - `auto_devops_enabled` (boolean): Enable Auto DevOps for the project - `autoclose_referenced_issues` (boolean): Auto-close referenced issues on merge - `build_coverage_regex` (string): Regex used to extract test coverage from job logs - `build_git_strategy` (string): Git strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time). - `build_timeout` (integer): Build timeout in seconds - `builds_access_level` (string): CI/CD builds access level (disabled, private, enabled) - `ci_config_path` (string): Custom CI/CD configuration file path - `ci_forward_deployment_enabled` (boolean): Enable CI/CD forward deployment (deprecated: no longer supported in recent versions) - `cicd_catalog_enabled` (boolean): Publish the project as a CI/CD catalog resource - `container_expiration_policy_attributes` (object): Container registry cleanup policy attributes - `container_registry_access_level` (string): Container registry access level (disabled, private, enabled) - `container_registry_enabled` (boolean): Enable container registry (deprecated: use container_registry_access_level) - `default_branch` (string): Default branch name - `description` (string): Project description - `emails_disabled` (boolean): Disable email notifications (deprecated: use emails_enabled) - `emails_enabled` (boolean): Enable email notifications - `enforce_auth_checks_on_uploads` (boolean): Enforce authorization checks on uploads - `environments_access_level` (string): Environments access level (disabled, private, enabled) - `external_authorization_classification_label` (string): External authorization classification label - `feature_flags_access_level` (string): Feature flags access level (disabled, private, enabled) - `forking_access_level` (string): Forking access level (disabled, private, enabled) - `group_runners_enabled` (boolean): Enable group runners - `group_with_project_templates_id` (integer): Group ID that provides the custom project templates - `import_url` (string): URL to import repository from - `infrastructure_access_level` (string): Infrastructure access level (disabled, private, enabled) - `initialize_with_readme` (boolean): Initialize with a README - `issue_branch_template` (string): Template for branch names created from issues - `issues_access_level` (string): Issues access level (disabled, private, enabled) - `issues_enabled` (boolean): Enable issues feature (deprecated: use issues_access_level) - `issues_template` (string): Default issue description template (deprecated: no longer supported in recent versions) - `jobs_enabled` (boolean): Enable CI/CD jobs (deprecated: use builds_access_level) - `lfs_enabled` (boolean): Enable Git LFS - `merge_commit_template` (string): Template for merge commit messages - `merge_method` (string): Merge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit). - `merge_pipelines_enabled` (boolean): Enable merged results pipelines - `merge_request_title_regex` (string): Regex that MR titles must match - `merge_request_title_regex_description` (string): Human-readable description for the MR title regex - `merge_requests_access_level` (string): Merge requests access level (disabled, private, enabled) - `merge_requests_enabled` (boolean): Enable merge requests feature (deprecated: use merge_requests_access_level) - `merge_requests_template` (string): Default merge request description template (deprecated: no longer supported in recent versions) - `merge_trains_enabled` (boolean): Enable merge trains - `merge_trains_skip_train_allowed` (boolean): Allow skipping the merge train - `mirror` (boolean): Enable pull mirroring from import_url - `mirror_trigger_builds` (boolean): Trigger pipelines for mirror updates - `model_experiments_access_level` (string): Model experiments access level (disabled, private, enabled) - `model_registry_access_level` (string): Model registry access level (disabled, private, enabled) - `monitor_access_level` (string): Monitor access level (disabled, private, enabled) - `mr_default_title_template` (string): Template for default merge request titles - `name` (string) (required): Project name - `namespace_id` (integer): Namespace ID (defaults to personal namespace) - `only_allow_merge_if_all_discussions_are_resolved` (boolean): Only allow merge when all discussions are resolved - `only_allow_merge_if_all_status_checks_passed` (boolean): Only allow merge when all external status checks pass - `only_allow_merge_if_pipeline_succeeds` (boolean): Only allow merge when pipeline succeeds - `operations_access_level` (string): Operations access level (disabled, private, enabled) - `package_registry_access_level` (string): Package registry access level (disabled, private, enabled) - `packages_enabled` (boolean): Enable packages feature (deprecated: use package_registry_access_level) - `pages_access_level` (string): Pages access level (disabled, private, enabled, public) - `path` (string): Project path slug (defaults from name) - `printing_merge_request_link_enabled` (boolean): Show the create-merge-request link after pushing - `protect_merge_request_pipelines` (boolean): Prevent merge request pipeline settings from being modified by users with lower permissions - `public_builds` (boolean): Enable public access to pipelines (deprecated: use public_jobs) - `public_jobs` (boolean): Enable public access to pipelines - `releases_access_level` (string): Releases access level (disabled, private, enabled) - `remove_source_branch_after_merge` (boolean): Remove source branch after merge by default - `repository_access_level` (string): Repository access level (disabled, private, enabled) - `repository_storage` (string): Repository storage shard name (admin only) - `request_access_enabled` (boolean): Allow users to request access - `requirements_access_level` (string): Requirements access level (disabled, private, enabled) - `resolve_outdated_diff_discussions` (boolean): Auto-resolve outdated diff discussions - `resource_group_default_process_mode` (string): Default process mode for resource groups: unordered (run in parallel), oldest_first, or newest_first. - `reviewer_assignment_strategy` (string): Reviewer assignment strategy for merge requests (disabled, code_owners, dap_powered) - `security_and_compliance_access_level` (string): Security and compliance access level (disabled, private, enabled) - `service_desk_enabled` (boolean): Enable Service Desk - `shared_runners_enabled` (boolean): Enable shared runners - `show_default_award_emojis` (boolean): Show default award emojis on issues/MRs - `snippets_access_level` (string): Snippets access level (disabled, private, enabled) - `snippets_enabled` (boolean): Enable snippets feature (deprecated: use snippets_access_level) - `squash_commit_template` (string): Template for squash commit messages - `squash_option` (string): Squash commits on merge: never (not allowed), always (always squash), default_on (squash by default, overridable per MR), or default_off (no squash by default, overridable per MR). - `suggestion_commit_message` (string): Default commit message for suggestions - `tag_list` (array of strings): Project tags (deprecated: use topics) - `template_name` (string): Built-in project template name to use - `template_project_id` (integer): Custom project template ID to use - `topics` (array of strings): Topic tags for the project - `use_custom_template` (boolean): Use a custom group/instance project template - `visibility` (string): Visibility level (private, internal, public) - `wiki_access_level` (string): Wiki access level (disabled, private, enabled) - `wiki_enabled` (boolean): Enable wiki feature (deprecated: use wiki_access_level) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_create_for_user Create a project on behalf of a user (admin). Returns: the created project with id, owner namespace, visibility, and web URL. See also: gitlab_project_create, gitlab_project_get. **Parameters:** - `allow_merge_on_skipped_pipeline` (boolean): Allow merge when pipeline is skipped - `analytics_access_level` (string): Analytics access level (disabled, private, enabled) - `approvals_before_merge` (integer): Number of approvals required before merge (deprecated: use Merge Request Approvals API) - `auto_cancel_pending_pipelines` (string): Auto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled. - `auto_devops_deploy_strategy` (string): Auto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays). - `auto_devops_enabled` (boolean): Enable Auto DevOps for the project - `autoclose_referenced_issues` (boolean): Auto-close referenced issues on merge - `build_coverage_regex` (string): Regex used to extract test coverage from job logs - `build_git_strategy` (string): Git strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time). - `build_timeout` (integer): Build timeout in seconds - `builds_access_level` (string): CI/CD builds access level (disabled, private, enabled) - `ci_config_path` (string): Custom CI/CD configuration file path - `ci_forward_deployment_enabled` (boolean): Enable CI/CD forward deployment (deprecated: no longer supported in recent versions) - `cicd_catalog_enabled` (boolean): Publish the project as a CI/CD catalog resource - `container_expiration_policy_attributes` (object): Container registry cleanup policy attributes - `container_registry_access_level` (string): Container registry access level (disabled, private, enabled) - `container_registry_enabled` (boolean): Enable container registry (deprecated: use container_registry_access_level) - `default_branch` (string): Default branch name - `description` (string): Project description - `emails_disabled` (boolean): Disable email notifications (deprecated: use emails_enabled) - `emails_enabled` (boolean): Enable email notifications - `enforce_auth_checks_on_uploads` (boolean): Enforce authorization checks on uploads - `environments_access_level` (string): Environments access level (disabled, private, enabled) - `external_authorization_classification_label` (string): External authorization classification label - `feature_flags_access_level` (string): Feature flags access level (disabled, private, enabled) - `forking_access_level` (string): Forking access level (disabled, private, enabled) - `group_runners_enabled` (boolean): Enable group runners - `group_with_project_templates_id` (integer): Group ID that provides the custom project templates - `import_url` (string): URL to import repository from - `infrastructure_access_level` (string): Infrastructure access level (disabled, private, enabled) - `initialize_with_readme` (boolean): Initialize with a README - `issue_branch_template` (string): Template for branch names created from issues - `issues_access_level` (string): Issues access level (disabled, private, enabled) - `issues_enabled` (boolean): Enable issues feature (deprecated: use issues_access_level) - `issues_template` (string): Default issue description template (deprecated: no longer supported in recent versions) - `jobs_enabled` (boolean): Enable CI/CD jobs (deprecated: use builds_access_level) - `lfs_enabled` (boolean): Enable Git LFS - `merge_commit_template` (string): Template for merge commit messages - `merge_method` (string): Merge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit). - `merge_pipelines_enabled` (boolean): Enable merged results pipelines - `merge_request_title_regex` (string): Regex that MR titles must match - `merge_request_title_regex_description` (string): Human-readable description for the MR title regex - `merge_requests_access_level` (string): Merge requests access level (disabled, private, enabled) - `merge_requests_enabled` (boolean): Enable merge requests feature (deprecated: use merge_requests_access_level) - `merge_requests_template` (string): Default merge request description template (deprecated: no longer supported in recent versions) - `merge_trains_enabled` (boolean): Enable merge trains - `merge_trains_skip_train_allowed` (boolean): Allow skipping the merge train - `mirror` (boolean): Enable pull mirroring from import_url - `mirror_trigger_builds` (boolean): Trigger pipelines for mirror updates - `model_experiments_access_level` (string): Model experiments access level (disabled, private, enabled) - `model_registry_access_level` (string): Model registry access level (disabled, private, enabled) - `monitor_access_level` (string): Monitor access level (disabled, private, enabled) - `mr_default_title_template` (string): Template for default merge request titles - `name` (string) (required): Project name - `namespace_id` (integer): Namespace ID (defaults to personal namespace) - `only_allow_merge_if_all_discussions_are_resolved` (boolean): Only allow merge when all discussions are resolved - `only_allow_merge_if_all_status_checks_passed` (boolean): Only allow merge when all external status checks pass - `only_allow_merge_if_pipeline_succeeds` (boolean): Only allow merge when pipeline succeeds - `operations_access_level` (string): Operations access level (disabled, private, enabled) - `package_registry_access_level` (string): Package registry access level (disabled, private, enabled) - `packages_enabled` (boolean): Enable packages feature (deprecated: use package_registry_access_level) - `pages_access_level` (string): Pages access level (disabled, private, enabled, public) - `path` (string): Project path slug (defaults from name) - `printing_merge_request_link_enabled` (boolean): Show the create-merge-request link after pushing - `protect_merge_request_pipelines` (boolean): Prevent merge request pipeline settings from being modified by users with lower permissions - `public_builds` (boolean): Enable public access to pipelines (deprecated: use public_jobs) - `public_jobs` (boolean): Enable public access to pipelines - `releases_access_level` (string): Releases access level (disabled, private, enabled) - `remove_source_branch_after_merge` (boolean): Remove source branch after merge by default - `repository_access_level` (string): Repository access level (disabled, private, enabled) - `repository_storage` (string): Repository storage shard name (admin only) - `request_access_enabled` (boolean): Allow users to request access - `requirements_access_level` (string): Requirements access level (disabled, private, enabled) - `resolve_outdated_diff_discussions` (boolean): Auto-resolve outdated diff discussions - `resource_group_default_process_mode` (string): Default process mode for resource groups: unordered (run in parallel), oldest_first, or newest_first. - `reviewer_assignment_strategy` (string): Reviewer assignment strategy for merge requests (disabled, code_owners, dap_powered) - `security_and_compliance_access_level` (string): Security and compliance access level (disabled, private, enabled) - `service_desk_enabled` (boolean): Enable Service Desk - `shared_runners_enabled` (boolean): Enable shared runners - `show_default_award_emojis` (boolean): Show default award emojis on issues/MRs - `snippets_access_level` (string): Snippets access level (disabled, private, enabled) - `snippets_enabled` (boolean): Enable snippets feature (deprecated: use snippets_access_level) - `squash_commit_template` (string): Template for squash commit messages - `squash_option` (string): Squash commits on merge: never (not allowed), always (always squash), default_on (squash by default, overridable per MR), or default_off (no squash by default, overridable per MR). - `suggestion_commit_message` (string): Default commit message for suggestions - `tag_list` (array of strings): Project tags (deprecated: use topics) - `template_name` (string): Built-in project template name to use - `template_project_id` (integer): Custom project template ID to use - `topics` (array of strings): Topic tags for the project - `use_custom_template` (boolean): Use a custom group/instance project template - `user_id` (integer) (required): Target user ID who will own the project - `visibility` (string): Visibility level (private, internal, public) - `wiki_access_level` (string): Wiki access level (disabled, private, enabled) - `wiki_enabled` (boolean): Enable wiki feature (deprecated: use wiki_access_level) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_create_fork_relation Create a fork relationship to an upstream project. Returns: a confirmation of the new relation. See also: gitlab_project_delete_fork_relation, gitlab_project_fork. **Parameters:** - `forked_from_id` (integer) (required): ID of the project to set as the fork source - `project_id` (string) (required): Project ID or URL-encoded path of the forked project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_create_target_branch_rule Create a target branch rule. Returns: the created rule with id, source-branch name pattern, target_branch, and created_at. See also: gitlab_project_list_target_branch_rules, gitlab_project_delete_target_branch_rule. **Parameters:** - `name` (string) (required): Source branch name or wildcard pattern that triggers the rule (e.g. release/*) - `project_id` (string) (required): Numeric project ID that owns the rule. The create mutation requires a numeric ID - `target_branch` (string) (required): Default target branch merge requests opened from matching source branches will target Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_delete Delete a project. Returns: a deletion status; on instances with delayed deletion the project is marked for deletion. See also: gitlab_project_restore, gitlab_project_archive. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `full_path` (string): Full path of the project to confirm permanent removal (required when permanently_remove is true) - `permanently_remove` (boolean): If true, immediately and permanently delete the project bypassing delayed deletion. Requires admin permissions on some GitLab instances. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_delete_fork_relation Remove a project's fork relationship. Returns: a success confirmation naming the project. See also: gitlab_project_create_fork_relation, gitlab_project_fork. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_delete_push_rule Delete a project's push rules. Returns: a success confirmation naming the project. See also: gitlab_project_get_push_rules, gitlab_project_add_push_rule. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_delete_shared_group Remove a group share from a project. Returns: a success confirmation naming the group and project. See also: gitlab_project_share_with_group, gitlab_project_list_invited_groups. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (integer) (required): Group ID to remove from project sharing - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_delete_target_branch_rule Delete a target branch rule. Returns: a success confirmation naming the rule. See also: gitlab_project_list_target_branch_rules, gitlab_project_create_target_branch_rule. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `rule_id` (integer) (required): Target branch rule ID to delete (from the list action) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_download_avatar Download a project's avatar. Returns: the avatar image content. See also: gitlab_project_upload_avatar, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_edit_push_rule Edit a project's push rules. Returns: the updated push-rule configuration. See also: gitlab_project_get_push_rules, gitlab_project_add_push_rule. **Parameters:** - `author_email_regex` (string): Regex to validate author email addresses - `branch_name_regex` (string): Regex to validate branch names - `commit_committer_check` (boolean): Reject commits where committer is not a project member - `commit_committer_name_check` (boolean): Reject commits where committer name does not match user name - `commit_message_negative_regex` (string): Regex that commit messages must NOT match - `commit_message_regex` (string): Regex that commit messages must match - `deny_delete_tag` (boolean): Deny tag deletion - `file_name_regex` (string): Regex for disallowed file names - `max_file_size` (integer): Maximum file size (MB). 0 means unlimited - `member_check` (boolean): Only allow commits from project members - `prevent_secrets` (boolean): Reject files that are likely to contain secrets - `project_id` (string) (required): Project ID or URL-encoded path - `reject_non_dco_commits` (boolean): Reject commits without DCO certification - `reject_unsigned_commits` (boolean): Reject commits that are not GPG signed Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_event_list List a project's visible activity events. Returns: each event with action_name, target type and IID, push_data, embedded note with author, data (ref, commits, repository), author object, created timestamp, and pagination metadata. See also: gitlab_user_contribution_event_list, gitlab_project_get. **Parameters:** - `action` (string): Filter by action type (created, updated, closed, reopened, pushed, commented, merged, joined, left, destroyed, expired) - `after` (string): Return events after this date (YYYY-MM-DD) - `before` (string): Return events before this date (YYYY-MM-DD) - `order_by` (string): Column by which to order keyset-paginated results (id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order (asc or desc, default desc) - `target_type` (string): Filter by target type (issue, milestone, merge_request, note, project, snippet, user) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_fork Fork a project. Returns: the new fork with id, path_with_namespace, forked_from_project, and web URL. See also: gitlab_project_list_forks, gitlab_project_create_fork_relation. **Parameters:** - `branches` (string): Branches to fork (empty=all) - `description` (string): Description for the forked project - `mr_default_target_self` (boolean): MR default target is the fork itself instead of upstream - `name` (string): Name for the forked project - `namespace` (string): Namespace ID or path to fork into (deprecated: use namespace_id or namespace_path) - `namespace_id` (integer): Namespace ID to fork into - `namespace_path` (string): Namespace path to fork into - `path` (string): Path slug for the forked project - `project_id` (string) (required): Source project ID or URL-encoded path - `visibility` (string): Visibility level (private, internal, public) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_get Get a single project by ID or namespace path. Returns: project metadata including id, path_with_namespace, default_branch, visibility, and web URL. See also: gitlab_project_update, gitlab_project_archive, gitlab_project_delete. **Parameters:** - `license` (boolean): Include license information in response - `project_id` (string) (required): Project ID or URL-encoded path (e.g. 'user/repo' or 42) - `statistics` (boolean): Include project statistics (commit count, storage sizes) - `with_custom_attributes` (boolean): Include custom attributes in response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_get_push_rules Get a project's push rules. Returns: the singleton push-rule configuration such as commit_message_regex and reject_unsigned_commits. See also: gitlab_project_add_push_rule, gitlab_project_edit_push_rule. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_add Add a webhook to a project. Returns: the created webhook with id, URL, and enabled events. See also: gitlab_project_hook_list, gitlab_project_hook_test. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy (wildcard, regex, all_branches) - `confidential_issues_events` (boolean): Trigger on confidential issue events - `confidential_note_events` (boolean): Trigger on confidential note events - `custom_headers` (array of objects): Custom HTTP headers sent with each webhook request (key/value pairs) - `custom_webhook_template` (string): Custom webhook payload template - `deployment_events` (boolean): Trigger on deployment events - `description` (string): Webhook description - `emoji_events` (boolean): Trigger on emoji events - `enable_ssl_verification` (boolean): Enable SSL verification for webhook - `feature_flag_events` (boolean): Trigger on feature flag events - `issues_events` (boolean): Trigger on issue events - `job_events` (boolean): Trigger on CI job events - `merge_requests_events` (boolean): Trigger on merge request events - `milestone_events` (boolean): Trigger on milestone events - `name` (string): Webhook name - `note_events` (boolean): Trigger on note/comment events - `pipeline_events` (boolean): Trigger on pipeline events - `project_id` (string) (required): Project ID or URL-encoded path - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events - `releases_events` (boolean): Trigger on release events - `resource_access_token_events` (boolean): Trigger on resource access token events - `resource_deploy_token_events` (boolean): Trigger on resource deploy token events - `signing_token` (string): Write-only signing token for webhook signature validation - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Secret token for validation - `url` (string) (required): Webhook URL - `vulnerability_events` (boolean): Trigger on vulnerability events - `wiki_page_events` (boolean): Trigger on wiki page events Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_hook_delete Delete a project webhook. Returns: a success confirmation naming the webhook and project. See also: gitlab_project_hook_list, gitlab_project_hook_add. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `hook_id` (integer) (required): Webhook ID to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_hook_delete_custom_header Delete a custom header from a project webhook. Returns: a success confirmation naming the header and webhook. See also: gitlab_project_hook_set_custom_header, gitlab_project_hook_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): Custom header key name to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_hook_delete_url_variable Delete a URL variable from a project webhook. Returns: a success confirmation naming the variable and webhook. See also: gitlab_project_hook_set_url_variable, gitlab_project_hook_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): URL variable key name to delete - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_hook_edit Edit a project webhook. Returns: the updated webhook with URL and enabled events. See also: gitlab_project_hook_get, gitlab_project_hook_test. **Parameters:** - `branch_filter_strategy` (string): Branch filter strategy (wildcard, regex, all_branches) - `confidential_issues_events` (boolean): Trigger on confidential issue events - `confidential_note_events` (boolean): Trigger on confidential note events - `custom_headers` (array of objects): Custom HTTP headers sent with each webhook request (key/value pairs) - `custom_webhook_template` (string): Custom webhook payload template - `deployment_events` (boolean): Trigger on deployment events - `description` (string): Webhook description - `emoji_events` (boolean): Trigger on emoji events - `enable_ssl_verification` (boolean): Enable SSL verification for webhook - `feature_flag_events` (boolean): Trigger on feature flag events - `hook_id` (integer) (required): Webhook ID to edit - `issues_events` (boolean): Trigger on issue events - `job_events` (boolean): Trigger on CI job events - `merge_requests_events` (boolean): Trigger on merge request events - `milestone_events` (boolean): Trigger on milestone events - `name` (string): Webhook name - `note_events` (boolean): Trigger on note/comment events - `pipeline_events` (boolean): Trigger on pipeline events - `project_id` (string) (required): Project ID or URL-encoded path - `push_events` (boolean): Trigger on push events - `push_events_branch_filter` (string): Branch filter for push events - `releases_events` (boolean): Trigger on release events - `resource_access_token_events` (boolean): Trigger on resource access token events - `resource_deploy_token_events` (boolean): Trigger on resource deploy token events - `signing_token` (string): Write-only signing token for webhook signature validation - `tag_push_events` (boolean): Trigger on tag push events - `token` (string): Secret token for validation - `url` (string): Updated webhook URL - `vulnerability_events` (boolean): Trigger on vulnerability events - `wiki_page_events` (boolean): Trigger on wiki page events Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_get Get a single project webhook. Returns: the webhook with URL, enabled events, and SSL settings. See also: gitlab_project_hook_list, gitlab_project_hook_edit. **Parameters:** - `hook_id` (integer) (required): Webhook ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_list List a project's webhooks. Returns: webhooks with URL, enabled events, and SSL settings, plus pagination metadata. See also: gitlab_project_hook_get, gitlab_project_hook_add. **Parameters:** - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Keyset sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_set_custom_header Set a custom header on a project webhook. Returns: a success confirmation naming the header and webhook. See also: gitlab_project_hook_delete_custom_header, gitlab_project_hook_get. **Parameters:** - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): Custom header key name - `project_id` (string) (required): Project ID or URL-encoded path - `value` (string) (required): Custom header value Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_set_url_variable Set a URL variable on a project webhook. Returns: a success confirmation naming the variable and webhook. See also: gitlab_project_hook_delete_url_variable, gitlab_project_hook_get. **Parameters:** - `hook_id` (integer) (required): Webhook ID - `key` (string) (required): URL variable key name — letters and underscores only; GitLab rejects keys containing digits - `project_id` (string) (required): Project ID or URL-encoded path - `value` (string) (required): URL variable value — must be non-empty Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_hook_test Trigger a test event for a project webhook. Returns: a confirmation that the test event was fired. See also: gitlab_project_hook_get, gitlab_project_hook_edit. **Parameters:** - `event` (string) (required): Event type to trigger (push_events, issues_events, merge_requests_events, tag_push_events, note_events, job_events, pipeline_events, wiki_page_events, releases_events, emoji_events) - `hook_id` (integer) (required): Webhook ID to test - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_invite Invite a user to a project by email or user ID with an access level. Returns: an invitation result with status and per-email messages. See also: gitlab_project_invite_list_pending, gitlab_project_member_add, gitlab_access_request_request_project. **Parameters:** - `access_level` (integer) (required): Access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `email` (string): Email address to invite (either email or user_id required) - `expires_at` (string): Expiration date for the invitation (YYYY-MM-DD) - `id` (string): Project ID or URL-encoded path sent in the request body (mirrors the GitLab id parameter; usually equal to project_id) - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer): User ID to invite (either email or user_id required) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_invite_list_pending List a project's pending invitations. Returns: pending invitations with invite email, access level, creator, creation and expiry dates, plus pagination metadata. See also: gitlab_project_invite, gitlab_project_members_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `query` (string): Filter invitations by email or name - `sort` (string): Sort order for keyset-paginated results: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_languages Get a project's detected languages. Returns: language names with their percentage of the codebase. See also: gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list List projects accessible to the user with filtering and pagination. Returns: projects with namespace, visibility, last_activity_at, and pagination metadata. See also: gitlab_project_get, gitlab_project_list_user_projects. **Parameters:** - `active` (boolean): Limit to active (non-archived, non-pending-deletion) projects - `archived` (boolean): Filter by archived status (true=only archived, false=only active) - `custom_attributes` (object): Filter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `id_after` (integer): Return projects with ID greater than this value (keyset pagination) - `id_before` (integer): Return projects with ID less than this value (keyset pagination) - `imported` (boolean): Limit to projects imported from an external source by the current user - `include_hidden` (boolean): Include hidden projects in results - `include_pending_delete` (boolean): Include projects that are marked/scheduled for deletion. Default false. - `last_activity_after` (string): Return projects with last activity after date (ISO 8601 format) - `last_activity_before` (string): Return projects with last activity before date (ISO 8601 format) - `membership` (boolean): Limit to projects where current user is a member - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Order projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count. - `owned` (boolean): Limit to projects explicitly owned by the current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_checksum_failed` (boolean): Limit to projects where the repository checksum calculation failed (admin only) - `repository_storage` (string): Limit to projects on the given repository storage shard (admin only) - `search` (string): Search query for project name - `search_namespaces` (boolean): Include namespace in search - `simple` (boolean): Return only limited fields (faster for large result sets) - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to projects starred by the current user - `statistics` (boolean): Include project statistics in response - `topic` (string): Filter by topic name - `visibility` (string): Filter by visibility (private, internal, public) - `wiki_checksum_failed` (boolean): Limit to projects where the wiki checksum calculation failed (admin only) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `with_issues_enabled` (boolean): Filter by projects with issues feature enabled - `with_merge_requests_enabled` (boolean): Filter by projects with merge requests enabled - `with_programming_language` (string): Filter by programming language name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_forks List a project's forks. Returns: forked projects with namespace, visibility, and pagination metadata. See also: gitlab_project_fork, gitlab_project_get. **Parameters:** - `active` (boolean): Limit to active (non-archived, non-pending-deletion) forks - `archived` (boolean): Filter by archived status (true=only archived, false=only active) - `custom_attributes` (object): Filter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `id_after` (integer): Return forks with ID greater than this value (keyset pagination) - `id_before` (integer): Return forks with ID less than this value (keyset pagination) - `imported` (boolean): Limit to forks imported from an external source by the current user - `include_hidden` (boolean): Include hidden forks in results - `include_pending_delete` (boolean): Include forks marked/scheduled for deletion. Default false. - `last_activity_after` (string): Return forks with last activity after date (ISO 8601 format) - `last_activity_before` (string): Return forks with last activity before date (ISO 8601 format) - `membership` (boolean): Limit to forks where the current user is a member - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Order projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count. - `owned` (boolean): Limit to forks owned by the current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `repository_checksum_failed` (boolean): Limit to forks where the repository checksum calculation failed (admin only) - `repository_storage` (string): Limit to forks on the given repository storage shard (admin only) - `search` (string): Search query for fork name - `search_namespaces` (boolean): Include namespace in search - `simple` (boolean): Return only limited fields (faster for large result sets) - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to forks starred by the current user - `statistics` (boolean): Include project statistics in response - `topic` (string): Filter by topic name - `visibility` (string): Filter by visibility (private, internal, public) - `wiki_checksum_failed` (boolean): Limit to forks where the wiki checksum calculation failed (admin only) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `with_issues_enabled` (boolean): Filter by forks with issues feature enabled - `with_merge_requests_enabled` (boolean): Filter by forks with merge requests enabled - `with_programming_language` (string): Filter by programming language name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_groups List a project's associated groups. Returns: groups with id, full_path, and full_name, plus pagination metadata. See also: gitlab_project_list_invited_groups, gitlab_group_get. **Parameters:** - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search by group name - `shared_min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `shared_visible_only` (boolean): Only show shared groups visible to the current user - `skip_groups` (array of integers): Array of group IDs to exclude - `sort` (string): Keyset sort direction (asc, desc) - `with_shared` (boolean): Include shared groups (default true) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_invited_groups List groups invited to a project. Returns: invited groups with id, full_path, and full_name, plus pagination metadata. See also: gitlab_project_share_with_group, gitlab_project_list_groups. **Parameters:** - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `relation` (array of strings): Filter by group relation to the project (e.g. direct, inherited) - `search` (string): Search by group name - `sort` (string): Keyset sort direction (asc, desc) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_starrers List a project's starrers. Returns: users with their starred_since date, plus pagination metadata. See also: gitlab_project_star, gitlab_project_list_user_starred. **Parameters:** - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search by name or username - `sort` (string): Keyset sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_target_branch_rules List a project's target branch rules. Returns: each rule with id, source-branch name pattern, target_branch, and created_at. See also: gitlab_project_create_target_branch_rule, gitlab_project_delete_target_branch_rule. **Parameters:** - `project_id` (string) (required): Full project path (namespace/project). The target branch rules GraphQL query requires the full path and does not accept a numeric ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_user_contributed List projects a user contributed to. Returns: projects with namespace, visibility, and pagination metadata. See also: gitlab_project_list_user_projects, gitlab_project_list_user_starred. **Parameters:** - `active` (boolean): Limit to active (non-archived, non-pending-deletion) projects - `archived` (boolean): Filter by archived status (true=only archived, false=only active) - `custom_attributes` (object): Filter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `id_after` (integer): Return projects with ID greater than this value (keyset pagination) - `id_before` (integer): Return projects with ID less than this value (keyset pagination) - `imported` (boolean): Limit to projects imported from an external source by the current user - `include_hidden` (boolean): Include hidden projects in results - `include_pending_delete` (boolean): Include projects marked/scheduled for deletion. Default false. - `last_activity_after` (string): Return projects with last activity after date (ISO 8601 format) - `last_activity_before` (string): Return projects with last activity before date (ISO 8601 format) - `membership` (boolean): Limit to projects where the current user is a member - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Order projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count. - `owned` (boolean): Limit to projects explicitly owned by the current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_checksum_failed` (boolean): Limit to projects where the repository checksum calculation failed (admin only) - `repository_storage` (string): Limit to projects on the given repository storage shard (admin only) - `search` (string): Search query for project name - `search_namespaces` (boolean): Include namespace in search - `simple` (boolean): Return only limited fields (faster) - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to projects starred by the current user - `statistics` (boolean): Include project statistics in response - `topic` (string): Filter by topic name - `user_id` (string) (required): User ID or username - `visibility` (string): Filter by visibility (private, internal, public) - `wiki_checksum_failed` (boolean): Limit to projects where the wiki checksum calculation failed (admin only) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `with_issues_enabled` (boolean): Filter by projects with issues feature enabled - `with_merge_requests_enabled` (boolean): Filter by projects with merge requests enabled - `with_programming_language` (string): Filter by programming language name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_user_projects List a user's owned projects. Returns: projects with namespace, visibility, and pagination metadata. See also: gitlab_project_list_user_contributed, gitlab_project_list_user_starred. **Parameters:** - `active` (boolean): Limit to active (non-archived, non-pending-deletion) projects - `archived` (boolean): Filter by archived status (true=only archived, false=only active) - `custom_attributes` (object): Filter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `id_after` (integer): Return projects with ID greater than this value (keyset pagination) - `id_before` (integer): Return projects with ID less than this value (keyset pagination) - `imported` (boolean): Limit to projects imported from an external source by the current user - `include_hidden` (boolean): Include hidden projects in results - `include_pending_delete` (boolean): Include projects marked/scheduled for deletion. Default false. - `last_activity_after` (string): Return projects with last activity after date (ISO 8601 format) - `last_activity_before` (string): Return projects with last activity before date (ISO 8601 format) - `membership` (boolean): Limit to projects where the current user is a member - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Order projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count. - `owned` (boolean): Limit to projects explicitly owned by the current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_checksum_failed` (boolean): Limit to projects where the repository checksum calculation failed (admin only) - `repository_storage` (string): Limit to projects on the given repository storage shard (admin only) - `search` (string): Search query for project name - `search_namespaces` (boolean): Include namespace in search - `simple` (boolean): Return only limited fields (faster) - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to projects starred by the current user - `statistics` (boolean): Include project statistics in response - `topic` (string): Filter by topic name - `user_id` (string) (required): User ID or username - `visibility` (string): Filter by visibility (private, internal, public) - `wiki_checksum_failed` (boolean): Limit to projects where the wiki checksum calculation failed (admin only) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `with_issues_enabled` (boolean): Filter by projects with issues feature enabled - `with_merge_requests_enabled` (boolean): Filter by projects with merge requests enabled - `with_programming_language` (string): Filter by programming language name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_user_starred List projects a user starred. Returns: projects with namespace, visibility, and pagination metadata. See also: gitlab_project_list_user_projects, gitlab_project_list_starrers. **Parameters:** - `active` (boolean): Limit to active (non-archived, non-pending-deletion) projects - `archived` (boolean): Filter by archived status (true=only archived, false=only active) - `custom_attributes` (object): Filter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned - `id_after` (integer): Return projects with ID greater than this value (keyset pagination) - `id_before` (integer): Return projects with ID less than this value (keyset pagination) - `imported` (boolean): Limit to projects imported from an external source by the current user - `include_hidden` (boolean): Include hidden projects in results - `include_pending_delete` (boolean): Include projects marked/scheduled for deletion. Default false. - `last_activity_after` (string): Return projects with last activity after date (ISO 8601 format) - `last_activity_before` (string): Return projects with last activity before date (ISO 8601 format) - `membership` (boolean): Limit to projects where the current user is a member - `min_access_level` (integer): Filter by minimum access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `order_by` (string): Order projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count. - `owned` (boolean): Limit to projects explicitly owned by the current user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_checksum_failed` (boolean): Limit to projects where the repository checksum calculation failed (admin only) - `repository_storage` (string): Limit to projects on the given repository storage shard (admin only) - `search` (string): Search query for project name - `search_namespaces` (boolean): Include namespace in search - `simple` (boolean): Return only limited fields (faster) - `sort` (string): Sort direction (asc, desc) - `starred` (boolean): Limit to projects starred by the current user - `statistics` (boolean): Include project statistics in response - `topic` (string): Filter by topic name - `user_id` (string) (required): User ID or username - `visibility` (string): Filter by visibility (private, internal, public) - `wiki_checksum_failed` (boolean): Limit to projects where the wiki checksum calculation failed (admin only) - `with_custom_attributes` (boolean): Include custom attributes in the response (admin only) - `with_issues_enabled` (boolean): Filter by projects with issues feature enabled - `with_merge_requests_enabled` (boolean): Filter by projects with merge requests enabled - `with_programming_language` (string): Filter by programming language name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_list_users List a project's users. Returns: users with id, username, name, and state, plus pagination metadata. See also: gitlab_project_get, gitlab_member_list. **Parameters:** - `order_by` (string): Keyset ordering column (for keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search by name or username - `sort` (string): Keyset sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_member_add Add a user to a project team by user_id or username with an access level. Optional: expires_at, member_role_id (Premium/Ultimate). Returns: the created membership. See also: gitlab_project_member_edit, gitlab_project_members_list, gitlab_list_users. **Parameters:** - `access_level` (integer) (required): Access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `expires_at` (string): Membership expiration date (YYYY-MM-DD) - `member_role_id` (integer): Custom member role ID - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer): User ID to add (provide user_id or username) - `username` (string): Username to add (provide user_id or username) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_member_delete Remove a member from a project (destructive, requires confirmation). Requires Maintainer; the last Owner of a project cannot be removed. Returns: a success confirmation naming the removed member. See also: gitlab_project_member_edit, gitlab_project_members_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer) (required): User ID of the member to remove Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_member_edit Edit a project member's access level, expiry, or custom member role. Returns: the updated membership. Requires at least the same access level as the target member. See also: gitlab_project_member_add, gitlab_project_member_delete, gitlab_project_members_list. **Parameters:** - `access_level` (integer) (required): New access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner, 60=Admin where supported) - `expires_at` (string): Membership expiration date (YYYY-MM-DD) - `member_role_id` (integer): Custom member role ID - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer) (required): User ID of the member to edit Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_member_get Get a single direct project member by user ID. Returns: id, username, name, state, access level, member role, created_by, expiry, and web URL. Does not include inherited members. See also: gitlab_project_member_get_inherited, gitlab_project_members_list, gitlab_project_member_edit. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer) (required): User ID of the member Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_member_get_inherited Get a project member including membership inherited from parent groups. Returns: id, username, name, state, effective access level, member role, and web URL. See also: gitlab_project_member_get, gitlab_project_members_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `user_id` (integer) (required): User ID of the member Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_members_list List a project's members (direct plus inherited from parent groups). Returns: each member's id, username, name, state, access level, member role, created_by, seat usage, and web URL. Supports query/user_ids/show_seat_info filtering, order_by/sort, and offset or keyset pagination. See also: gitlab_project_member_get, gitlab_project_member_add, gitlab_project_get. **Parameters:** - `order_by` (string): Column to order results by (e.g. id, name, username, access_level) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `query` (string): Filter members by name or username - `show_seat_info` (boolean): Include seat usage information (is_using_seat) for each member - `sort` (string): Sort direction (asc, desc) - `user_ids` (array of integers): Filter the results to only the listed user IDs Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_pull_mirror_configure Configure a project's pull mirror. Returns: the updated mirror configuration. See also: gitlab_project_pull_mirror_get, gitlab_project_start_mirroring. **Parameters:** - `auth_password` (string): Authentication password or token for the mirror URL. Treat as secret: do not log or store it, and redact it in telemetry/errors - `auth_user` (string): Authentication username for the mirror URL. Treat as secret-adjacent and avoid logging with auth_password - `enabled` (boolean): Enable or disable pull mirroring - `mirror_branch_regex` (string): Regex to filter branches to mirror - `mirror_overwrites_diverged_branches` (boolean): Overwrite diverged branches on mirror update - `mirror_trigger_builds` (boolean): Trigger CI builds when mirror updates - `only_mirror_protected_branches` (boolean): Only mirror protected branches - `project_id` (string) (required): Project ID or URL-encoded path - `url` (string): Pull mirror source URL. Do not include credentials in the URL; unlike push mirror endpoints, pull mirroring requires auth_user and auth_password for authentication Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_pull_mirror_get Get a project's pull-mirror configuration. Returns: the mirror URL, enabled flag, and last sync status. See also: gitlab_project_pull_mirror_configure, gitlab_project_start_mirroring. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_repository_storage_get Get a project's repository storage shard. Returns: the storage shard name. See also: gitlab_project_start_housekeeping, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_restore Restore a project marked for deletion. Returns: the restored project. See also: gitlab_project_delete, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path of the project marked for deletion Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_service_account_create Create a GitLab project service account. Returns: the created project service account object. See also: gitlab_project_service_account_list, gitlab_project_service_account_update, gitlab_project_service_account_pat_create. **Parameters:** - `email` (string): Service account email - `name` (string): Service account name - `project_id` (string) (required): Project ID or URL-encoded path - `username` (string): Service account username Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_service_account_delete Delete a GitLab project service account. Returns: a success status confirming deletion. See also: gitlab_project_service_account_list, gitlab_project_service_account_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `hard_delete` (boolean): Hard delete the service account - `project_id` (string) (required): Project ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_service_account_list List GitLab project service accounts. Returns: paginated project service account records. See also: gitlab_get_project, gitlab_project_service_account_create, gitlab_project_service_account_pat_list. **Parameters:** - `order_by` (string): Order by id or username - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_service_account_pat_create Create a personal access token for a GitLab project service account. Returns: the created token record and token value when GitLab returns it. See also: gitlab_project_service_account_pat_list, gitlab_project_service_account_pat_rotate. **Parameters:** - `description` (string): Token description - `expires_at` (string): Expiration date in YYYY-MM-DD format - `name` (string) (required): Token name - `project_id` (string) (required): Project ID or URL-encoded path - `scopes` (array of strings) (required): Token scopes (e.g. api, read_api, read_user) - `service_account_id` (integer) (required): Service account user ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_service_account_pat_list List personal access tokens for a GitLab project service account. Returns: paginated token records. See also: gitlab_project_service_account_list, gitlab_project_service_account_pat_create, gitlab_project_service_account_pat_revoke. **Parameters:** - `created_after` (string): Filter tokens created after RFC3339 datetime or YYYY-MM-DD date - `created_before` (string): Filter tokens created before RFC3339 datetime or YYYY-MM-DD date - `expires_after` (string): Filter tokens expiring after YYYY-MM-DD date - `expires_before` (string): Filter tokens expiring before YYYY-MM-DD date - `last_used_after` (string): Filter tokens last used after RFC3339 datetime or YYYY-MM-DD date - `last_used_before` (string): Filter tokens last used before RFC3339 datetime or YYYY-MM-DD date - `order_by` (string): Order tokens by column (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `revoked` (boolean): Filter by revoked state - `search` (string): Search token names - `service_account_id` (integer) (required): Service account user ID - `sort` (string): Sort expression - `state` (string): Token state filter: active or inactive - `user_id` (integer): Filter by user ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_service_account_pat_revoke Revoke a personal access token for a GitLab project service account. Returns: a success status confirming revocation. See also: gitlab_project_service_account_pat_list, gitlab_project_service_account_pat_create. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID - `token_id` (integer) (required): Personal access token ID to revoke Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_service_account_pat_rotate Rotate a personal access token for a GitLab project service account. Returns: the rotated token record and token value when GitLab returns it. See also: gitlab_project_service_account_pat_list, gitlab_project_service_account_pat_revoke. **Parameters:** - `expires_at` (string): New expiration date in YYYY-MM-DD format - `project_id` (string) (required): Project ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID - `token_id` (integer) (required): Personal access token ID to rotate Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_service_account_update Update a GitLab project service account. Returns: the updated project service account object. See also: gitlab_project_service_account_list, gitlab_project_service_account_delete. **Parameters:** - `email` (string): New email - `name` (string): New name - `project_id` (string) (required): Project ID or URL-encoded path - `service_account_id` (integer) (required): Service account user ID - `username` (string): New username Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_share_with_group Share a project with a group. Returns: a confirmation with the group ID and granted access role. See also: gitlab_project_delete_shared_group, gitlab_project_list_invited_groups. **Parameters:** - `expires_at` (string): Expiration date for the share (YYYY-MM-DD) - `group_access` (integer) (required): Access level for the group (10=Guest 20=Reporter 30=Developer 40=Maintainer); 5=Minimal access, 15=Planner, 25=Security Manager, 60=Admin are not valid for project shares - `group_id` (integer) (required): Group ID to share with - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_snippet_content Read a project snippet's raw content. Returns: the snippet ID and raw text content. See also: gitlab_project_snippet_get, gitlab_project_snippet_list. **Parameters:** - `project_id` (string) (required): Project ID or path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_snippet_create Create a project snippet. Returns: the created snippet with ID, visibility, author, files, and web URL. See also: gitlab_project_snippet_get, gitlab_project_snippet_update, gitlab_project_snippet_list. **Parameters:** - `content` (string): Content (single-file, deprecated in favor of files) - `description` (string): Snippet description - `file_name` (string): File name (single-file, deprecated in favor of files) - `files` (array of objects): Files to include in the snippet - `project_id` (string) (required): Project ID or path - `title` (string) (required): Snippet title - `visibility` (string): Visibility: private, internal, or public; defaults to private when omitted Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_snippet_delete Delete a project snippet permanently. Returns: a success confirmation. See also: gitlab_project_snippet_get, gitlab_project_snippet_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_snippet_get Get a single project snippet. Returns: snippet metadata, visibility, author, files, and web URL. See also: gitlab_project_snippet_list, gitlab_project_snippet_content, gitlab_project_snippet_update, gitlab_project_snippet_delete. **Parameters:** - `project_id` (string) (required): Project ID or path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_snippet_list List a project's snippets. Returns: snippets with title, visibility, author, files, and pagination metadata. See also: gitlab_project_snippet_get, gitlab_project_snippet_create, gitlab_snippet_list. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_project_snippet_update Update a project snippet. Returns: the updated snippet with metadata, files, and web URL. See also: gitlab_project_snippet_get, gitlab_project_snippet_delete, gitlab_project_snippet_list. **Parameters:** - `content` (string): New content (single-file, deprecated in favor of files) - `description` (string): New description - `file_name` (string): New file name (single-file, deprecated in favor of files) - `files` (array of objects): File operations to apply - `project_id` (string) (required): Project ID or path - `snippet_id` (integer) (required): Snippet ID - `title` (string): New title - `visibility` (string): New visibility: private, internal, or public Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_star Star a project. Returns: the project with the updated star_count. See also: gitlab_project_unstar, gitlab_project_list_starrers. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_start_housekeeping Start housekeeping for a project. Returns: a success confirmation naming the project. See also: gitlab_project_repository_storage_get, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_start_mirroring Trigger a pull-mirror sync. Returns: a success confirmation naming the project. See also: gitlab_project_pull_mirror_get, gitlab_project_pull_mirror_configure. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_transfer Transfer a project to another namespace. Returns: the project in its new namespace. See also: gitlab_project_get, gitlab_group_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `namespace` (string) (required): Target namespace ID or path - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_unarchive Unarchive a project. Returns: the project with archived set to false. See also: gitlab_project_archive, gitlab_project_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_unstar Unstar a project. Returns: the project with the updated star_count. See also: gitlab_project_star, gitlab_project_list_starrers. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_update Update a project's settings. Returns: the updated project with its current configuration and web URL. See also: gitlab_project_get, gitlab_project_archive, gitlab_project_transfer. **Parameters:** - `allow_merge_on_skipped_pipeline` (boolean): Allow merge when pipeline is skipped - `allow_pipeline_trigger_approve_deployment` (boolean): Allow pipeline triggerer to approve deployment - `analytics_access_level` (string): Analytics access level (disabled, private, enabled) - `approvals_before_merge` (integer): Number of approvals required before merge - `auto_cancel_pending_pipelines` (string): Auto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled. - `auto_devops_deploy_strategy` (string): Auto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays). - `auto_devops_enabled` (boolean): Enable Auto DevOps for the project - `auto_duo_code_review_enabled` (boolean): Enable automatic GitLab Duo code review - `autoclose_referenced_issues` (boolean): Auto-close referenced issues on merge - `build_coverage_regex` (string): Regex used to extract test coverage from job logs - `build_git_strategy` (string): Git strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time). - `build_timeout` (integer): Build timeout in seconds - `builds_access_level` (string): CI/CD builds access level (disabled, private, enabled) - `ci_config_path` (string): Custom CI/CD configuration file path - `ci_default_git_depth` (integer): Default Git clone depth for CI/CD - `ci_delete_pipelines_in_seconds` (integer): Auto-delete pipelines older than this many seconds - `ci_display_pipeline_variables` (boolean): Display pipeline variables in the UI - `ci_forward_deployment_enabled` (boolean): Enable CI/CD forward deployment (skip outdated jobs) - `ci_forward_deployment_rollback_allowed` (boolean): Allow job retries even for outdated deployment jobs - `ci_id_token_sub_claim_components` (array of strings): Components used to build the CI ID token sub claim - `ci_pipeline_variables_minimum_override_role` (string): Minimum role allowed to override pipeline variables (developer, maintainer, owner, no_one_allowed) - `ci_push_repository_for_job_token_allowed` (boolean): Allow CI job tokens to push to the repository - `ci_restrict_pipeline_cancellation_role` (string): Role required to cancel pipelines/jobs (developer, maintainer, no_one) - `ci_separated_caches` (boolean): Use separate caches for protected branches - `cicd_catalog_enabled` (boolean): Publish the project as a CI/CD catalog resource - `container_expiration_policy_attributes` (object): Container registry cleanup policy attributes - `container_registry_access_level` (string): Container registry access level (disabled, private, enabled) - `container_registry_enabled` (boolean): Enable container registry (deprecated: use container_registry_access_level) - `default_branch` (string): New default branch - `description` (string): New description - `emails_disabled` (boolean): Disable email notifications (deprecated: use emails_enabled) - `emails_enabled` (boolean): Enable email notifications - `enforce_auth_checks_on_uploads` (boolean): Enforce authorization checks on uploads - `environments_access_level` (string): Environments access level (disabled, private, enabled) - `external_authorization_classification_label` (string): External authorization classification label - `feature_flags_access_level` (string): Feature flags access level (disabled, private, enabled) - `forking_access_level` (string): Forking access level (disabled, private, enabled) - `group_runners_enabled` (boolean): Enable group runners - `import_url` (string): URL to import/mirror repository from - `infrastructure_access_level` (string): Infrastructure access level (disabled, private, enabled) - `issue_branch_template` (string): Template for branch names created from issues - `issues_access_level` (string): Issues access level (disabled, private, enabled) - `issues_enabled` (boolean): Enable/disable issues feature (use 'issues_enabled' not 'issues_access_level') - `issues_template` (string): Default issue description template - `jobs_enabled` (boolean): Enable CI/CD jobs - `keep_latest_artifact` (boolean): Keep the latest artifact for each pipeline - `lfs_enabled` (boolean): Enable Git LFS - `max_artifacts_size` (integer): Maximum artifacts size in MB - `merge_commit_template` (string): Template for merge commit messages - `merge_method` (string): Merge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit). - `merge_pipelines_enabled` (boolean): Enable merged results pipelines - `merge_request_title_regex` (string): Regex that MR titles must match - `merge_request_title_regex_description` (string): Human-readable description for the MR title regex - `merge_requests_access_level` (string): Merge requests access level (disabled, private, enabled) - `merge_requests_enabled` (boolean): Enable merge requests feature - `merge_requests_template` (string): Default merge request description template - `merge_trains_enabled` (boolean): Enable merge trains - `merge_trains_skip_train_allowed` (boolean): Allow skipping the merge train - `mirror` (boolean): Enable pull mirroring from import_url - `mirror_branch_regex` (string): Only mirror branches matching this regex - `mirror_overwrites_diverged_branches` (boolean): Overwrite diverged branches when mirroring - `mirror_trigger_builds` (boolean): Trigger pipelines for mirror updates - `mirror_user_id` (integer): User ID used to run mirror updates (admin only) - `model_experiments_access_level` (string): Model experiments access level (disabled, private, enabled) - `model_registry_access_level` (string): Model registry access level (disabled, private, enabled) - `monitor_access_level` (string): Monitor access level (disabled, private, enabled) - `mr_default_target_self` (boolean): Default merge request target to the project itself (for forks) - `mr_default_title_template` (string): Template for default merge request titles - `name` (string): New project name - `only_allow_merge_if_all_discussions_are_resolved` (boolean): Only allow merge when all discussions are resolved - `only_allow_merge_if_all_status_checks_passed` (boolean): Only allow merge when all external status checks pass - `only_allow_merge_if_pipeline_succeeds` (boolean): Only allow merge when pipeline succeeds - `only_mirror_protected_branches` (boolean): Only mirror protected branches - `operations_access_level` (string): Operations access level (disabled, private, enabled) - `package_registry_access_level` (string): Package registry access level (disabled, private, enabled) - `packages_enabled` (boolean): Enable packages feature (deprecated: use package_registry_access_level) - `pages_access_level` (string): Pages access level (disabled, private, enabled, public) - `path` (string): New project path slug - `prevent_merge_without_jira_issue` (boolean): Require an associated Jira issue before merge - `printing_merge_request_link_enabled` (boolean): Show the create-merge-request link after pushing - `project_id` (string) (required): Project ID or URL-encoded path - `protect_merge_request_pipelines` (boolean): Prevent merge request pipeline settings from being modified by users with lower permissions - `public_builds` (boolean): Enable public access to pipelines - `public_jobs` (boolean): Enable public access to pipelines - `releases_access_level` (string): Releases access level (disabled, private, enabled) - `remove_source_branch_after_merge` (boolean): Remove source branch after merge by default - `repository_access_level` (string): Repository access level (disabled, private, enabled) - `repository_storage` (string): Repository storage shard name (admin only) - `request_access_enabled` (boolean): Allow users to request access - `requirements_access_level` (string): Requirements access level (disabled, private, enabled) - `resolve_outdated_diff_discussions` (boolean): Auto-resolve outdated diff discussions - `resource_group_default_process_mode` (string): Default process mode for resource groups: unordered (run in parallel), oldest_first, or newest_first. - `restrict_user_defined_variables` (boolean): Restrict user-defined pipeline variables (deprecated: use ci_pipeline_variables_minimum_override_role) - `reviewer_assignment_strategy` (string): Reviewer assignment strategy for merge requests (disabled, code_owners, dap_powered) - `security_and_compliance_access_level` (string): Security and compliance access level (disabled, private, enabled) - `service_desk_enabled` (boolean): Enable Service Desk - `shared_runners_enabled` (boolean): Enable shared runners - `show_default_award_emojis` (boolean): Show default award emojis on issues/MRs - `snippets_access_level` (string): Snippets access level (disabled, private, enabled) - `snippets_enabled` (boolean): Enable snippets feature (deprecated: use snippets_access_level) - `squash_commit_template` (string): Template for squash commit messages - `squash_option` (string): Squash commits on merge: never (not allowed), always (always squash), default_on (squash by default, overridable per MR), or default_off (no squash by default, overridable per MR). - `suggestion_commit_message` (string): Default commit message for suggestions - `tag_list` (array of strings): Project tags (deprecated: use topics) - `topics` (array of strings): Topic tags for the project - `visibility` (string): Visibility level (private, internal, public) - `wiki_access_level` (string): Wiki access level (disabled, private, enabled) - `wiki_enabled` (boolean): Enable wiki feature Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_upload Upload a file (via local file_path or base64 content) to a project's Markdown attachments store. Returns: the upload's id (GitLab 17.3+), alt text, relative and full URLs, full path, and a Markdown embed reference. See also: gitlab_project_upload_list, gitlab_project_upload_delete, gitlab_project_get. **Parameters:** - `content_base64` (string): Base64-encoded file content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local file on the MCP server filesystem. Alternative to content_base64 for files too large to base64-encode. Only one of file_path or content_base64 should be provided. - `filename` (string) (required): Name of the file to upload (e.g. screenshot.png) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_project_upload_avatar Upload a project avatar. Returns: the project with its new avatar_url. See also: gitlab_project_download_avatar, gitlab_project_update. **Parameters:** - `content_base64` (string): Base64-encoded image content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local image file on the MCP server filesystem. Alternative to content_base64 for files too large to base64-encode. Only one of file_path or content_base64 should be provided. - `filename` (string) (required): Avatar filename (e.g. avatar.png) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_project_upload_delete Delete a project Markdown upload by its numeric upload ID. Returns: a success confirmation. See also: gitlab_project_upload_list, gitlab_project_upload, gitlab_project_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `upload_id` (integer) (required): ID of the upload to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_upload_delete_by_secret Delete a project Markdown upload by its 32-character secret and filename (the /uploads// reference). Returns: a success confirmation. See also: gitlab_project_upload_delete, gitlab_project_upload_list, gitlab_project_upload. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `filename` (string) (required): Filename of the upload as it appears in the upload URL - `project_id` (string) (required): Project ID or URL-encoded path - `secret` (string) (required): 32-character upload secret from the upload URL (/uploads//) Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_project_upload_list List all Markdown uploads in a project. Returns: each upload's id, filename, size, creation time, and uploader (id, username, name), plus pagination metadata. See also: gitlab_project_upload, gitlab_project_upload_delete, gitlab_project_get. **Parameters:** - `order_by` (string): For keyset pagination, the column to order results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort order for keyset pagination: 'asc' or 'desc' Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### protected (8 tools) #### gitlab_protected_branch_get Get a single protected branch or wildcard rule by name. Returns: the rule with push, merge, and unprotect access-level arrays, allow-force-push, and CODEOWNERS-approval flags. See also: gitlab_protected_branches_list, gitlab_protected_branch_update, gitlab_branch_unprotect. **Parameters:** - `branch_name` (string) (required): Name of the protected branch - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_protected_branch_update Update an existing protected branch rule: allow-force-push, CODEOWNERS approval, rename, or fine-grained allowed_to_push/merge/unprotect entries. Returns: the updated rule with its access-level arrays. See also: gitlab_protected_branch_get, gitlab_protected_branches_list, gitlab_branch_protect. **Parameters:** - `allow_force_push` (boolean): Allow force push to this branch - `allowed_to_merge` (array of objects): Fine-grained merge access entries (by user, group, deploy key, or access level) - `allowed_to_push` (array of objects): Fine-grained push access entries (by user, group, deploy key, or access level) - `allowed_to_unprotect` (array of objects): Fine-grained unprotect access entries (by user, group, deploy key, or access level) - `branch_name` (string) (required): Name of the protected branch to update - `code_owner_approval_required` (boolean): Require CODEOWNERS approval - `name` (string): New name or wildcard for the protected branch rule (rename) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_protected_branches_list List protected branches and wildcard rules for a project with optional search, ordering, and offset or keyset pagination. Returns: protected rules with push/merge/unprotect access-level arrays and pagination metadata. See also: gitlab_protected_branch_get, gitlab_branch_protect, gitlab_protected_branch_update. **Parameters:** - `order_by` (string): Column to order results by (e.g. name) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Filter protected branches by name (substring match) - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_protected_environment_get Get a single protected (or wildcard) environment by name. Returns: the environment with its deploy access levels (id, access level, user/group, group inheritance) and approval rules. See also: gitlab_protected_environment_list, gitlab_protected_environment_update, gitlab_protected_environment_unprotect. **Parameters:** - `environment` (string) (required): Environment name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_protected_environment_list List protected environments in a project with order_by/sort and offset or keyset pagination. Returns: protected environments with their deploy access levels, required approval count, approval rules, and pagination metadata. See also: gitlab_protected_environment_get, gitlab_protected_environment_protect, gitlab_environment_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_protected_environment_protect Protect a single environment or wildcard with deploy access levels and approval rules. Returns: the newly protected environment with its deploy access levels, required approval count, and approval rules. See also: gitlab_protected_environment_get, gitlab_protected_environment_update, gitlab_protected_environment_unprotect. **Parameters:** - `approval_rules` (array of objects): Approval rules - `deploy_access_levels` (array of objects): Deploy access levels - `name` (string) (required): Environment name to protect - `project_id` (string) (required): Project ID or URL-encoded path - `required_approval_count` (integer): Required number of approvals Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_protected_environment_unprotect Unprotect a single environment or wildcard, removing its deployment gates. Returns: a success confirmation naming the unprotected environment. See also: gitlab_protected_environment_list, gitlab_protected_environment_protect. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `environment` (string) (required): Environment name to unprotect - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_protected_environment_update Update a protected environment's deploy access levels and approval rules (use _destroy to remove an entry). Returns: the updated environment with its deploy access levels, required approval count, and approval rules. See also: gitlab_protected_environment_get, gitlab_protected_environment_protect, gitlab_protected_environment_unprotect. **Parameters:** - `approval_rules` (array of objects): Updated approval rules - `deploy_access_levels` (array of objects): Updated deploy access levels - `environment` (string) (required): Environment name - `name` (string): New environment name - `project_id` (string) (required): Project ID or URL-encoded path - `required_approval_count` (integer): Required number of approvals Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### purge (1 tool) #### gitlab_purge_dependency_proxy Purge a group's dependency proxy cache. Returns: a success status. See also: gitlab_group_get, gitlab_get_settings. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### read (1 tool) #### gitlab_read_repository_submodule_file Read a file from inside a submodule at the parent-pinned commit. Returns: file_name, file_path, submodule_path, resolved_project, commit_sha, size, decoded content, and encoding. See also: gitlab_list_repository_submodules, gitlab_file_get, gitlab_update_repository_submodule. **Parameters:** - `file_path` (string) (required): Path of the file inside the submodule (e.g. src/main.c) - `project_id` (string) (required): Project ID or URL-encoded path of the parent repository - `ref` (string): Branch/tag/SHA in the parent repository (defaults to default branch) - `submodule_path` (string) (required): Path to the submodule as defined in .gitmodules (e.g. libs/core-module) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### register (1 tool) #### gitlab_register_cluster_agent Register a cluster agent. Returns: the created agent with id and name. See also: gitlab_list_cluster_agents, gitlab_create_cluster_agent_token. **Parameters:** - `name` (string) (required): Agent name - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### registry (16 tools) #### gitlab_registry_delete_repository Delete one container registry repository (cannot be undone). Returns: a success confirmation. See also: gitlab_registry_list_project, gitlab_registry_get_repository, gitlab_registry_delete_tag. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `repository_id` (integer) (required): Registry repository ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_registry_delete_tag Delete one container registry tag (cannot be undone). Returns: a success confirmation. See also: gitlab_registry_list_tags, gitlab_registry_delete_tags_bulk, gitlab_registry_get_tag. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `repository_id` (integer) (required): Registry repository ID - `tag_name` (string) (required): Tag name to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_registry_delete_tags_bulk Delete container registry tags in bulk by name patterns and age (cannot be undone). Returns: a success confirmation; deletion runs asynchronously. See also: gitlab_registry_list_tags, gitlab_registry_delete_tag. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `keep_n` (integer): Number of latest tags to keep - `name_regex` (string): Deprecated: regex pattern of tag names to delete. Use name_regex_delete instead - `name_regex_delete` (string): Regex pattern of tag names to delete - `name_regex_keep` (string): Regex pattern of tag names to keep - `older_than` (string): Delete tags older than this (e.g. 1h, 2d, 1month) - `project_id` (string) (required): Project ID or path - `repository_id` (integer) (required): Registry repository ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_registry_get_repository Get details of one container registry repository by its id. Returns: the repository's name, path, location, status, tag count, and optional tags. See also: gitlab_registry_list_project, gitlab_registry_list_tags, gitlab_registry_delete_repository. **Parameters:** - `repository_id` (integer) (required): Registry repository ID - `tags` (boolean): Include tags in response - `tags_count` (boolean): Include tags count in response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_get_tag Get metadata of one container registry tag. Returns: the tag's name, path, location, revision, digest, total size, and creation time. See also: gitlab_registry_list_tags, gitlab_registry_delete_tag. **Parameters:** - `project_id` (string) (required): Project ID or path - `repository_id` (integer) (required): Registry repository ID - `tag_name` (string) (required): Tag name Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_list_group List container registry image repositories across a group. Returns: each repository's id, name, path, location, status, tag count, and pagination metadata. See also: gitlab_registry_list_project, gitlab_registry_get_repository. **Parameters:** - `group_id` (string) (required): Group ID or path - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_list_project List container registry image repositories in a project. Returns: each repository's id, name, path, location, status, tag count, optional tags, and pagination metadata. See also: gitlab_registry_get_repository, gitlab_registry_list_tags, gitlab_registry_list_group. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `sort` (string): Sort direction (asc, desc) - `tags` (boolean): Include tags in response - `tags_count` (boolean): Include tags count in response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_list_tags List tags for a container registry repository. **Parameters:** - `order_by` (string): Column to order results by (keyset pagination) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or path - `repository_id` (integer) (required): Registry repository ID - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_protection_create Create a container registry protection rule to restrict push/delete access by minimum access level. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level for delete (maintainer, owner, admin) - `minimum_access_level_for_push` (string): Minimum access level for push (maintainer, owner, admin) - `project_id` (string) (required): Project ID or path - `repository_path_pattern` (string) (required): Repository path pattern (e.g. my-project/my-image*) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_registry_protection_delete Delete a container registry repository-path protection rule (cannot be undone). Returns: a success confirmation. See also: gitlab_registry_protection_list, gitlab_registry_protection_create. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `rule_id` (integer) (required): Protection rule ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_registry_protection_list List container registry repository-path protection rules for a project. Returns: each rule's path pattern and minimum push/delete access levels. For tag-level protection use gitlab_registry_tag_protection_list. See also: gitlab_registry_protection_create, gitlab_registry_tag_protection_list. **Parameters:** - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_protection_update Update a container registry repository-path protection rule. Returns: the updated rule with its path pattern and minimum push/delete access levels. See also: gitlab_registry_protection_list, gitlab_registry_protection_delete, gitlab_registry_protection_create. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level for delete (maintainer, owner, admin) - `minimum_access_level_for_push` (string): Minimum access level for push (maintainer, owner, admin) - `project_id` (string) (required): Project ID or path - `repository_path_pattern` (string): Repository path pattern - `rule_id` (integer) (required): Protection rule ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_tag_protection_create Create a container registry tag protection rule. Returns: the created rule. Omit both minimum access levels to make matching tags immutable. See also: gitlab_registry_tag_protection_list, gitlab_registry_tag_protection_update, gitlab_registry_protection_create. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level to delete matching tags (maintainer, owner, admin). Omit both push and delete levels to make matching tags immutable - `minimum_access_level_for_push` (string): Minimum access level to push matching tags (maintainer, owner, admin). Omit both push and delete levels to make matching tags immutable - `project_id` (string) (required): Project ID or path - `tag_name_pattern` (string) (required): Tag name pattern as a RE2 regular expression (e.g. v.+) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_registry_tag_protection_delete Delete a container registry tag protection rule (cannot be undone). Returns: a success confirmation. See also: gitlab_registry_tag_protection_list, gitlab_registry_tag_protection_create. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or path - `rule_id` (integer) (required): Tag protection rule ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_registry_tag_protection_list List container registry tag protection rules for a project. Returns: each rule's tag name pattern and minimum push/delete access levels (empty = immutable). For repository-path protection use gitlab_registry_protection_list. See also: gitlab_registry_tag_protection_create, gitlab_registry_list_tags. **Parameters:** - `project_id` (string) (required): Project ID or path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_registry_tag_protection_update Update a container registry tag protection rule. Returns: the updated rule. See also: gitlab_registry_tag_protection_list, gitlab_registry_tag_protection_delete. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level to delete matching tags (maintainer, owner, admin) - `minimum_access_level_for_push` (string): Minimum access level to push matching tags (maintainer, owner, admin) - `project_id` (string) (required): Project ID or path - `rule_id` (integer) (required): Tag protection rule ID - `tag_name_pattern` (string): Tag name pattern as a RE2 regular expression Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### reject (1 tool) #### gitlab_reject_user Reject a pending user sign-up. Returns: confirmation with the user ID and action. Permanently deletes the pending user. See also: gitlab_approve_user, gitlab_get_user, gitlab_list_users. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### release (12 tools) #### gitlab_release_create Create a release for a tag, optionally creating the tag from a ref and attaching asset links. Returns: the created release with author, commit, assets, milestones, and _links. See also: gitlab_release_update, gitlab_release_link_create, gitlab_tag_create. **Parameters:** - `assets` (object): Asset links to attach to the release at creation time - `description` (string): Release notes (Markdown supported) - `milestones` (array of strings): Milestone titles to associate with the release - `name` (string): Release title - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string): Branch or commit SHA to create tag from when tag_name does not exist; include this when the prompt says ref/from ref - `released_at` (string): Date of the release in ISO 8601 format - `tag_message` (string): Message to use for the annotated tag (creates annotated tag instead of lightweight) - `tag_name` (string) (required): Tag name associated with the release Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_release_delete Delete a release by tag_name (the Git tag itself is preserved). Returns: the deleted release details. See also: gitlab_release_get, gitlab_release_list, gitlab_tag_delete. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_release_get Get a single release by project_id and tag_name. Returns: release notes, author, commit, assets, milestones, evidences, and _links. See also: gitlab_release_list, gitlab_release_update, gitlab_release_delete, gitlab_release_link_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_release_latest Get the most recent release for a project. Returns: release notes, author, commit, assets, milestones, evidences, and _links. See also: gitlab_release_list, gitlab_release_get, gitlab_release_create. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_release_link_create Create a single release asset link. Returns: the created link with id, name, url, direct_asset_url, link_type, and external. See also: gitlab_release_link_create_batch, gitlab_release_link_list, gitlab_release_link_update. **Parameters:** - `direct_asset_path` (string): Optional path for a direct asset link relative to the release: redirects to url. Use instead of the deprecated filepath. - `filepath` (string): Deprecated alias of direct_asset_path; prefer direct_asset_path. - `link_type` (string): Type of the release link: other, runbook, image, or package. - `name` (string) (required): Name of the link - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release - `url` (string) (required): Absolute http, https, or ftp URL of the link target. Do not use local file paths or relative paths. Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_release_link_create_batch Create multiple release asset links in one call. Returns: the created links (id, name, url, direct_asset_url, link_type, external) and any failed entries. See also: gitlab_release_link_create, gitlab_release_link_list, gitlab_package_publish. **Parameters:** - `links` (array of objects) (required): Array of release asset links. Each item supports name, url, link_type, direct_asset_path, and the deprecated filepath. - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_release_link_delete Delete a release asset link by link_id. Returns: the deleted link with id, name, url, direct_asset_url, link_type, and external. See also: gitlab_release_link_get, gitlab_release_link_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `link_id` (integer) (required): ID of the release link to delete - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_release_link_get Get one release asset link by link_id. Returns: the link with id, name, url, direct_asset_url, link_type, and external. See also: gitlab_release_link_list, gitlab_release_link_update, gitlab_release_link_delete. **Parameters:** - `link_id` (integer) (required): ID of the release link - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_release_link_list List asset links for a release with offset or keyset pagination. Returns: matching links (id, name, url, direct_asset_url, link_type, external) and pagination metadata. See also: gitlab_release_link_get, gitlab_release_link_create, gitlab_release_link_create_batch. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc or desc) - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_release_link_update Update an existing release asset link by link_id. Returns: the updated link with id, name, url, direct_asset_url, link_type, and external. See also: gitlab_release_link_get, gitlab_release_link_list, gitlab_release_link_delete. **Parameters:** - `direct_asset_path` (string): New direct asset path for the link - `filepath` (string): New filepath for a direct asset link - `link_id` (integer) (required): ID of the release link to update - `link_type` (string): Type of the release link: other, runbook, image, or package. - `name` (string): New name of the link - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name of the release - `url` (string): Absolute http, https, or ftp URL of the link target. Do not use local file paths or relative paths. Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_release_list List releases in a project with pagination. Returns: tag names, release names, release dates, and summary metadata. See also: gitlab_release_get, gitlab_tag_list, gitlab_release_link_list. **Parameters:** - `include_html_description` (boolean): Include the description_html field rendered from the Markdown description - `order_by` (string): Order by field (released_at, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_release_update Update an existing release's title, notes, release date, or milestones. Returns: the updated release with author, commit, assets, milestones, and _links. See also: gitlab_release_get, gitlab_release_create, gitlab_release_delete. **Parameters:** - `description` (string): Updated release notes - `milestones` (array of strings): Milestone titles to associate with the release - `name` (string): New release title - `project_id` (string) (required): Project ID or URL-encoded path - `released_at` (string): New release date in ISO 8601 format - `tag_name` (string) (required): Tag name of the release Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### remove (4 tools) #### gitlab_remove_billable_group_member Remove a billable member from a group, freeing a seat (Premium/Ultimate, destructive, requires confirmation). Returns: a removal confirmation. See also: gitlab_list_billable_group_members, gitlab_list_billable_member_memberships, gitlab_group_members_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `user_id` (integer) (required): User ID of the billable member to remove Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_remove_group_job_token_allowlist Remove a group from a project's CI/CD job token allowlist. Returns: a success confirmation naming the removed group. See also: gitlab_list_job_token_group_allowlist, gitlab_add_group_job_token_allowlist, gitlab_remove_project_job_token_allowlist. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `target_group_id` (integer) (required): ID of the group to remove from the allowlist Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_remove_project_job_token_allowlist Remove a project from a project's CI/CD job token inbound allowlist. Returns: a success confirmation naming the removed project. See also: gitlab_list_job_token_inbound_allowlist, gitlab_add_project_job_token_allowlist, gitlab_remove_group_job_token_allowlist. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `target_project_id` (integer) (required): ID of the project to remove from the allowlist Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_remove_secure_file Remove a secure file. Returns: a success status. See also: gitlab_list_secure_files, gitlab_create_secure_file. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `file_id` (integer) (required): Secure file ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### render (1 tool) #### gitlab_render_markdown Render arbitrary Markdown text to HTML using the GitLab Markdown API. Optionally apply GitLab Flavored Markdown and resolve references within a project's context. Returns: the rendered HTML string. See also: gitlab_file_get, gitlab_wiki_get. **Parameters:** - `gfm` (boolean): Use GitLab Flavored Markdown (default false) - `project` (string): Project path for resolving references (e.g. group/project) - `text` (string) (required): Markdown text to render Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### renew (1 tool) #### gitlab_renew_application_secret Renew an instance OAuth application secret. Returns: the application with its freshly generated secret (shown once). See also: gitlab_list_applications, gitlab_create_application. **Parameters:** - `id` (integer) (required): Application ID whose secret should be renewed Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### repair (1 tool) #### gitlab_repair_geo_site Repair a Geo site's OAuth application. Returns: the repaired site (or a hint to refresh via get when GitLab returns no body). See also: gitlab_get_geo_site, gitlab_get_status_geo_site. **Parameters:** - `id` (integer) (required): Numeric ID of the Geo site Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### repository (9 tools) #### gitlab_repository_archive Build the download URL for a repository archive. Returns: the project, ref/SHA, format, and archive download URL (binary content is not returned). See also: gitlab_repository_tree, gitlab_tag_list. **Parameters:** - `format` (string): Archive format: tar.gz, tar.bz2, tbz, tbz2, tb2, bz2, tar, zip (default: tar.gz) - `path` (string): Subdirectory path to archive (omit for entire repo) - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string): Commit SHA, branch, or tag to archive (default: default branch) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_blob Get a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: gitlab_repository_raw_blob, gitlab_repository_tree. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Blob SHA (from tree listing or commit diff) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_changelog_add Add changelog data to a changelog file by committing the generated entries. Returns: a success confirmation with the version. See also: gitlab_repository_changelog_generate, gitlab_release_create. **Parameters:** - `branch` (string): Branch to commit the changelog to (default: default branch) - `config_file` (string): Path to the changelog config file in the project - `date` (string): Date and time of the release as an RFC3339 timestamp (default: current time) - `file` (string): Path to the changelog file (default: CHANGELOG.md) - `from` (string): Start of the range (commit SHA or tag) - `message` (string): Commit message for the changelog update - `project_id` (string) (required): Project ID or URL-encoded path - `to` (string): End of the range (commit SHA or tag, default: HEAD) - `trailer` (string): Git trailer to use for changelog generation (default: Changelog) - `version` (string) (required): Version string for the changelog Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_repository_changelog_generate Generate changelog notes for a version range without committing. Returns: the rendered changelog notes (read-only preview). See also: gitlab_repository_changelog_add, gitlab_release_create. **Parameters:** - `config_file` (string): Path to the changelog config file - `date` (string): Date and time of the release as an RFC3339 timestamp (default: current time) - `from` (string): Start of the range (commit SHA or tag) - `project_id` (string) (required): Project ID or URL-encoded path - `to` (string): End of the range (commit SHA or tag, default: HEAD) - `trailer` (string): Git trailer to use (default: Changelog) - `version` (string) (required): Version string Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_compare Compare two refs (branches, tags, or commits) in a project. Use from_project_id for cross-project comparison. Returns: commits, diffs, and comparison metadata. See also: gitlab_repository_tree, gitlab_branch_list. **Parameters:** - `from` (string) (required): Branch name, tag, or commit SHA to compare from - `from_project_id` (integer): Source project ID for cross-project comparison, minimum=1 - `project_id` (string) (required): Project ID or URL-encoded path - `straight` (boolean): Use straight comparison (from..to) instead of merge-base (from...to) - `to` (string) (required): Branch name, tag, or commit SHA to compare to - `unidiff` (boolean): Return diffs in unified diff format Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_contributors List repository contributors. Returns: each contributor's name, email, commit count, additions, deletions, and pagination metadata. See also: gitlab_repository_tree, gitlab_commit_list. **Parameters:** - `order_by` (string): Order by: name, email, or commits (default: commits) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction: asc or desc (default: asc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_merge_base Find the common ancestor (merge base) of two or more refs. Returns: the merge-base commit with metadata and web URL. See also: gitlab_repository_compare, gitlab_branch_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `refs` (array of strings) (required): Two or more branch names, tags, or commit SHAs to find the merge base of Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_raw_blob Get the raw content of a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: gitlab_repository_blob, gitlab_repository_tree. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Blob SHA (from tree listing or commit diff) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_repository_tree List repository tree items. Returns: paths, object IDs, entry types (blob/tree), and pagination metadata. See also: gitlab_repository_blob, gitlab_repository_raw_blob, gitlab_branch_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by: 'id', 'name', 'path', or 'type' (only used with pagination='keyset') - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `path` (string): Path inside the repository to list (default: root) - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `recursive` (boolean): List files recursively through subdirectories - `ref` (string): Branch name, tag, or commit SHA (default: default branch) - `sort` (string): Sort direction for keyset pagination: 'asc' or 'desc' (only used with pagination='keyset') Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### resolve (1 tool) #### gitlab_resolve_vulnerability Resolve a vulnerability after it is fixed. Returns: the updated vulnerability with its new resolved state and timestamp. See also: gitlab_get_vulnerability, gitlab_confirm_vulnerability, gitlab_revert_vulnerability. **Parameters:** - `id` (string) (required): Vulnerability GID (e.g. gid://gitlab/Vulnerability/42) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### retrieve (6 tools) #### gitlab_retrieve_all_group_storage_moves List all group repository storage moves across the instance. Returns: storage moves with state, source and destination storage names, group reference, creation time, and pagination metadata. See also: gitlab_retrieve_group_storage_moves, gitlab_get_group_storage_move, gitlab_schedule_all_group_storage_moves. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only used when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only used when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_retrieve_all_project_storage_moves List all project repository storage moves on the instance. Returns: each move's id, state, source and destination storage shards, and project. Admin-only and self-managed only. See also: gitlab_get_project_storage_move, gitlab_schedule_all_project_storage_moves. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only applies when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only applies when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_retrieve_all_snippet_storage_moves List every snippet repository storage move on the instance with ordering and pagination. Returns: storage moves with state, source and destination storage shards, the associated snippet, and pagination metadata. See also: gitlab_get_snippet_storage_move, gitlab_retrieve_snippet_storage_moves, gitlab_schedule_all_snippet_storage_moves. **Parameters:** - `order_by` (string): Field to order results by (for example 'id'). Maps to the GitLab order_by query parameter. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction: 'asc' or 'desc'. Maps to the GitLab sort query parameter. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_retrieve_group_storage_moves List repository storage moves for a single group. Returns: the group's storage moves with state, source and destination storage names, creation time, and pagination metadata. See also: gitlab_retrieve_all_group_storage_moves, gitlab_get_group_storage_move_for_group, gitlab_schedule_group_storage_move. **Parameters:** - `group_id` (integer) (required): Numeric ID of the group - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only used when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only used when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_retrieve_project_storage_moves List repository storage moves for a single project. Returns: each move's id, state, source and destination storage shards, and project. Admin-only and self-managed only. See also: gitlab_get_project_storage_move_for_project, gitlab_schedule_project_storage_move. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by (e.g. id). Only applies when pagination='keyset'. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (integer) (required): Numeric ID of the project - `sort` (string): Sort direction for keyset-paginated results: asc or desc. Only applies when pagination='keyset'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_retrieve_snippet_storage_moves List repository storage moves for one snippet with ordering and pagination. Returns: storage moves scoped to the snippet with state, source and destination storage shards, and pagination metadata. See also: gitlab_get_snippet_storage_move_for_snippet, gitlab_retrieve_all_snippet_storage_moves, gitlab_schedule_snippet_storage_move. **Parameters:** - `order_by` (string): Field to order results by (for example 'id'). Maps to the GitLab order_by query parameter. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `snippet_id` (integer) (required): Numeric ID of the snippet - `sort` (string): Sort direction: 'asc' or 'desc'. Maps to the GitLab sort query parameter. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### retry (1 tool) #### gitlab_retry_failed_external_status_check_for_project_mr Retry a failed external status check for a merge request. Returns: a success confirmation. See also: gitlab_list_project_mr_external_status_checks, gitlab_set_project_mr_external_status_check_status. **Parameters:** - `check_id` (integer) (required): External status check ID to retry - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### revert (1 tool) #### gitlab_revert_vulnerability Revert a vulnerability back to the detected state. Returns: the updated vulnerability with its restored detected state. See also: gitlab_get_vulnerability, gitlab_dismiss_vulnerability, gitlab_resolve_vulnerability. **Parameters:** - `id` (string) (required): Vulnerability GID (e.g. gid://gitlab/Vulnerability/42) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### revoke (3 tools) #### gitlab_revoke_cluster_agent_token Revoke a cluster agent token. Returns: a success status. See also: gitlab_get_cluster_agent_token, gitlab_create_cluster_agent_token. **Parameters:** - `agent_id` (integer) (required): Agent ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `token_id` (integer) (required): Token ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_revoke_group_personal_access_token Revoke an enterprise personal access token in a group. Returns: a success confirmation naming the token and group. See also: gitlab_list_group_personal_access_tokens, gitlab_group_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `group_id` (string) (required): Group ID or URL-encoded path - `token_id` (integer) (required): Personal access token ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_revoke_impersonation_token Revoke an impersonation token for a user by token id. Returns: a confirmation naming the user_id and token_id with the revoked flag set. See also: gitlab_list_impersonation_tokens, gitlab_get_impersonation_token. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `token_id` (integer) (required): Impersonation token ID to revoke - `user_id` (integer) (required): GitLab user ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### runner (34 tools) #### gitlab_runner_controller_create Register a new runner controller (admin-only, experimental API) with optional description and state (enabled/disabled/dry_run). Returns: the created controller with id, description, state, and timestamps. See also: gitlab_runner_controller_get, gitlab_runner_controller_update, gitlab_runner_controller_list. **Parameters:** - `description` (string): Description of the runner controller - `state` (string): State: enabled, disabled, or dry_run Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_controller_delete Delete a runner controller by controller_id (destructive, admin-only, experimental API). Returns: a success confirmation. See also: gitlab_runner_controller_list, gitlab_runner_controller_get, gitlab_runner_controller_update. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `controller_id` (integer) (required): Runner controller ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_controller_get Get one runner controller by controller_id (admin-only, experimental API). Returns: the controller with id, description, state, connected flag, and created/updated timestamps. See also: gitlab_runner_controller_list, gitlab_runner_controller_update, gitlab_runner_controller_delete. **Parameters:** - `controller_id` (integer) (required): Runner controller ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_list List registered runner controllers (admin-only, experimental API) with offset or keyset pagination. Returns: controllers with id, description, state, created/updated timestamps, plus pagination metadata. See also: gitlab_runner_controller_get, gitlab_runner_controller_create, gitlab_runner_controller_update. **Parameters:** - `order_by` (string): Column to order the result set by (e.g. id, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_scope_add_instance Grant a runner controller the instance-level scope (admin only). Returns: the created instance-level scoping with created/updated timestamps. See also: gitlab_runner_controller_scope_remove_instance, gitlab_runner_controller_scope_list, gitlab_runner_controller_scope_add_runner. **Parameters:** - `controller_id` (integer) (required): Runner controller ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_controller_scope_add_runner Scope a runner controller to a specific instance runner by runner ID (admin only). Returns: the created runner-level scoping with the runner ID and created/updated timestamps. See also: gitlab_runner_controller_scope_remove_runner, gitlab_runner_controller_scope_list, gitlab_runner_controller_scope_add_instance. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `runner_id` (integer) (required): Instance-level runner ID to scope Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_controller_scope_list List every scope assigned to a runner controller (admin only). Returns: instance-level scopings with timestamps and runner-level scopings with runner IDs and timestamps. See also: gitlab_runner_controller_scope_add_instance, gitlab_runner_controller_scope_add_runner, gitlab_runner_controller_scope_remove_runner. **Parameters:** - `controller_id` (integer) (required): Runner controller ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_scope_remove_instance Revoke a runner controller's instance-level scope (admin only, destructive). Returns: a success confirmation naming the removed instance-level scope. See also: gitlab_runner_controller_scope_add_instance, gitlab_runner_controller_scope_list, gitlab_runner_controller_scope_remove_runner. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `controller_id` (integer) (required): Runner controller ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_controller_scope_remove_runner Remove a specific runner from a runner controller's scope by runner ID (admin only, destructive). Returns: a success confirmation naming the removed runner scope. See also: gitlab_runner_controller_scope_add_runner, gitlab_runner_controller_scope_list, gitlab_runner_controller_scope_remove_instance. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `controller_id` (integer) (required): Runner controller ID - `runner_id` (integer) (required): Runner ID to remove from scope Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_controller_token_create Create a runner controller token (admin-only). Returns: the new token including its one-time secret value, id, runner controller id, and description. See also: gitlab_runner_controller_token_list, gitlab_runner_controller_token_rotate, gitlab_runner_controller_token_revoke. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `description` (string): Description of the token Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_controller_token_get Get one runner controller token by id (admin-only). Returns: the token's id, runner controller id, description, last-used time, and timestamps. See also: gitlab_runner_controller_token_list, gitlab_runner_controller_token_rotate, gitlab_runner_controller_token_revoke. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `token_id` (integer) (required): Token ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_token_list List runner controller tokens for a controller (admin-only). Returns: each token's id, runner controller id, description, last-used time, and timestamps, with pagination metadata. See also: gitlab_runner_controller_token_get, gitlab_runner_controller_token_create, gitlab_runner_controller_token_revoke. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `order_by` (string): Column to order the result set by (e.g. id, created_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort order: asc or desc Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_token_revoke Revoke a runner controller token permanently (admin-only). Returns: a success confirmation that the runner controller token was deleted. See also: gitlab_runner_controller_token_list, gitlab_runner_controller_token_get, gitlab_runner_controller_token_rotate. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `controller_id` (integer) (required): Runner controller ID - `token_id` (integer) (required): Token ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_controller_token_rotate Rotate a runner controller token (admin-only). Returns: the token with its newly issued one-time secret value and unchanged id. See also: gitlab_runner_controller_token_get, gitlab_runner_controller_token_list, gitlab_runner_controller_token_revoke. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `token_id` (integer) (required): Token ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_controller_update Update a runner controller's description or state (enabled/disabled/dry_run) by controller_id (admin-only, experimental API). Returns: the updated controller with id, description, state, and timestamps. See also: gitlab_runner_controller_get, gitlab_runner_controller_list, gitlab_runner_controller_delete. **Parameters:** - `controller_id` (integer) (required): Runner controller ID - `description` (string): New description - `state` (string): New state: enabled, disabled, or dry_run Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_delete_by_token Delete a registered runner by its authentication token. Returns: a success confirmation. See also: gitlab_runner_delete_registered, gitlab_runner_remove. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `token` (string) (required): Runner authentication token Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_delete_registered Delete a registered runner by its numeric runner_id. Returns: a success confirmation. See also: gitlab_runner_delete_by_token, gitlab_runner_remove. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `runner_id` (integer) (required): Runner ID to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_disable_project Remove a runner assignment from a project by project_id and runner_id. Returns: a success confirmation. See also: gitlab_runner_enable_project, gitlab_runner_list_project. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `runner_id` (integer) (required): Runner ID to remove from project Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_enable_project Assign an existing runner to a project by project_id and runner_id. Returns: the enabled runner. See also: gitlab_runner_disable_project, gitlab_runner_list_project. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `runner_id` (integer) (required): Runner ID to assign Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_get Get full configuration for one runner by numeric runner_id. Returns: runner details including tags, locked, access level, maximum timeout, contact time, and associated groups/projects. See also: gitlab_runner_list, gitlab_runner_update, gitlab_runner_jobs. **Parameters:** - `runner_id` (integer) (required): Runner ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_jobs List jobs processed by a runner, with status/order/sort filters and pagination. Returns: jobs with id, name, status, stage, ref, and duration, plus pagination metadata. See also: gitlab_runner_get, gitlab_job_get. **Parameters:** - `order_by` (string): Order by field: id (default) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `runner_id` (integer) (required): Runner ID - `sort` (string): Sort direction: asc, desc - `status` (string): Job status filter: running, success, failed, canceled Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_list List runners owned by the authenticated user, with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, paused/shared/online flags, plus pagination metadata. See also: gitlab_runner_get, gitlab_runner_list_all, gitlab_runner_list_project. **Parameters:** - `order_by` (string): Field to order keyset-paginated results by, e.g. id - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `paused` (boolean): Filter by paused state - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Deprecated runner scope filter: specific, shared, active, paused, online; prefer type and status instead - `sort` (string): Sort direction: asc or desc - `status` (string): Runner status filter: online, offline, stale, or never_contacted. - `tag_list` (array of strings): List of tags to filter by - `type` (string): Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_list_all List every runner on the instance (admin token required), with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also: gitlab_runner_list, gitlab_runner_get. **Parameters:** - `order_by` (string): Field to order keyset-paginated results by, e.g. id - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `paused` (boolean): Filter by paused state - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Deprecated runner scope filter: specific, shared, active, paused, online; prefer type and status instead - `sort` (string): Sort direction: asc or desc - `status` (string): Runner status filter: online, offline, stale, or never_contacted. - `tag_list` (array of strings): List of tags to filter by - `type` (string): Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_list_group List runners available in a group (specific and shared), with type/status/tag filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also: gitlab_runner_list, gitlab_runner_list_project. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `order_by` (string): Field to order keyset-paginated results by, e.g. id - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction: asc or desc - `status` (string): Runner status filter: online, offline, stale, or never_contacted. - `tag_list` (array of strings): List of tags to filter by - `type` (string): Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_list_managers List the managers of a runner by runner_id. Returns: runner managers with system id, version, revision, platform, architecture, status, and IP. See also: gitlab_runner_get, gitlab_runner_list. **Parameters:** - `runner_id` (integer) (required): Runner ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_list_project List runners assigned to a project, with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also: gitlab_runner_enable_project, gitlab_runner_disable_project, gitlab_runner_list. **Parameters:** - `order_by` (string): Field to order keyset-paginated results by, e.g. id - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `paused` (boolean): Filter by paused state - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `scope` (string): Deprecated runner scope filter: specific, shared, active, paused, online; prefer type and status instead - `sort` (string): Sort direction: asc or desc - `status` (string): Runner status filter: online, offline, stale, or never_contacted. - `tag_list` (array of strings): List of tags to filter by - `type` (string): Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_register Register a new runner with a registration token, optional info hashmap, tags, and configuration. Returns: the created runner including its authentication token. See also: gitlab_runner_verify, gitlab_runner_list. **Parameters:** - `access_level` (string): Access level: not_protected, ref_protected - `active` (boolean): Deprecated: registration active state; prefer paused instead - `description` (string): Runner description - `info` (object): Runner manager info hashmap (name, version, revision, platform, architecture) - `locked` (boolean): Lock runner to current project - `maintenance_note` (string): Maintenance note - `maximum_timeout` (integer): Maximum job timeout in seconds - `paused` (boolean): Register in paused state - `run_untagged` (boolean): Whether to run untagged jobs - `tag_list` (array of strings): List of runner tags - `token` (string) (required): Registration token Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_runner_remove Remove (unregister) a runner by numeric runner_id. Returns: a success confirmation. See also: gitlab_runner_disable_project, gitlab_runner_delete_registered, gitlab_runner_get. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `runner_id` (integer) (required): Runner ID to remove Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_runner_reset_group_reg_token Reset a group's runner registration token by group_id (deprecated). Returns: the new registration token and its expiry. See also: gitlab_runner_reset_instance_reg_token, gitlab_runner_reset_project_reg_token. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_reset_instance_reg_token Reset the instance-level runner registration token (deprecated, admin only). Returns: the new registration token and its expiry. See also: gitlab_runner_reset_group_reg_token, gitlab_runner_reset_project_reg_token. Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_reset_project_reg_token Reset a project's runner registration token by project_id (deprecated). Returns: the new registration token and its expiry. See also: gitlab_runner_reset_instance_reg_token, gitlab_runner_reset_group_reg_token. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_reset_token Reset a runner's authentication token by runner_id. Returns: the new token and its expiry. See also: gitlab_runner_verify, gitlab_runner_get. **Parameters:** - `runner_id` (integer) (required): Runner ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_update Update a runner's configuration (description, pause state, tags, locked, access level, timeout) by runner_id. Returns: the updated runner details. See also: gitlab_runner_get, gitlab_runner_remove. **Parameters:** - `access_level` (string): Access level: not_protected, ref_protected - `active` (boolean): Deprecated: runner active state; prefer paused instead - `description` (string): Runner description - `locked` (boolean): Whether runner is locked to current project - `maintenance_note` (string): Maintenance note for the runner - `maximum_timeout` (integer): Maximum job timeout in seconds - `paused` (boolean): Pause/unpause the runner - `run_untagged` (boolean): Whether to run untagged jobs - `runner_id` (integer) (required): Runner ID - `tag_list` (array of strings): List of runner tags Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_runner_verify Verify that a runner authentication token is valid. Returns: a success confirmation when the token authenticates. See also: gitlab_runner_register, gitlab_runner_reset_token. **Parameters:** - `token` (string) (required): Runner authentication token to verify Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### schedule (9 tools) #### gitlab_schedule_all_group_storage_moves Schedule repository storage moves for all groups on a source storage shard. Returns: a confirmation that the bulk move has been scheduled. See also: gitlab_retrieve_all_group_storage_moves, gitlab_schedule_group_storage_move. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `source_storage_name` (string): Name of the source storage shard Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_all_project_storage_moves Schedule repository storage moves for all projects on a Gitaly storage shard. Drains source_storage_name onto destination_storage_name. Returns: a confirmation message. Admin-only and self-managed only. See also: gitlab_retrieve_all_project_storage_moves, gitlab_schedule_project_storage_move. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `source_storage_name` (string): Name of the source storage shard Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_all_snippet_storage_moves Schedule repository storage moves for all snippets on a source Gitaly storage shard. Returns: a confirmation that the bulk move was scheduled. See also: gitlab_retrieve_all_snippet_storage_moves, gitlab_schedule_snippet_storage_move. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `source_storage_name` (string): Name of the source storage shard Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_group_export Schedule an asynchronous export of a GitLab group. Returns: a confirmation that the export was scheduled (the archive is built in the background). See also: gitlab_download_group_export, gitlab_import_group_from_file, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_group_relations_export Schedule a new export of a group's relations (issues, labels, milestones, and more). Returns: a confirmation that the asynchronous export was scheduled. See also: gitlab_list_group_relations_export_status, gitlab_group_get. **Parameters:** - `batched` (boolean): Whether to batch the export - `group_id` (string) (required): The ID or URL-encoded path of the group Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_group_storage_move Schedule a repository storage move for a single group. Returns: the scheduled storage move with state, source and destination storage names, and group reference. See also: gitlab_retrieve_group_storage_moves, gitlab_get_group_storage_move_for_group, gitlab_schedule_all_group_storage_moves. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `group_id` (integer) (required): Numeric ID of the group Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_project_export Schedule an asynchronous project export. Returns: a confirmation message. See also: gitlab_get_project_export_status, gitlab_download_project_export. **Parameters:** - `description` (string): Override the project description in the export - `project_id` (string) (required): Project ID or URL-encoded path - `upload` (object): Optional upload destination for the generated export archive (mirrors the GitLab upload[] options) - `upload_http_method` (string): Deprecated: use upload.http_method. HTTP method to use for the upload (PUT or POST) - `upload_url` (string): Deprecated: use upload.url. URL to upload the exported project to after export completes Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_project_storage_move Schedule a repository storage move for a single project to another Gitaly storage shard. Returns: the created move's id, state, source and destination shards, and project. Admin-only and self-managed only. See also: gitlab_retrieve_project_storage_moves, gitlab_schedule_all_project_storage_moves. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `project_id` (integer) (required): Numeric ID of the project Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_schedule_snippet_storage_move Schedule a repository storage move for one snippet to a destination Gitaly storage shard. Returns: the scheduled storage move with its initial state and the associated snippet. See also: gitlab_retrieve_snippet_storage_moves, gitlab_get_snippet_storage_move_for_snippet, gitlab_schedule_all_snippet_storage_moves. **Parameters:** - `destination_storage_name` (string): Name of the destination storage shard - `snippet_id` (integer) (required): Numeric ID of the snippet Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### search (10 tools) #### gitlab_search_code Search code blobs across global, group, or project scope. Returns: matching blobs with file path, basename, ref, starting line, the surrounding snippet, project ID, and pagination metadata. See also: gitlab_search_projects, gitlab_get_repository_file, gitlab_list_repository_tree. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query text (param 'query' not 'search') - `ref` (string): Branch or tag name to search in (default: default branch) - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_commits Search commit messages across global, group, or project scope. Returns: matching commits with short and full SHA, title, message, author, and committed date plus pagination metadata. See also: gitlab_search_code, gitlab_get_commit, gitlab_list_commits. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_issues Search issues across global, group, or project scope. Returns: matching issues with title, state, labels, assignees, author, and web URL plus pagination metadata. See also: gitlab_search_merge_requests, gitlab_list_issues, gitlab_get_issue. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query text (param 'query' not 'search') - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_merge_requests Search merge requests across global, group, or project scope. Returns: matching merge requests with title, state, author, source and target branches, and web URL plus pagination metadata. See also: gitlab_search_issues, gitlab_list_merge_requests, gitlab_get_merge_request. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query text (param 'query' not 'search') - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_milestones Search milestones across global, group, or project scope. Returns: matching milestones with title, description, state, start and due dates, and web URL plus pagination metadata. See also: gitlab_list_milestones, gitlab_get_milestone, gitlab_search_issues. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_notes Search note bodies within one project. Returns: matching notes with body, author, noteable type and ID, system flag, and timestamps plus pagination metadata. See also: gitlab_search_issues, gitlab_search_merge_requests, gitlab_list_issue_notes. **Parameters:** - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_projects Search projects globally or within a group by name, path, or description. Returns: matching projects with namespace, visibility, default branch, and web URL plus pagination metadata. See also: gitlab_get_project, gitlab_list_projects, gitlab_search_code. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional — omit for global search) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_snippets Search snippet titles globally. Returns: matching snippets with title, file name, description, visibility, author, project ID, web and raw URLs, and timestamps plus pagination metadata. See also: gitlab_search_code, gitlab_search_projects. **Parameters:** - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_users Search users across global, group, or project scope. Returns: matching users with ID, username, name, state, avatar URL, and web URL plus pagination metadata. See also: gitlab_get_user, gitlab_list_users, gitlab_list_project_members. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_search_wiki Search wiki blobs across global, group, or project scope. Returns: matching wiki pages with slug, title, content snippet, and format plus pagination metadata. See also: gitlab_search_code, gitlab_list_wikis, gitlab_get_wiki. **Parameters:** - `group_id` (string): Group ID or URL-encoded path (optional) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string): Project ID or URL-encoded path (optional) - `query` (string) (required): Search query string - `search_type` (string): Search backend to request. Use 'basic' for GitLab's default search, 'advanced' for Elasticsearch/OpenSearch-backed search, or 'zoekt' for Zoekt-based search. The requested backend must be enabled on the GitLab instance. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### server (1 tool) #### gitlab_server_status Check MCP server connectivity, GitLab reachability, and authenticated identity details. Returns: the current server and GitLab health diagnostics object. See also: gitlab_get_metadata, gitlab_user_current. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### set (9 tools) #### gitlab_set_custom_attribute Set a custom attribute. Returns: the stored attribute with key and value. See also: gitlab_get_custom_attribute, gitlab_delete_custom_attribute. **Parameters:** - `key` (string) (required): Attribute key - `resource_id` (integer) (required): ID of the resource - `resource_type` (string) (required): Resource type: user, group, or project - `value` (string) (required): Attribute value Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_feature_flag Set a feature flag gate. Returns: the updated feature with its name, state, and gate values. See also: gitlab_list_features, gitlab_delete_feature_flag. **Parameters:** - `feature_group` (string): Feature group name - `force` (boolean): Force the change even if the flag is read-only - `group` (string): GitLab group path - `key` (string): Gate key (percentage_of_actors or percentage_of_time) - `name` (string) (required): Feature flag name - `namespace` (string): GitLab namespace path - `project` (string): GitLab project path (namespace/project) - `repository` (string): GitLab repository path - `user` (string): GitLab username - `value` (any) (required): Value to set (true, false, integer percentage, or string) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_group_datadog_integration Create or update the Datadog integration on a group. Requires Owner role and GitLab Premium/Ultimate (self-managed EE or GitLab.com). At least one of api_key, api_url, datadog_env, datadog_service, datadog_site, datadog_tags, archive_trace_events, or use_inherited_settings=true must be supplied. **Parameters:** - `api_key` (string): Datadog API key (write-only; never returned by the get endpoint) - `api_url` (string): Datadog API URL (e.g. https://api.datadoghq.com) - `archive_trace_events` (boolean): Forward CI job trace events to Datadog - `datadog_env` (string): Datadog env tag forwarded with every log/metric - `datadog_service` (string): Datadog service tag forwarded with every log/metric - `datadog_site` (string): Datadog site (e.g. datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com) - `datadog_tags` (string): Comma-separated Datadog tags forwarded with every log/metric - `group_id` (string) (required): Group ID or URL-encoded path - `use_inherited_settings` (boolean): Inherit the Datadog configuration from the closest ancestor group that has one configured (overrides all per-field settings) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_group_integration Configure (create or update) any group integration by slug, passing the integration's documented parameters in a free-form `config` object. Requires Owner role on the group (some integrations require GitLab Premium/Ultimate). **Parameters:** - `config` (object): Integration configuration parameters as documented for the chosen slug in doc/api/integrations.md (sent verbatim as the request body) - `group_id` (string) (required): Group ID or URL-encoded path - `slug` (string) (required): Integration slug to configure (e.g. slack, jira, harbor). See doc/api/group_integrations.md for the supported list and each integration's config fields Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_integration Configure (create or update) any project integration by slug, passing the integration's documented parameters in a free-form `config` object. Use this generic action for integrations without a dedicated tool (e.g. slack, harbor, jenkins, google-play, apple-app-store, prometheus, microsoft-teams, mattermost, discord). **Parameters:** - `config` (object): Integration configuration parameters as documented for the chosen slug in doc/api/integrations.md (sent verbatim as the request body). For example slack expects webhook; harbor expects url, project_name, username, password; jenkins expects jenkins_url, project_name, username, password - `project_id` (string) (required): Project ID or URL-encoded path - `slug` (string) (required): Integration slug to configure (e.g. slack, harbor, jenkins, google-play). See doc/api/integrations.md for the full list and each integration's config fields Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_jira_integration Configure the Jira integration for a project. Sets up the connection to a Jira instance with URL, credentials, and event triggers. **Parameters:** - `active` (boolean): Enable or disable the integration - `api_url` (string): Jira API URL (overrides base URL) - `comment_on_event_enabled` (boolean): Add comments on Jira issues for events - `commit_events` (boolean): Trigger on commit events - `customize_jira_issue_enabled` (boolean): Customize the Jira issue created for vulnerabilities - `issues_enabled` (boolean): Enable Jira issues integration - `jira_allowed_statuses_as_string` (string): Comma-separated list of allowed Jira statuses (used with jira_status_check_enabled) - `jira_assignee_check_enabled` (boolean): Require the referenced Jira issue to have an assignee - `jira_auth_type` (integer): Jira auth type (0=basic, 1=token) - `jira_check_enabled` (boolean): Require commits/MRs to reference a Jira issue - `jira_exists_check_enabled` (boolean): Require that the referenced Jira issue exists - `jira_issue_prefix` (string): Jira issue key prefix - `jira_issue_regex` (string): Custom regex for Jira issue keys - `jira_issue_transition_automatic` (boolean): Auto-transition Jira issues - `jira_issue_transition_id` (string): Jira transition ID - `jira_status_check_enabled` (boolean): Require the referenced Jira issue to be in an allowed status - `merge_requests_events` (boolean): Trigger on merge request events - `password` (string): Jira password or API token - `project_id` (string) (required): Project ID or URL-encoded path - `project_key` (string): Jira project key where vulnerability tickets are created (when vulnerabilities_enabled is true) - `project_keys` (array of strings): Jira project keys to restrict (used when issues_enabled is true) - `url` (string) (required): Jira instance base URL - `use_inherited_settings` (boolean): Use inherited settings from group - `username` (string): Jira username - `vulnerabilities_enabled` (boolean): Create Jira issues for vulnerabilities - `vulnerabilities_issuetype` (integer): Jira issue type ID used for vulnerability tickets (when vulnerabilities_enabled is true) Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_set_project_mr_external_status_check_status Set the status of an external status check for a merge request. Returns: a success confirmation. See also: gitlab_list_project_mr_external_status_checks, gitlab_retry_failed_external_status_check_for_project_mr. **Parameters:** - `external_status_check_id` (integer) (required): External status check ID to update - `merge_request_iid` (integer) (required): Merge request internal ID - `project_id` (string) (required): Project ID or URL-encoded path - `sha` (string) (required): Head SHA of the merge request source branch - `status` (string) (required): Status value (e.g. passed, failed) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_set_system_hook_url_variable Create or update one URL variable for an instance system hook. Returns: a success status and message naming the variable key. See also: gitlab_edit_system_hook, gitlab_get_system_hook. **Parameters:** - `id` (integer) (required): System hook ID - `key` (string) (required): URL variable key name — letters and underscores only; GitLab rejects keys containing digits - `value` (string) (required): URL variable value — must be non-empty Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_set_user_status Set the current user's status. Returns: the updated emoji, message, availability, and clear-status time. See also: gitlab_current_user_status, gitlab_get_user_status. **Parameters:** - `availability` (string): User availability: not_set (clear busy state) or busy. - `clear_status_after` (string): Duration after which the status auto-clears: 30_minutes, 3_hours, 8_hours, 1_day, 3_days, 7_days, or 30_days. - `emoji` (string): The emoji to set for the status (e.g. coffee or speech_balloon) - `message` (string): The status message text Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### show (1 tool) #### gitlab_show_secure_file Show a secure file. Returns: the secure file with id, name, checksum, and metadata. See also: gitlab_list_secure_files, gitlab_create_secure_file. **Parameters:** - `file_id` (integer) (required): Secure file ID - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### snippet (22 tools) #### gitlab_snippet_content Read a personal snippet's raw content. Returns: the snippet ID and raw text content. See also: gitlab_snippet_get, gitlab_snippet_file_content. **Parameters:** - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_create Create a personal snippet. Returns: the created snippet with ID, visibility, author, files, and web URL. See also: gitlab_snippet_get, gitlab_snippet_update, gitlab_snippet_list. **Parameters:** - `content` (string): Snippet content (single-file, deprecated in favor of files) - `description` (string): Snippet description - `file_name` (string): File name (single-file snippet, deprecated in favor of files) - `files` (array of objects): Files to include in the snippet - `title` (string) (required): Snippet title - `visibility` (string): Visibility: private, internal, or public; defaults to private when omitted Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_snippet_delete Delete a personal snippet permanently. Returns: a success confirmation. See also: gitlab_snippet_get, gitlab_snippet_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_snippet_emoji_create Add an emoji reaction to a project snippet. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_snippet_emoji_list, gitlab_snippet_emoji_delete. **Parameters:** - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_snippet_emoji_delete Remove an emoji reaction from a project snippet by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_snippet_emoji_list, gitlab_snippet_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_snippet_emoji_get Get a single emoji reaction on a project snippet by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_snippet_emoji_list, gitlab_snippet_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_emoji_list List all emoji reactions on a project snippet. Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_snippet_emoji_get, gitlab_snippet_emoji_create, gitlab_project_snippet_get. **Parameters:** - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_explore List public snippets across the instance. Returns: public snippets with author, visibility, and pagination metadata. See also: gitlab_snippet_list, gitlab_snippet_get. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_file_content Read one file from a multi-file personal snippet at a ref. Returns: the snippet ID, ref, file name, and raw content. See also: gitlab_snippet_content, gitlab_snippet_get. **Parameters:** - `file_name` (string) (required): File name to retrieve - `ref` (string) (required): Git ref (branch, tag, or commit SHA) - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_get Get a single personal snippet by ID. Returns: snippet metadata, visibility, author, files, and web URL. See also: gitlab_snippet_list, gitlab_snippet_content, gitlab_snippet_update, gitlab_snippet_delete. **Parameters:** - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_list List snippets owned by the authenticated user. Returns: snippets with title, visibility, author, files, and pagination metadata. See also: gitlab_snippet_get, gitlab_snippet_create, gitlab_snippet_explore. **Parameters:** - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_list_all List all snippets on the instance (admin). Returns: snippets with author, visibility, repository storage, and pagination metadata. See also: gitlab_snippet_list, gitlab_snippet_explore, gitlab_snippet_get. **Parameters:** - `created_after` (string): Filter snippets created after (ISO 8601) - `created_before` (string): Filter snippets created before (ISO 8601) - `order_by` (string): Column to order results by for keyset pagination (e.g. id, created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_storage` (string): Filter by repository storage name (admin only) - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_note_create Add a comment (note) to a project snippet. Returns: the created note with id, author, body, and timestamps. See also: gitlab_snippet_note_list, gitlab_snippet_note_get, gitlab_snippet_get. **Parameters:** - `body` (string) (required): Note body (Markdown supported) - `created_at` (string): Backdate the note to this RFC 3339 timestamp (e.g. 2026-01-15T10:00:00Z). Requires administrator or project/group owner permissions; ignored otherwise. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_snippet_note_delete Delete a snippet note permanently. Returns: a success confirmation naming the note, snippet, and project. See also: gitlab_snippet_note_get, gitlab_snippet_note_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `note_id` (integer) (required): ID of the note to delete - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_snippet_note_emoji_create Add an emoji reaction to a project snippet note. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_snippet_note_emoji_list, gitlab_snippet_note_emoji_delete. **Parameters:** - `name` (string) (required): Emoji name without colons (e.g. thumbsup) - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_snippet_note_emoji_delete Remove an emoji reaction from a project snippet note by award id. Returns: a success confirmation naming the award emoji. See also: gitlab_snippet_note_emoji_list, gitlab_snippet_note_emoji_get. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_snippet_note_emoji_get Get a single emoji reaction on a project snippet note by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: gitlab_snippet_note_emoji_list, gitlab_snippet_note_emoji_delete. **Parameters:** - `award_id` (integer) (required): Award emoji ID - `note_id` (integer) (required): Note ID - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_note_emoji_list List all emoji reactions on a project snippet note (comment). Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: gitlab_snippet_note_emoji_get, gitlab_snippet_note_emoji_create, gitlab_snippet_note_get. **Parameters:** - `note_id` (integer) (required): Note ID - `order_by` (string): Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID - `sort` (string): Sort order: 'asc' or 'desc'. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_note_get Get a single snippet note by its ID. Returns: the note with author, body, timestamps, and position. See also: gitlab_snippet_note_list, gitlab_snippet_note_update, gitlab_snippet_note_delete. **Parameters:** - `note_id` (integer) (required): ID of the note to retrieve - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_note_list List all notes (comments) on a project snippet. Returns: notes with author, body, system flag, and pagination metadata. See also: gitlab_snippet_note_get, gitlab_snippet_note_create, gitlab_snippet_get. **Parameters:** - `order_by` (string): Order by field (created_at, updated_at) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_note_update Update a snippet note's body. Returns: the updated note with new body and updated_at timestamp. See also: gitlab_snippet_note_get, gitlab_snippet_note_list, gitlab_snippet_note_delete. **Parameters:** - `body` (string) (required): Updated note body (Markdown supported) - `note_id` (integer) (required): ID of the note to update - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_snippet_update Update a personal snippet. Returns: the updated snippet with metadata, files, and web URL. See also: gitlab_snippet_get, gitlab_snippet_delete, gitlab_snippet_list. **Parameters:** - `content` (string): New content (single-file, deprecated in favor of files) - `description` (string): New description - `file_name` (string): New file name (single-file, deprecated in favor of files) - `files` (array of objects): File operations to apply - `snippet_id` (integer) (required): Snippet ID - `title` (string): New title - `visibility` (string): New visibility: private, internal, or public Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### start (1 tool) #### gitlab_start_bulk_import Start a bulk import (direct transfer). Returns: the created bulk import with id and status. See also: gitlab_list_bulk_imports, gitlab_get_bulk_import. **Parameters:** - `configuration` (object) (required): Source instance connection details (url, access_token) - `entities` (array of objects) (required): List of entities to migrate Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### subgroups (1 tool) #### gitlab_subgroups_list List the subgroups (descendant groups) of a GitLab group. Returns: descendant groups with path, name, and visibility. See also: gitlab_group_get, gitlab_group_projects, gitlab_group_transfer_locations. **Parameters:** - `active` (boolean): Filter by active (true) or inactive/archived (false) subgroups - `all_available` (boolean): Show all subgroups accessible by the authenticated user - `archived` (boolean): Limit to archived subgroups (true) or non-archived (false) - `custom_attributes` (object): Filter subgroups by custom attribute key/value pairs (administrators only); distinct from with_custom_attributes, which only includes them in the response - `group_id` (string) (required): Group ID or URL-encoded path - `marked_for_deletion_on` (string): Filter to subgroups marked for deletion on this date (YYYY-MM-DD) - `min_access_level` (integer): Minimum access level (5=Minimal access,10=Guest,15=Planner (Premium/Ultimate),20=Reporter,25=Security Manager (Premium/Ultimate),30=Developer,40=Maintainer,50=Owner,60=Admin where supported) - `order_by` (string): Order subgroups by field (name, path, id, similarity) - `owned` (boolean): Limit to subgroups explicitly owned by the authenticated user - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `repository_storage` (string): Filter by repository storage shard (administrators only) - `search` (string): Filter subgroups by name or path - `skip_groups` (array of integers): Group IDs to exclude from results - `sort` (string): Sort direction (asc, desc) - `statistics` (boolean): Include group statistics (storage, counts) - `top_level_only` (boolean): Limit to top-level subgroups (exclude nested descendants) - `visibility` (string): Filter by visibility (public, internal, private) - `with_custom_attributes` (boolean): Include custom attributes in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### tag (9 tools) #### gitlab_tag_create Create a new tag in a project pointing at a ref. Returns: the created tag with target, message, protection flag, and the associated commit object. See also: gitlab_tag_get, gitlab_tag_delete, gitlab_release_create. **Parameters:** - `message` (string): Creates an annotated tag with this message - `project_id` (string) (required): Project ID or URL-encoded path - `ref` (string) (required): Commit SHA, branch name, or another tag to create the tag from - `tag_name` (string) (required): Name of the tag Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_tag_delete Delete a tag from a project permanently. Returns: a success confirmation naming the tag and project. See also: gitlab_tag_get, gitlab_tag_list, gitlab_tag_unprotect. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Name of the tag to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_tag_get Get a single tag from a project by name. Returns: the tag with target, message, protection flag, the full associated commit object, release note, and creation time. See also: gitlab_tag_list, gitlab_tag_get_signature, gitlab_release_get. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name to retrieve Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_tag_get_protected Get a single protected tag or wildcard rule by name. Returns: the protected tag with its create access levels (access level, user, group, and deploy key descriptions). See also: gitlab_tag_list_protected, gitlab_tag_protect, gitlab_tag_unprotect. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Name of the protected tag Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_tag_get_signature Get the X.509 signature of a tag. Returns: the signature type, verification status, and the X.509 certificate with issuer detail. See also: gitlab_tag_get, gitlab_tag_list. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name to retrieve signature for Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_tag_list List tags in one project with optional search and offset or keyset pagination. Returns: matching tags with target, message, protection flag, the associated commit object, release note, and pagination metadata. See also: gitlab_tag_get, gitlab_tag_create, gitlab_release_list. **Parameters:** - `order_by` (string): Order tags by field (name, updated) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `search` (string): Search query to filter tags by name - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_tag_list_protected List protected tags in one project with offset or keyset pagination. Returns: protected tag patterns with their create access levels and pagination metadata. See also: gitlab_tag_get_protected, gitlab_tag_protect, gitlab_tag_list. **Parameters:** - `order_by` (string): Column to order keyset-paginated results by - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (string) (required): Project ID or URL-encoded path - `sort` (string): Sort direction (asc, desc) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_tag_protect Protect a tag or wildcard pattern with create access levels. Returns: the protected tag with its resolved create access levels. See also: gitlab_tag_unprotect, gitlab_tag_list_protected, gitlab_tag_get_protected. **Parameters:** - `allowed_to_create` (array of objects): Granular create permissions (user_id, group_id, deploy_key_id, access_level) - `create_access_level` (integer): Access level allowed to create (0=No access, 30=Developer, 40=Maintainer) - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Tag name or wildcard pattern (e.g. 'v*') Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_tag_unprotect Remove protection from a tag or wildcard pattern. Returns: a success confirmation naming the tag and project. See also: gitlab_tag_protect, gitlab_tag_list_protected, gitlab_tag_get_protected. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `tag_name` (string) (required): Name of the protected tag to unprotect Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true ### test (1 tool) #### gitlab_test_system_hook Send a test event to a system hook. Returns: the delivery status of the test event. See also: gitlab_get_system_hook, gitlab_edit_system_hook. **Parameters:** - `id` (integer) (required): System hook ID to test Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### todo (3 tools) #### gitlab_todo_list List the authenticated user's to-do items with optional filtering and pagination. Returns: to-do items with action, target object, project, author, state, and pagination metadata. See also: gitlab_todo_mark_done, gitlab_todo_mark_all_done. **Parameters:** - `action` (string): Filter by action: assigned, mentioned, build_failed, marked, approval_required, directly_addressed - `author_id` (integer): Filter by author user ID - `group_id` (integer): Filter by group ID - `order_by` (string): Order results by field (e.g. id, created_at). Combine with sort. - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `project_id` (integer): Filter by project ID - `sort` (string): Sort direction: asc or desc. - `state` (string): Filter by state: pending or done (default: pending) - `type` (string): Filter by target type: Issue, MergeRequest, DesignManagement::Design, AlertManagement::Alert Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_todo_mark_all_done Mark all pending to-do items as done. Returns: a confirmation that all items were cleared. See also: gitlab_todo_list, gitlab_todo_mark_done. Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_todo_mark_done Mark a single to-do item as done. Returns: a confirmation naming the to-do item ID. See also: gitlab_todo_list, gitlab_todo_mark_all_done. **Parameters:** - `id` (integer) (required): ID of the to-do item to mark as done Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### track (2 tools) #### gitlab_track_event Track one usage event. Returns: a success status. See also: gitlab_track_events, gitlab_get_service_ping. **Parameters:** - `additional_properties` (object): Additional event properties forwarded to the tracking endpoint - `event` (string) (required): Event name to track - `namespace_id` (integer): Namespace ID - `project_id` (integer): Project ID - `send_to_snowplow` (boolean): Whether to send event to Snowplow Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_track_events Track multiple usage events. Returns: a success status. See also: gitlab_track_event, gitlab_get_service_ping. **Parameters:** - `events` (array of objects) (required): Array of events to track Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ### unban (1 tool) #### gitlab_unban_user Unban a previously banned user. Returns: confirmation with the user ID and action. See also: gitlab_ban_user, gitlab_unblock_user, gitlab_get_user. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### unblock (1 tool) #### gitlab_unblock_user Unblock a previously blocked user. Returns: confirmation with the user ID and action. See also: gitlab_block_user, gitlab_activate_user, gitlab_get_user. **Parameters:** - `user_id` (integer) (required): The ID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### unlock (1 tool) #### gitlab_unlock_terraform_state Unlock a project Terraform state by project_id and state name. Returns: the state with its lock released. See also: gitlab_lock_terraform_state, gitlab_get_terraform_state, gitlab_list_terraform_states. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `name` (string) (required): Terraform state name. Use params.name for values such as production or eval-unlock-123; do not use id. - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### update (24 tools) #### gitlab_update_alert_metric_image Update an alert metric image. Returns: the updated metric image. See also: gitlab_list_alert_metric_images, gitlab_delete_alert_metric_image. **Parameters:** - `alert_iid` (integer) (required): Alert IID - `image_id` (integer) (required): Metric image ID - `project_id` (string) (required): Project ID or URL-encoded path - `url` (string) (required): URL to link the metric image to - `url_text` (string) (required): Text for the URL link Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_appearance Update GitLab application appearance and branding settings. Returns: the updated appearance object after GitLab applies the change. See also: gitlab_get_appearance, gitlab_get_settings, gitlab_get_metadata. **Parameters:** - `description` (string): Instance description on sign-in page - `email_header_and_footer_enabled` (boolean): Enable header and footer in emails - `favicon` (string): Path to the favicon image asset - `footer_message` (string): Message in footer bar - `header_logo` (string): Path to the header logo image asset - `header_message` (string): Message in header bar - `logo` (string): Path to the instance logo image asset - `member_guidelines` (string): Markdown guidelines for adding members - `message_background_color` (string): Background color for header/footer messages (hex) - `message_font_color` (string): Font color for header/footer messages (hex) - `new_project_guidelines` (string): Markdown guidelines for new projects - `profile_image_guidelines` (string): Markdown guidelines for profile images - `pwa_description` (string): PWA description - `pwa_icon` (string): Path to the PWA icon image asset - `pwa_name` (string): Progressive Web App name - `pwa_short_name` (string): PWA short name - `title` (string): Application title displayed in the header - `url` (string): Redirect URL for the system header/footer logo image Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_broadcast_message Update a broadcast message. Returns: the updated message. See also: gitlab_get_broadcast_message, gitlab_delete_broadcast_message. **Parameters:** - `broadcast_type` (string): Type: banner or notification - `dismissable` (boolean): Whether message can be dismissed - `ends_at` (string): End time in ISO 8601 format - `font` (string): Font for the message - `id` (integer) (required): Broadcast message ID - `message` (string): Message text. Supports Markdown. - `starts_at` (string): Start time in ISO 8601 format - `target_access_levels` (array of integers): Access levels to target - `target_path` (string): Target path to show message on - `theme` (string): Theme color Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_commit_discussion_note Update the body of a note in a commit discussion thread. Returns: the updated note (author, body, timestamps). See also: gitlab_add_commit_discussion_note, gitlab_delete_commit_discussion_note, gitlab_get_commit_discussion. **Parameters:** - `body` (string) (required): Updated note body - `commit_sha` (string) (required): Commit SHA - `created_at` (string): Override the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID - `note_id` (integer) (required): Note ID to update - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_compliance_policy_settings Update the instance compliance policy settings. Returns: the compliance policy settings with the newly bound centralized compliance security policy (CSP) namespace ID. See also: gitlab_get_compliance_policy_settings, gitlab_group_get. **Parameters:** - `csp_namespace_id` (integer): Namespace ID for the compliance security policy project Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_epic_discussion_note Update the body of a note in an epic discussion thread. Returns: the updated note (id, author username, body, timestamps). See also: gitlab_add_epic_discussion_note, gitlab_delete_epic_discussion_note, gitlab_get_epic_discussion. **Parameters:** - `body` (string) (required): Updated note body - `epic_iid` (integer) (required): Epic IID within the group - `full_path` (string) (required): Full path of the group (e.g. my-group) - `note_id` (integer) (required): Note ID to update Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_freeze_period Update a deploy freeze period's cron schedule or timezone. **Parameters:** - `cron_timezone` (string): Timezone for cron expressions - `freeze_end` (string): Cron expression for freeze end - `freeze_period_id` (integer) (required): Freeze period ID - `freeze_start` (string): Cron expression for freeze start - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_group_mr_approval_settings Update the merge request approval settings of a group. Returns: the resulting settings (value, locked flag, and inherited-from source for each setting). See also: gitlab_get_group_mr_approval_settings, gitlab_update_project_mr_approval_settings. **Parameters:** - `allow_author_approval` (boolean): Allow merge request authors to approve their own MRs - `allow_committer_approval` (boolean): Allow committers to approve MRs they contributed to - `allow_overrides_to_approver_list_per_merge_request` (boolean): Allow overriding the approver list per merge request - `group_id` (string) (required): Group ID or URL-encoded path - `require_reauthentication_to_approve` (boolean): Require password re-entry to approve - `retain_approvals_on_push` (boolean): Retain approvals when new commits are pushed Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_group_scim_identity Update the extern_uid of an existing group SCIM identity. Returns: a confirmation that the SCIM identity's external UID was rewritten. See also: gitlab_get_group_scim_identity, gitlab_list_group_scim_identities, gitlab_delete_group_scim_identity. **Parameters:** - `extern_uid` (string) (required): New external UID value - `group_id` (string) (required): Group ID or URL-encoded path - `uid` (string) (required): SCIM external UID of the user Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_group_secret_push_protection Enable or disable secret push protection for a whole group, inherited by its projects (Ultimate). Returns: the group's secret_push_protection_enabled state and any errors. See also: gitlab_update_project_secret_push_protection, gitlab_group_get. **Parameters:** - `group_id` (string) (required): Group ID or URL-encoded path - `projects_to_exclude` (array of integers): Project IDs to exclude from group-level protection - `secret_push_protection_enabled` (boolean) (required): Enable or disable secret push protection Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_instance_service_account Update an instance-level service account. Returns: updated service account object including email and unconfirmed_email. Requires admin token. See also: gitlab_create_service_account, gitlab_list_service_accounts. **Parameters:** - `email` (string): New email for the service account - `name` (string): New name for the service account - `service_account_id` (integer) (required): Service account ID to update - `username` (string): New username for the service account Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_issue_discussion_note Update the body of a note in an issue discussion thread. Returns: the updated note. See also: gitlab_add_issue_discussion_note, gitlab_delete_issue_discussion_note, gitlab_get_issue_discussion. **Parameters:** - `body` (string) (required): Updated note body - `created_at` (string): Override the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID - `issue_iid` (integer) (required): Issue internal ID - `note_id` (integer) (required): Note ID to update - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_package_protection_rule Update an existing package protection rule by its id. Returns: the updated rule's id, project id, package name pattern, package type, and minimum push/delete access levels. See also: gitlab_list_package_protection_rules, gitlab_create_package_protection_rule, gitlab_delete_package_protection_rule. **Parameters:** - `minimum_access_level_for_delete` (string): Minimum access level for delete (maintainer, owner, admin) - `minimum_access_level_for_push` (string): Minimum access level for push (maintainer, owner, admin) - `package_name_pattern` (string): Package name pattern with optional wildcards - `package_type` (string): Package type (npm, pypi, maven, generic, etc.) - `project_id` (string) (required): Project ID or URL-encoded path - `rule_id` (integer) (required): Package protection rule ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_project_external_status_check Update a project external status check service. Returns: the updated check with id, name, external_url, hmac, and protected branches. See also: gitlab_list_project_external_status_checks, gitlab_create_project_external_status_check, gitlab_delete_project_external_status_check. **Parameters:** - `check_id` (integer) (required): External status check ID to update - `external_url` (string): Updated external URL - `name` (string): Updated name - `project_id` (string) (required): Project ID or URL-encoded path - `protected_branch_ids` (array of integers): Updated protected branch IDs - `shared_secret` (string): Updated shared secret for HMAC verification Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_project_mr_approval_settings Update the merge request approval settings of a project. Returns: the resulting settings (value, locked flag, and inherited-from source for each setting). See also: gitlab_get_project_mr_approval_settings, gitlab_update_group_mr_approval_settings. **Parameters:** - `allow_author_approval` (boolean): Allow merge request authors to approve their own MRs - `allow_committer_approval` (boolean): Allow committers to approve MRs they contributed to - `allow_overrides_to_approver_list_per_merge_request` (boolean): Allow overriding the approver list per merge request - `project_id` (string) (required): Project ID or URL-encoded path - `require_reauthentication_to_approve` (boolean): Require password re-entry to approve - `retain_approvals_on_push` (boolean): Retain approvals when new commits are pushed - `selective_code_owner_removals` (boolean): Only remove Code Owner approvals for changed files (project-only) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_project_secret_push_protection Enable or disable secret push protection for a project (Ultimate). Returns: the project's security settings including secret_push_protection_enabled, continuous vulnerability scanning, and auto-fix flags. See also: gitlab_get_project_security_settings, gitlab_update_group_secret_push_protection. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `secret_push_protection_enabled` (boolean) (required): Enable or disable secret push protection Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_project_security_attributes Add or remove GitLab security attributes on a project via GraphQL. Requires Premium or Ultimate. Returns: project security attribute assignments. See also: gitlab_security_attribute, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityattributeprojectupdate **Parameters:** - `add_attribute_ids` (array of integers): Security attribute IDs to add - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (integer) (required): Numeric project ID - `remove_attribute_ids` (array of integers): Security attribute IDs to remove Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_update_repository_submodule Update a submodule pointer to a new commit SHA on a branch. Returns: the created commit with id, short_id, title, author and committer details, dates, parent_ids, message, and web_url. See also: gitlab_list_repository_submodules, gitlab_read_repository_submodule_file, gitlab_commit_get. **Parameters:** - `branch` (string) (required): Branch name to commit the update to - `commit_message` (string): Custom commit message (optional) - `commit_sha` (string) (required): Full commit SHA to update the submodule to - `project_id` (string) (required): Project ID or URL-encoded path - `submodule` (string) (required): URL-encoded full path to the submodule Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_security_attribute Update a GitLab security attribute name, description, or color via GraphQL. Requires Premium or Ultimate. Returns: updated security attribute metadata. See also: gitlab_security_category, gitlab_project, gitlab_group. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecurityattributeupdate **Parameters:** - `attribute_id` (integer) (required): Numeric security attribute ID - `color` (string): New security attribute color as a hex code (e.g. #FF0000) - `description` (string): New security attribute description - `name` (string): New security attribute name Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_security_category Update a GitLab security category name or description via GraphQL. Requires Premium or Ultimate. Returns: updated security category. See also: gitlab_security_attribute, gitlab_group, gitlab_project. API docs: https://docs.gitlab.com/api/graphql/reference/#mutationsecuritycategoryupdate **Parameters:** - `category_id` (integer) (required): Numeric security category ID - `description` (string): New security category description - `name` (string): New security category name - `namespace_id` (integer) (required): Numeric namespace ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_settings Update GitLab application settings. Returns: the full updated application settings object. See also: gitlab_get_settings, gitlab_update_appearance. **Parameters:** - `settings` (object) (required): Map of setting_name to new value. Use snake_case keys matching GitLab API fields (e.g. signup_enabled, default_project_visibility, max_artifacts_size). Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_snippet_discussion_note Update the body of a note in a snippet discussion thread. Returns: the updated note. See also: gitlab_add_snippet_discussion_note, gitlab_delete_snippet_discussion_note, gitlab_get_snippet_discussion. **Parameters:** - `body` (string) (required): Updated note body - `created_at` (string): Override the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z); requires admin or owner rights - `discussion_id` (string) (required): Discussion ID - `note_id` (integer) (required): Note ID to update - `project_id` (string) (required): Project ID or URL-encoded path - `snippet_id` (integer) (required): Snippet ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_topic Update a project topic. Returns: the updated topic. See also: gitlab_get_topic, gitlab_delete_topic. **Parameters:** - `description` (string): New topic description - `name` (string): New topic name - `title` (string): New topic title - `topic_id` (integer) (required): Topic ID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_update_work_item Update an existing work item by namespace path and IID. Returns: the updated work item with id, iid, type, state, status, title, description, assignees, labels, linked items, child work items, and web URL. Experimental. See also: gitlab_get_work_item, gitlab_delete_work_item, gitlab_list_work_items. **Parameters:** - `add_label_ids` (array of integers): Global IDs of labels to add - `assignee_ids` (array of integers): Global IDs of assignees. Replaces the current assignees; pass an empty array [] to remove every assignee. Omit the field to leave assignees untouched - `color` (string): Color hex code (e.g. #fefefe) - `confirm` (boolean): Confirms removing existing assignees or CRM contacts when assignee_ids or crm_contact_ids is an empty array. Only required when entries would actually be deleted - `crm_contact_ids` (array of integers): CRM contact IDs. Replaces the current contacts; pass an empty array [] to remove every contact. Omit the field to leave contacts untouched - `description` (string): New description - `due_date` (string): Due date (YYYY-MM-DD) - `full_path` (string) (required): Full path of the project or group (e.g. my-group/my-project) - `health_status` (string): Health status (onTrack/needsAttention/atRisk) - `iteration_id` (integer): Global ID of the iteration - `milestone_id` (integer): Global ID of the milestone - `parent_id` (integer): Global ID of the parent work item - `remove_label_ids` (array of integers): Global IDs of labels to remove - `start_date` (string): Start date (YYYY-MM-DD) - `state_event` (string): State event: CLOSE or REOPEN - `status` (string): Work item status: TODO, IN_PROGRESS, DONE, WONT_DO, or DUPLICATE - `title` (string): New title - `weight` (integer): Weight of the work item - `work_item_iid` (integer) (required): Work item IID Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### upload (2 tools) #### gitlab_upload_alert_metric_image Upload an alert metric image. Returns: the uploaded metric image with id, filename, and url. See also: gitlab_list_alert_metric_images, gitlab_update_alert_metric_image. **Parameters:** - `alert_iid` (integer) (required): Alert IID - `content_base64` (string): Base64-encoded image content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local image file on the MCP server filesystem. Alternative to content_base64. Only one of file_path or content_base64 should be provided. - `filename` (string) (required): Image filename - `project_id` (string) (required): Project ID or URL-encoded path - `url` (string) (required): URL to link the metric image to - `url_text` (string) (required): Text for the URL link Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_upload_user_avatar Upload the current user's avatar. Returns: the updated user profile including the new avatar URL; GitLab 19 responds with only avatar_url, so other profile fields (including id) may be empty — use gitlab_user_current for the full profile. Provide filename and exactly one of file_path or content_base64. See also: gitlab_user_current, gitlab_modify_user. **Parameters:** - `content_base64` (string): Base64-encoded image content. Only one of file_path or content_base64 should be provided. - `file_path` (string): Absolute path to a local image file on the MCP server filesystem. Alternative to content_base64 for files too large to base64-encode. Only one of file_path or content_base64 should be provided. - `filename` (string) (required): Avatar filename (e.g. avatar.png) Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true ### user (2 tools) #### gitlab_user_contribution_event_list List the current user's contribution events. Returns: each event with action_name, target type and IID, push_data, embedded note, author object, created timestamp, and pagination metadata. See also: gitlab_project_event_list, gitlab_user_get. **Parameters:** - `action` (string): Filter by action type (created, updated, closed, reopened, pushed, commented, merged, joined, left, destroyed, expired) - `after` (string): Return events after this date (YYYY-MM-DD) - `before` (string): Return events before this date (YYYY-MM-DD) - `order_by` (string): Column by which to order keyset-paginated results (id) - `page` (integer): Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. - `page_token` (string): Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination='keyset'. - `pagination` (string): Pagination method: 'keyset' for keyset-based pagination on large ordered result sets, or 'offset' (the default). Keyset avoids deep-offset cost. - `per_page` (integer): Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. - `scope` (string): Include events from all projects (all) or only user's projects - `sort` (string): Sort order (asc or desc) - `target_type` (string): Filter by target type (issue, milestone, merge_request, note, project, snippet, user) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_user_current Get the current authenticated user. Returns: account ID, username, name, state, avatar URL, and profile metadata. See also: gitlab_list_users, gitlab_current_user_status, gitlab_list_emails. Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### vulnerability (1 tool) #### gitlab_vulnerability_severity_count Count a project's vulnerabilities grouped by severity. Returns: critical, high, medium, low, info, and unknown counts. See also: gitlab_list_vulnerabilities, gitlab_pipeline_security_summary. **Parameters:** - `project_path` (string) (required): Full path of the project (e.g. my-group/my-project) Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true ### wiki (6 tools) #### gitlab_wiki_create Create a new wiki page. Returns: the created page with title, slug, format, content, and encoding. See also: gitlab_wiki_get, gitlab_wiki_update, gitlab_wiki_list. **Parameters:** - `content` (string) (required): Content of the wiki page (Markdown, RDoc, AsciiDoc, or Org) - `format` (string): Content format: markdown (default), rdoc, asciidoc, or org - `project_id` (string) (required): Project ID or URL-encoded path - `title` (string) (required): Title of the wiki page Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true #### gitlab_wiki_delete Delete a wiki page permanently. Returns: a success confirmation for the removed page. See also: gitlab_wiki_get, gitlab_wiki_list. **Parameters:** - `confirm` (boolean): Set true to explicitly confirm this destructive action instead of relying on MCP elicitation. - `project_id` (string) (required): Project ID or URL-encoded path - `slug` (string) (required): URL-encoded slug of the wiki page to delete Annotations: readOnly=false, destructive=true, idempotent=true, openWorld=true #### gitlab_wiki_get Get a single wiki page by slug. Returns: the page title, slug, format, content, and encoding. See also: gitlab_wiki_list, gitlab_wiki_update, gitlab_wiki_delete. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `render_html` (boolean): Return HTML-rendered content instead of raw format - `slug` (string) (required): URL-encoded slug of the wiki page (e.g. 'my-page') - `version` (string): Wiki page version SHA to retrieve a specific revision Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_wiki_list List a project's wiki pages. Returns: each page's title, slug, and format (plus content when with_content is set), with hints to read or create pages. See also: gitlab_wiki_get, gitlab_wiki_create. **Parameters:** - `project_id` (string) (required): Project ID or URL-encoded path - `with_content` (boolean): Include page content in the response Annotations: readOnly=true, destructive=false, idempotent=true, openWorld=true #### gitlab_wiki_update Update an existing wiki page by slug. Returns: the updated page with title, slug, format, content, and encoding. See also: gitlab_wiki_get, gitlab_wiki_delete, gitlab_wiki_list. **Parameters:** - `content` (string): New content for the wiki page - `format` (string): Content format: markdown, rdoc, asciidoc, or org - `project_id` (string) (required): Project ID or URL-encoded path - `slug` (string) (required): URL-encoded slug of the wiki page to update - `title` (string): New title for the wiki page Annotations: readOnly=false, destructive=false, idempotent=true, openWorld=true #### gitlab_wiki_upload_attachment Upload an attachment to the project wiki repository. Returns: the attachment file name, file path, branch, URL, and ready-to-paste Markdown link. See also: gitlab_wiki_get, gitlab_wiki_update. **Parameters:** - `branch` (string): Branch to upload the attachment to - `content_base64` (string): Base64-encoded file content. Provide either content_base64 or file_path - `file_path` (string): Absolute path to a local file. Provide either file_path or content_base64 - `filename` (string) (required): Name of the file to upload (e.g. diagram.png) - `project_id` (string) (required): Project ID or URL-encoded path Annotations: readOnly=false, destructive=false, idempotent=false, openWorld=true ## Resources 45 resources providing read-only access to GitLab data. ### groups - **URI**: `gitlab://groups` - **MIME**: application/json - **Description**: List all GitLab groups accessible to the authenticated user. Returns each group's ID, name, full path, description, visibility level, and web URL. ### code_review - **URI**: `gitlab://guides/code-review` - **MIME**: text/markdown - **Description**: Code review checklist and best practices for GitLab merge request reviews. ### conventional_commits - **URI**: `gitlab://guides/conventional-commits` - **MIME**: text/markdown - **Description**: Conventional commit message format and examples for consistent Git history. ### git_workflow - **URI**: `gitlab://guides/git-workflow` - **MIME**: text/markdown - **Description**: Best practices for Git branching strategies with GitLab (feature branches, trunk-based, GitLab Flow). ### merge_request_hygiene - **URI**: `gitlab://guides/merge-request-hygiene` - **MIME**: text/markdown - **Description**: Guidelines for creating and reviewing high-quality merge requests. ### pipeline_troubleshooting - **URI**: `gitlab://guides/pipeline-troubleshooting` - **MIME**: text/markdown - **Description**: Common GitLab CI/CD pipeline issues and how to diagnose and fix them. ### tool_manifest - **URI**: `gitlab://tools` - **MIME**: application/json - **Description**: Surface-aware manifest of the tools and executable actions available in this server instance. Use gitlab://tools/{id} to fetch one entry's accepted call shape and input schema. ### current_user - **URI**: `gitlab://user/current` - **MIME**: application/json - **Description**: Get the currently authenticated GitLab user profile. Returns username, display name, email, state (active/blocked), admin status, and web URL. ### group - **URI Template**: `gitlab://group/{group_id}` - **MIME**: application/json - **Description**: Get details for a specific GitLab group by numeric ID or URL-encoded path. Returns name, full path, description, visibility, and web URL. ### group_label - **URI Template**: `gitlab://group/{group_id}/label/{label_id}` - **MIME**: application/json - **Description**: Get details for a single group label by numeric ID or name. Returns id, name, color, description, and open issue/MR counts. ### group_members - **URI Template**: `gitlab://group/{group_id}/members` - **MIME**: application/json - **Description**: List all members of a GitLab group with their access levels (10=guest, 20=reporter, 30=developer, 40=maintainer, 50=owner). Includes inherited members. ### group_milestone - **URI Template**: `gitlab://group/{group_id}/milestone/{milestone_iid}` - **MIME**: application/json - **Description**: Get details for a single group milestone by IID. Returns id, iid, title, description, state, due date, and web URL. ### group_projects - **URI Template**: `gitlab://group/{group_id}/projects` - **MIME**: application/json - **Description**: List all projects within a GitLab group. Returns each project's ID, name, namespace path, visibility, web URL, description, and default branch. ### project - **URI Template**: `gitlab://project/{project_id}` - **MIME**: application/json - **Description**: Get basic metadata for a GitLab project by numeric ID or URL-encoded path. Returns name, namespace path, visibility, web URL, description, and default branch. ### board - **URI Template**: `gitlab://project/{project_id}/board/{board_id}` - **MIME**: application/json - **Description**: Get details for a single project issue board by numeric ID. Returns id and name. ### branch - **URI Template**: `gitlab://project/{project_id}/branch/{branch}` - **MIME**: application/json - **Description**: Get details for a single repository branch. Returns name, protection status, merge status, default flag, and web URL. ### project_branches - **URI Template**: `gitlab://project/{project_id}/branches` - **MIME**: application/json - **Description**: List all branches in a GitLab project. Returns each branch's name, protection status, merge status, default flag, and web URL. ### commit - **URI Template**: `gitlab://project/{project_id}/commit/{sha}` - **MIME**: application/json - **Description**: Get details for a single commit by SHA. Returns short_id, title, message, author, committer, authored/committed dates, parent commits, web URL, and stats (additions/deletions). ### deploy_key - **URI Template**: `gitlab://project/{project_id}/deploy_key/{deploy_key_id}` - **MIME**: application/json - **Description**: Get details for a single project deploy key by numeric ID. Returns id, title, key, and fingerprint. ### deployment - **URI Template**: `gitlab://project/{project_id}/deployment/{deployment_id}` - **MIME**: application/json - **Description**: Get details for a single project deployment by numeric ID. Returns id, iid, ref, sha, status, and environment name. ### environment - **URI Template**: `gitlab://project/{project_id}/environment/{environment_id}` - **MIME**: application/json - **Description**: Get details for a single project environment by numeric ID. Returns id, name, slug, state, and tier. ### feature_flag - **URI Template**: `gitlab://project/{project_id}/feature_flag/{name}` - **MIME**: application/json - **Description**: Get details for a single project feature flag by name. Returns name, description, active, and version. ### file_blob - **URI Template**: `gitlab://project/{project_id}/file/{ref}/{+path}` - **MIME**: application/json - **Description**: Get the contents of a repository file at a specific ref (branch, tag, or SHA). Path may include slashes. Files over 1 MiB return metadata only with truncated=true. Binary files return metadata with empty content. ### issue - **URI Template**: `gitlab://project/{project_id}/issue/{issue_iid}` - **MIME**: application/json - **Description**: Get details of a specific issue by its IID (project-scoped ID). Returns title, state, labels, assignees, author, web URL, and creation date. ### project_issues - **URI Template**: `gitlab://project/{project_id}/issues` - **MIME**: application/json - **Description**: List open issues for a GitLab project. Returns each issue's IID, title, state, labels, assignees, author, web URL, and creation date. ### job - **URI Template**: `gitlab://project/{project_id}/job/{job_id}` - **MIME**: application/json - **Description**: Get details for a single CI job by numeric ID. Returns id, name, stage, status, ref, duration, and web URL. ### label - **URI Template**: `gitlab://project/{project_id}/label/{label_id}` - **MIME**: application/json - **Description**: Get details for a single project label by numeric ID or label name. Returns id, name, color, description, and open issue/MR counts. ### project_labels - **URI Template**: `gitlab://project/{project_id}/labels` - **MIME**: application/json - **Description**: List all labels defined in a GitLab project. Returns each label's name, color, description, and counts of open issues and merge requests using the label. ### project_members - **URI Template**: `gitlab://project/{project_id}/members` - **MIME**: application/json - **Description**: List all members of a GitLab project with their access levels (10=guest, 20=reporter, 30=developer, 40=maintainer, 50=owner). Includes inherited members from parent groups. ### milestone - **URI Template**: `gitlab://project/{project_id}/milestone/{milestone_iid}` - **MIME**: application/json - **Description**: Get details for a single project milestone by IID. Returns id, iid, title, description, state, due date, and web URL. ### project_milestones - **URI Template**: `gitlab://project/{project_id}/milestones` - **MIME**: application/json - **Description**: List all milestones in a GitLab project. Returns each milestone's title, description, state (active/closed), due date, and web URL. ### merge_request - **URI Template**: `gitlab://project/{project_id}/mr/{merge_request_iid}` - **MIME**: application/json - **Description**: Get details of a specific merge request by its IID (project-scoped ID). Returns title, state, source/target branches, author, merge status, and web URL. ### merge_request_discussions - **URI Template**: `gitlab://project/{project_id}/mr/{merge_request_iid}/discussions` - **MIME**: application/json - **Description**: List discussion threads on a merge request. Each discussion has an id, individual_note flag, and an array of notes (id, author, body, system, resolved/resolvable, created_at). ### merge_request_notes - **URI Template**: `gitlab://project/{project_id}/mr/{merge_request_iid}/notes` - **MIME**: application/json - **Description**: List notes (comments) on a merge request. Returns each note's id, author username, body, system flag, resolvable/resolved flags, and timestamps. ### pipeline - **URI Template**: `gitlab://project/{project_id}/pipeline/{pipeline_id}` - **MIME**: application/json - **Description**: Get details of a specific CI/CD pipeline by its numeric ID. Returns pipeline status, ref, SHA, source, and web URL. ### pipeline_jobs - **URI Template**: `gitlab://project/{project_id}/pipeline/{pipeline_id}/jobs` - **MIME**: application/json - **Description**: List all jobs for a specific CI/CD pipeline including each job's name, stage, status, duration, failure reason (if failed), and web URL. ### latest_pipeline - **URI Template**: `gitlab://project/{project_id}/pipelines/latest` - **MIME**: application/json - **Description**: Get the most recent CI/CD pipeline for a GitLab project. Returns pipeline ID, status (running/pending/success/failed/canceled), ref, SHA, source, and web URL. ### release - **URI Template**: `gitlab://project/{project_id}/release/{tag_name}` - **MIME**: application/json - **Description**: Get details for a single GitLab release by tag name. Returns tag_name, name, description, author, creation/release dates. ### project_releases - **URI Template**: `gitlab://project/{project_id}/releases` - **MIME**: application/json - **Description**: List all releases for a GitLab project. Returns each release's tag name, name, description, author, and creation/release dates. ### project_snippet - **URI Template**: `gitlab://project/{project_id}/snippet/{snippet_id}` - **MIME**: application/json - **Description**: Get details for a single project snippet by numeric ID. Returns id, title, file_name, description, visibility, and web URL. ### tag - **URI Template**: `gitlab://project/{project_id}/tag/{tag_name}` - **MIME**: application/json - **Description**: Get details for a single Git tag. Returns name, target commit SHA, annotation message, and protection status. ### project_tags - **URI Template**: `gitlab://project/{project_id}/tags` - **MIME**: application/json - **Description**: List all repository tags for a GitLab project. Returns each tag's name, message, target commit SHA, protection status, and creation date. ### wiki_page - **URI Template**: `gitlab://project/{project_id}/wiki/{slug}` - **MIME**: application/json - **Description**: Get a wiki page by slug. Returns title, slug, format (markdown/rdoc/asciidoc/org), and raw content. Slugs are case-sensitive and use hyphens for spaces. ### snippet - **URI Template**: `gitlab://snippet/{snippet_id}` - **MIME**: application/json - **Description**: Get details for a single personal/global snippet by numeric ID. Returns id, title, file_name, description, visibility, and web URL. ### tool_detail - **URI Template**: `gitlab://tools/{id}` - **MIME**: application/json - **Description**: Accepted call shape and input schema for one entry from gitlab://tools. Replace {id} with an entry ID from the active surface, such as project.get in dynamic mode, gitlab_project.get in meta mode, or gitlab_get_project in individual mode. ## Prompts 37 prompt templates for AI-assisted GitLab workflows. ### audit_commit_hygiene Audit commit message quality between two refs. Scores Conventional Commit usage, merge commits, breaking-change markers, body/detail quality, and linked work references for release and contribution readiness. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `from` (required): Starting ref: tag name, branch name, or commit SHA - `to`: Ending ref: tag name, branch name, or commit SHA (defaults to HEAD if omitted) ### audit_project_full Run a comprehensive audit of a GitLab project covering settings, branch protection, access management, labels, milestones, and templates in a single report. Use this for a complete project health assessment with actionable recommendations. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### audit_project_workflow Audit workflow configuration for a GitLab project: labels (names, colors, descriptions), milestones (open/closed, due dates), and issue/MR templates. Identifies gaps like labels without descriptions, milestones without due dates, or missing templates. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### branch_mr_summary List all MRs targeting a specific branch in a project. Shows readiness summary with conflict/draft/approval counts. Ideal for release branch reviews. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `target_branch` (required): Target branch name to filter MRs (e.g. 'develop_5.4.0') - `state`: State filter: opened, closed, merged, all (default: opened) ### compare_branches Compare commit and file differences between two Git refs. Use for release branch preparation, feature branch divergence analysis, or deciding whether a merge/backport needs deeper review. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `from` (required): Source branch name, tag, or commit SHA to compare from - `to` (required): Target branch name, tag, or commit SHA to compare to ### daily_standup Generate a daily standup summary based on the user's GitLab activity in the last 24 hours: contribution events, authored MRs, assigned MRs, MRs under review, assigned issues, and created issues. Produces a comprehensive report with done/planned/blockers sections. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `username`: GitLab username to generate the standup for (defaults to the authenticated user if omitted) ### generate_release_notes Generate comprehensive release notes from commits, merge requests, and file changes between two Git refs (tags, branches, or SHAs). Produces a structured document with commits, merged MRs with labels, contributors, and statistics for organizing into user-friendly release notes. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `from` (required): Starting ref: tag name (e.g. 'v1.0.0'), branch name, or commit SHA - `to`: Ending ref: tag name, branch name, or commit SHA (defaults to HEAD if omitted) ### group_milestone_progress Track milestone progress across all projects in a group. Shows issue/MR completion per milestone with progress bars. **Arguments:** - `group_id` (required): GitLab group ID (numeric) or URL-encoded path (e.g. 'my-group' or 'parent/child') ### group_mr_dashboard List merge requests across a GitLab group with optional state and target branch filters. Shows MRs grouped by project with blocker and readiness summary statistics. **Arguments:** - `group_id` (required): GitLab group ID (numeric) or URL-encoded path (e.g. 'my-group' or 'parent/child') - `state`: State filter: opened, closed, merged, all (default: opened) - `target_branch`: Target branch name to filter MRs (e.g. 'develop_5.4.0') ### label_distribution Analyze label usage distribution in a project. Shows open/closed issue counts and open MR counts per label. Zero additional API calls beyond label list. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### merge_velocity Analyze MR throughput metrics for a project. Shows merge rate, average time-to-merge, and daily merged count chart. Ideal for tracking team delivery pace. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `days`: Number of days to look back (default: 30) ### milestone_progress Track milestone progress for a project. Shows issue/MR completion, progress bar, and due date risk. Omit milestone argument to see all active milestones. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `milestone`: Specific milestone title (omit for all active) ### mr_description_quality Score a merge request description for reviewer readiness. Checks context, linked work, test evidence, rollout/risk notes, checklists, and whether changed files suggest missing screenshots or migration notes. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `merge_request_iid` (required): Merge request IID (project-scoped numeric ID, visible as !N in GitLab) ### mr_discussion_health Analyze unresolved discussion threads across open MRs in a project. Use this for review follow-up and merge-readiness cleanup, not approval-rule status. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### mr_risk_assessment Assess the risk level (LOW/MEDIUM/HIGH/CRITICAL) of a merge request based on size (lines added/removed), number of changed files, new/deleted files, sensitive file patterns (env, auth, migration, CI, security), and conflict status. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `merge_request_iid` (required): Merge request IID (project-scoped numeric ID, visible as !N in GitLab) ### my_activity_summary Generate a personal activity summary for a configurable time period. Includes contribution events breakdown, MRs created/merged/reviewed, issues created/closed, and a daily activity chart. Aggregates across all projects. **Arguments:** - `username`: GitLab username to query - `days`: Number of days to look back (default: 7) ### my_issues Show all issues assigned to you across all projects. Includes overdue detection and project grouping. Use this to see your full issue backlog without specifying a project. **Arguments:** - `username`: GitLab username to query - `state`: State filter: opened, closed, all (default: opened) ### my_open_mrs Show all open merge requests across all projects where you are author or assignee. Results are grouped by project for easy scanning. Use this to get a personal MR dashboard without specifying a project. **Arguments:** - `username`: GitLab username to query ### my_pending_reviews Show all open merge requests where you are assigned as reviewer across all projects. Helps track which MRs are waiting for your review. Results grouped by project. **Arguments:** - `username`: GitLab username to query ### project_activity_report Generate a project activity report including recent events, merged MRs, and open issues. Shows daily activity chart and contributor breakdown. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `days`: Number of days to look back (default: 7) ### project_contributors Rank project contributors by commits, additions, and deletions. Uses the repository contributors API for accurate stats. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### project_health_check Comprehensive project health assessment combining latest pipeline status, open merge requests, and branch hygiene (merged/stale branch counts). Provides actionable recommendations for project maintenance. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### release_cadence Analyze release frequency for a project. Shows time between releases, average cadence, and release history chart. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `days`: Number of days to look back (default: 90) ### release_readiness Check readiness of a release branch by analyzing open MRs targeting it, draft/conflict counts, and unresolved discussion threads. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `branch`: Target release branch (default: main) ### review_mr Generate a structured code review for a merge request. Files are categorized by risk (high-risk, business logic, tests, documentation) with per-file metrics, branch context, and a review plan. Full diffs are included without truncation. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `merge_request_iid` (required): Merge request IID (project-scoped numeric ID, visible as !N in GitLab) ### reviewer_workload Analyze review distribution across group members. Shows how many open MRs each member is reviewing and identifies imbalances. Useful for managers to ensure fair review distribution. **Arguments:** - `group_id` (required): GitLab group ID (numeric) or URL-encoded path (e.g. 'my-group' or 'parent/child') ### stale_items_report Find MRs and issues in a project that haven't been updated for a configurable number of days. Helps identify forgotten or blocked items. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `stale_days`: Days without update to consider stale (default: 14) ### suggest_mr_reviewers Suggest suitable merge request reviewers based on the files changed and the list of active project members. Excludes the MR author and asks the model to consider ownership, approval-rule fit, and workload balance. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `merge_request_iid` (required): Merge request IID (project-scoped numeric ID, visible as !N in GitLab) ### summarize_mr_changes Summarize the changed files and key modifications in a merge request. Lists each file with its change type (new/modified/deleted/renamed). Use this to quickly understand the scope of a merge request. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `merge_request_iid` (required): Merge request IID (project-scoped numeric ID, visible as !N in GitLab) ### summarize_open_mrs Summarize all open merge requests in a project including title, author, branches, age in days, and merge status. Highlights stale MRs (>7 days) and blockers. For one target branch, use branch_mr_summary. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### summarize_pipeline_status Summarize the latest CI/CD pipeline status for a project. Groups jobs by outcome (failed/passed/other) and includes failure reasons for debugging. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### team_member_workload Generate a comprehensive workload summary for a specific team member over a configurable time period. Includes contribution events, authored and assigned merge requests, MRs under review, authored and assigned issues. Use this for team management and capacity planning. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `username` (required): GitLab username of the team member to analyze - `days`: Number of days to look back for activity (default: 7) ### team_overview Generate a team dashboard showing all group members with their open MR counts and recently merged MRs. Includes a workload distribution pie chart. Requires a GitLab group ID. **Arguments:** - `group_id` (required): GitLab group ID (numeric) or URL-encoded path (e.g. 'my-group' or 'parent/child') - `days`: Number of days to look back (default: 7) ### unassigned_items Find open MRs and issues in a project that have no assignee. Helps identify ownership gaps and items needing attention. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') ### user_activity_report Generate a detailed activity report for a specific user: contribution events, merged MRs, reviewed MRs, daily activity chart. Designed for managers to review team member productivity. **Arguments:** - `username` (required): GitLab username to report on - `days`: Number of days to look back (default: 7) ### user_stats Generate comprehensive user statistics from GitLab: contribution events breakdown, merge request stats (authored/assigned/reviewed by state), issue stats (authored/assigned by state), daily activity trends, and a Mermaid activity chart. Use this for performance reviews, productivity tracking, or personal dashboards. **Arguments:** - `project_id` (required): Project ID (numeric) or URL-encoded path (e.g. 'group/project') - `username`: GitLab username to generate stats for (defaults to the authenticated user if omitted) - `days`: Number of days to look back for activity (default: 30) ### weekly_team_recap Generate a comprehensive weekly recap for a team. Combines merged MRs, open MRs, issues activity, and events into a single summary with Mermaid charts. **Arguments:** - `group_id` (required): GitLab group ID (numeric) or URL-encoded path (e.g. 'my-group' or 'parent/child') - `days`: Number of days to look back (default: 7)