Skip to content

Projects

Everything done to a project: create (for the user or for someone else), read, list, update, fork, star, archive, transfer, delete and restore it, with its forks, starrers, users, groups, languages, statistics and storage; its members and its sharing with groups; webhooks; labels, milestones, boards and badges; push mirrors; Pages and its custom domains; integrations, including group integrations and the group Datadog integration; Markdown uploads and its avatar; export and import; housekeeping; and its service accounts with their personal access tokens.

From Premium the project also carries approval rules and approval settings, push rules, pull mirroring, target branch rules and the dependency firewall’s package evaluation; from Ultimate, its security settings. Repository content, branches, issues and merge requests have pages of their own.

project.transfer needs the Owner role on the project and permission to create projects in the target namespace. Since GitLab 19.4 GitLab applies a transfer in the background (GitLab 18.11 to 19.3 do so when the groups_and_projects_async_transfer feature flag is enabled): it answers with the project where it still is, and a worker moves it and checks there that the name and path are free in the target namespace. The action reads the project back every 2 seconds for up to 45 seconds. GitLab reports a failed move only as a pending to-do item of action transfer_failed for the user who asked for it, which the action turns into an error; a move that has neither landed nor failed by then is answered with transfer_queued set. Read the project back later with project.get, look for that item with user.todo_list, and do not send the transfer again, since GitLab runs a second transfer as well while the first is queued.

project.dependency_firewall_evaluate is an experiment GitLab 19.4 introduced behind the dependency_firewall_phase1 feature flag, which is disabled by default, and while it is off every project on the instance answers 404; the action answers that 404 by naming the flag first. With the flag on, GitLab evaluates a package only for a project the Dependency Firewall is turned on for, and answers 422 (dependency_firewall_not_enforced) for any other: on a self-managed instance an administrator turns it on under Admin > Settings > Security and compliance > Dependency firewall, which no API sets, and on GitLab.com an Owner turns it on in the top-level group’s security settings. Until a verdict arrives, treat the package as not evaluated rather than as allowed.

  • “List my GitLab projects”
  • “Create a private project called my-app in group platform”
  • “Who has access to project 42?”
  • “Add a push mirror to the backup host”
  • Dynamic, the default surface: call gitlab_execute_action with action set to the action’s ID, such as project.approval_config_change, and its parameters in params. gitlab_find_action finds an ID from a description of the task.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): call gitlab_project with action set to the action’s name, such as approval_config_change, and its parameters in params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such as gitlab_project_approval_config_change, with its parameters as the arguments.

How many of these actions an instance serves at each tier, out of a total of 144:

  • Free: 124
  • Premium: 142
  • Ultimate: 144

Read-only actions: 59 of 144, the ones a deployment in read-only mode keeps.

The description of each action, and of each of its parameters, is the text the server serves for it on the default surface, quoted as served. A destructive action runs only once confirmed, unless GITLAB_MCP_YOLO_MODE (or AUTOPILOT) skips that step: the dynamic surface needs confirm: true on gitlab_execute_action, and the other two take a confirm parameter or the client’s prompt (Destructive actions). A parameter followed by a tier in parentheses is served only from that tier on.

ActionTierIndividual
project.approval_config_changePremiumgitlab_project_approval_config_change
project.approval_config_getPremiumgitlab_project_approval_config_get
project.approval_rule_createPremiumgitlab_project_approval_rule_create
project.approval_rule_deletePremiumgitlab_project_approval_rule_delete
project.approval_rule_getPremiumgitlab_project_approval_rule_get
project.approval_rule_listPremiumgitlab_project_approval_rule_list
project.approval_rule_updatePremiumgitlab_project_approval_rule_update
project.archiveFreegitlab_project_archive
project.badge_addFreegitlab_add_project_badge
project.badge_deleteFreegitlab_delete_project_badge
project.badge_editFreegitlab_edit_project_badge
project.badge_getFreegitlab_get_project_badge
project.badge_listFreegitlab_list_project_badges
project.badge_previewFreegitlab_preview_project_badge
project.board_createFreegitlab_board_create
project.board_deleteFreegitlab_board_delete
project.board_getFreegitlab_board_get
project.board_listFreegitlab_board_list
project.board_list_createFreegitlab_board_list_create
project.board_list_deleteFreegitlab_board_list_delete
project.board_list_getFreegitlab_board_list_get
project.board_list_listFreegitlab_board_list_lists
project.board_list_updateFreegitlab_board_list_update
project.board_updateFreegitlab_board_update
project.createFreegitlab_project_create
project.create_for_userFreegitlab_project_create_for_user
project.create_fork_relationFreegitlab_project_create_fork_relation
project.deleteFreegitlab_project_delete
project.delete_fork_relationFreegitlab_project_delete_fork_relation
project.delete_shared_groupFreegitlab_project_delete_shared_group
project.dependency_firewall_evaluatePremiumgitlab_project_dependency_firewall_evaluate
project.download_avatarFreegitlab_project_download_avatar
project.export_downloadFreegitlab_download_project_export
project.export_scheduleFreegitlab_schedule_project_export
project.export_statusFreegitlab_get_project_export_status
project.forkFreegitlab_project_fork
project.getFreegitlab_project_get
project.hook_addFreegitlab_project_hook_add
project.hook_deleteFreegitlab_project_hook_delete
project.hook_delete_custom_headerFreegitlab_project_hook_delete_custom_header
project.hook_delete_url_variableFreegitlab_project_hook_delete_url_variable
project.hook_editFreegitlab_project_hook_edit
project.hook_getFreegitlab_project_hook_get
project.hook_listFreegitlab_project_hook_list
project.hook_set_custom_headerFreegitlab_project_hook_set_custom_header
project.hook_set_url_variableFreegitlab_project_hook_set_url_variable
project.hook_testFreegitlab_project_hook_test
project.import_from_fileFreegitlab_import_project_from_file
project.import_statusFreegitlab_get_project_import_status
project.integration_deleteFreegitlab_delete_integration
project.integration_delete_groupFreegitlab_delete_group_integration
project.integration_delete_group_datadogFreegitlab_delete_group_datadog_integration
project.integration_getFreegitlab_get_integration
project.integration_get_groupFreegitlab_get_group_integration
project.integration_get_group_datadogFreegitlab_get_group_datadog_integration
project.integration_listFreegitlab_list_integrations
project.integration_list_groupFreegitlab_list_group_integrations
project.integration_setFreegitlab_set_integration
project.integration_set_groupFreegitlab_set_group_integration
project.integration_set_group_datadogFreegitlab_set_group_datadog_integration
project.integration_set_jiraFreegitlab_set_jira_integration
project.label_createFreegitlab_label_create
project.label_deleteFreegitlab_label_delete
project.label_getFreegitlab_label_get
project.label_listFreegitlab_label_list
project.label_promoteFreegitlab_label_promote
project.label_subscribeFreegitlab_label_subscribe
project.label_unsubscribeFreegitlab_label_unsubscribe
project.label_updateFreegitlab_label_update
project.languagesFreegitlab_project_languages
project.listFreegitlab_project_list
project.list_forksFreegitlab_project_list_forks
project.list_groupsFreegitlab_project_list_groups
project.list_invited_groupsFreegitlab_project_list_invited_groups
project.list_starrersFreegitlab_project_list_starrers
project.list_user_contributedFreegitlab_project_list_user_contributed
project.list_user_projectsFreegitlab_project_list_user_projects
project.list_user_starredFreegitlab_project_list_user_starred
project.list_usersFreegitlab_project_list_users
project.member_addFreegitlab_project_member_add
project.member_deleteFreegitlab_project_member_delete
project.member_editFreegitlab_project_member_edit
project.member_getFreegitlab_project_member_get
project.member_inheritedFreegitlab_project_member_get_inherited
project.membersFreegitlab_project_members_list
project.milestone_createFreegitlab_milestone_create
project.milestone_deleteFreegitlab_milestone_delete
project.milestone_getFreegitlab_milestone_get
project.milestone_issuesFreegitlab_milestone_issues
project.milestone_listFreegitlab_milestone_list
project.milestone_merge_requestsFreegitlab_milestone_merge_requests
project.milestone_updateFreegitlab_milestone_update
project.mirror_addFreegitlab_add_project_mirror
project.mirror_deleteFreegitlab_delete_project_mirror
project.mirror_editFreegitlab_edit_project_mirror
project.mirror_force_pushFreegitlab_force_push_mirror_update
project.mirror_getFreegitlab_get_project_mirror
project.mirror_get_public_keyFreegitlab_get_project_mirror_public_key
project.mirror_listFreegitlab_list_project_mirrors
project.pages_domain_createFreegitlab_pages_domain_create
project.pages_domain_deleteFreegitlab_pages_domain_delete
project.pages_domain_getFreegitlab_pages_domain_get
project.pages_domain_listFreegitlab_pages_domain_list
project.pages_domain_list_allFreegitlab_pages_domain_list_all
project.pages_domain_updateFreegitlab_pages_domain_update
project.pages_getFreegitlab_pages_get
project.pages_unpublishFreegitlab_pages_unpublish
project.pages_updateFreegitlab_pages_update
project.pull_mirror_configurePremiumgitlab_project_pull_mirror_configure
project.pull_mirror_getPremiumgitlab_project_pull_mirror_get
project.push_rule_addPremiumgitlab_project_add_push_rule
project.push_rule_deletePremiumgitlab_project_delete_push_rule
project.push_rule_editPremiumgitlab_project_edit_push_rule
project.push_rule_getPremiumgitlab_project_get_push_rules
project.repository_storage_getFreegitlab_project_repository_storage_get
project.restoreFreegitlab_project_restore
project.security_settings_getUltimategitlab_get_project_security_settings
project.security_settings_updateUltimategitlab_update_project_secret_push_protection
project.service_account_createFreegitlab_project_service_account_create
project.service_account_deleteFreegitlab_project_service_account_delete
project.service_account_getFreegitlab_project_service_account_get
project.service_account_listFreegitlab_project_service_account_list
project.service_account_pat_createFreegitlab_project_service_account_pat_create
project.service_account_pat_listFreegitlab_project_service_account_pat_list
project.service_account_pat_revokeFreegitlab_project_service_account_pat_revoke
project.service_account_pat_rotateFreegitlab_project_service_account_pat_rotate
project.service_account_updateFreegitlab_project_service_account_update
project.share_with_groupFreegitlab_project_share_with_group
project.starFreegitlab_project_star
project.start_housekeepingFreegitlab_project_start_housekeeping
project.start_mirroringPremiumgitlab_project_start_mirroring
project.statistics_getFreegitlab_get_project_statistics
project.target_branch_rule_createPremiumgitlab_project_create_target_branch_rule
project.target_branch_rule_deletePremiumgitlab_project_delete_target_branch_rule
project.target_branch_rule_listPremiumgitlab_project_list_target_branch_rules
project.transferFreegitlab_project_transfer
project.unarchiveFreegitlab_project_unarchive
project.unstarFreegitlab_project_unstar
project.updateFreegitlab_project_update
project.uploadFreegitlab_project_upload
project.upload_avatarFreegitlab_project_upload_avatar
project.upload_deleteFreegitlab_project_upload_delete
project.upload_delete_by_secretFreegitlab_project_upload_delete_by_secret
project.upload_listFreegitlab_project_upload_list

Change a project’s approval configuration. Returns: the updated approval settings. See also: project.approval_config_get, project.approval_rule_create.

  • Meta-tool: gitlab_project, action approval_config_change
  • Individual tool: gitlab_project_approval_config_change
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
approvals_before_mergeintegernoNumber of approvals required before merge
disable_overriding_approvers_per_merge_requestbooleannoPrevent overriding approvers per MR
merge_requests_author_approvalbooleannoAllow MR author to approve their own MR
merge_requests_disable_committers_approvalbooleannoPrevent MR committers from approving
require_password_to_approvebooleannoRequire the approver’s password to approve (deprecated: use require_reauthentication_to_approve)
require_reauthentication_to_approvebooleannoRequire reauthentication to approve
reset_approvals_on_pushbooleannoReset approvals when new commits are pushed
selective_code_owner_removalsbooleannoOnly remove code owner approvals when relevant files change

Get a project’s approval configuration. Returns: the approval settings such as reset_approvals_on_push and author approval flags. See also: project.approval_config_change, project.approval_rule_list.

  • Meta-tool: gitlab_project, action approval_config_get
  • Individual tool: gitlab_project_approval_config_get
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Create a project approval rule. Returns: the created rule with name, approvals_required, users, and groups. See also: project.approval_rule_list, project.approval_rule_update.

  • Meta-tool: gitlab_project, action approval_rule_create
  • Individual tool: gitlab_project_approval_rule_create
  • Tier: Premium
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
approvals_requiredintegeryesNumber of approvals required
namestringyesRule name
project_idstring/integeryesProject ID or URL-encoded path
applies_to_all_protected_branchesbooleannoApply this rule to all protected branches
group_idsinteger[]noGroup IDs to assign as approvers
protected_branch_idsinteger[]noProtected branch IDs to scope the rule to
report_typestringnoReport type for report-approver rules (e.g. code_coverage, license_scanning)
rule_typestring (any_approver, regular, report_approver)noRule type: any_approver (the pre-configured default rule with approvals_required 0), regular (an ordinary approval rule), or report_approver (reserved for rules GitLab creates from merge request approval policies, do not send it)
user_idsinteger[]noUser IDs to assign as approvers
usernamesstring[]noUsernames to assign as approvers

Delete a project approval rule. Returns: a success confirmation naming the rule and project. See also: project.approval_rule_list, project.approval_config_get.

  • Meta-tool: gitlab_project, action approval_rule_delete
  • Individual tool: gitlab_project_approval_rule_delete
  • Tier: Premium
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
rule_idintegeryesApproval rule ID to delete

Get a single project approval rule. Returns: the rule with name, approvals_required, users, and groups. See also: project.approval_rule_list, project.approval_rule_update.

  • Meta-tool: gitlab_project, action approval_rule_get
  • Individual tool: gitlab_project_approval_rule_get
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
rule_idintegeryesApproval rule ID

List a project’s approval rules. Returns: rules with name, approvals_required, eligible approvers, and groups, plus pagination metadata. See also: project.approval_rule_get, project.approval_rule_create.

  • Meta-tool: gitlab_project, action approval_rule_list
  • Individual tool: gitlab_project_approval_rule_list
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noKeyset sort direction (asc, desc)

Update a project approval rule. Returns: the updated rule with name, approvals_required, users, and groups. See also: project.approval_rule_get, project.approval_rule_delete.

  • Meta-tool: gitlab_project, action approval_rule_update
  • Individual tool: gitlab_project_approval_rule_update
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
rule_idintegeryesApproval rule ID
applies_to_all_protected_branchesbooleannoApply this rule to all protected branches
approvals_requiredintegernoUpdated number of approvals required
group_idsinteger[]noUpdated group IDs to assign as approvers
namestringnoUpdated rule name
protected_branch_idsinteger[]noUpdated protected branch IDs
user_idsinteger[]noUpdated user IDs to assign as approvers
usernamesstring[]noUpdated usernames to assign as approvers

Archive a project, making it read-only in GitLab. Returns: the project with archived set to true. See also: project.unarchive, project.get.

  • Meta-tool: gitlab_project, action archive
  • Individual tool: gitlab_project_archive
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

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: project.badge_list, project.badge_get.

  • Meta-tool: gitlab_project, action badge_add
  • Individual tool: gitlab_add_project_badge
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
image_urlstringyesBadge image URL (supports placeholders)
link_urlstringyesBadge link URL (supports placeholders)
project_idstring/integeryesProject ID or URL-encoded path
namestringnoBadge name

Delete a project badge by badge_id. Returns: a success confirmation. See also: project.badge_list, project.badge_get.

  • Meta-tool: gitlab_project, action badge_delete
  • Individual tool: gitlab_delete_project_badge
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
badge_idintegeryesBadge ID
project_idstring/integeryesProject ID or URL-encoded path

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: project.badge_list, project.badge_get.

  • Meta-tool: gitlab_project, action badge_edit
  • Individual tool: gitlab_edit_project_badge
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
badge_idintegeryesBadge ID
project_idstring/integeryesProject ID or URL-encoded path
image_urlstringnoNew badge image URL
link_urlstringnoNew badge link URL
namestringnoNew badge name. Use name, not new_name

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: project.badge_list, project.badge_edit.

  • Meta-tool: gitlab_project, action badge_get
  • Individual tool: gitlab_get_project_badge
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
badge_idintegeryesBadge ID
project_idstring/integeryesProject ID or URL-encoded path

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: project.badge_get, project.badge_add.

  • Meta-tool: gitlab_project, action badge_list
  • Individual tool: gitlab_list_project_badges
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
namestringnoFilter by badge name
order_bystringnoColumn to order results by for keyset pagination (e.g. id, name)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

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: project.badge_add, project.badge_list.

  • Meta-tool: gitlab_project, action badge_preview
  • Individual tool: gitlab_preview_project_badge
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
image_urlstringyesBadge image URL with placeholders
link_urlstringyesBadge link URL with placeholders
project_idstring/integeryesProject ID or URL-encoded path

Create a new issue board in a project. Returns: the created board with its project, scope, and lists. See also: project.board_get, project.board_update, project.board_list.

  • Meta-tool: gitlab_project, action board_create
  • Individual tool: gitlab_board_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesBoard name
project_idstring/integeryesProject ID or path

Delete an issue board permanently. Returns: a success confirmation naming the board and project. See also: project.board_get, project.board_list.

  • Meta-tool: gitlab_project, action board_delete
  • Individual tool: gitlab_board_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
project_idstring/integeryesProject ID or path

Get a single issue board by board_id. Returns: the board with its project, milestone, assignee, scope labels, and ordered lists. See also: project.board_list, project.board_update, project.board_delete.

  • Meta-tool: gitlab_project, action board_get
  • Individual tool: gitlab_board_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
project_idstring/integeryesProject ID or path

List a project’s issue boards with pagination. Returns: each board with its project, milestone, assignee, scope labels, and lists. See also: project.board_get, project.board_create, project.board_list_list.

  • Meta-tool: gitlab_project, action board_list
  • Individual tool: gitlab_board_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or path
order_bystringnoColumn to order results by for keyset pagination (e.g. id, created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

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: project.board_list_get, project.board_list_update, project.board_list_list.

  • Meta-tool: gitlab_project, action board_list_create
  • Individual tool: gitlab_board_list_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
project_idstring/integeryesProject ID or path
assignee_idintegernoAssignee ID to create an assignee list
iteration_idintegernoIteration ID to create an iteration list
label_idintegernoLabel ID to create a label list
milestone_idintegernoMilestone ID to create a milestone list

Delete a board list (column) permanently. Returns: a success confirmation naming the list. See also: project.board_list_get, project.board_list_list.

  • Meta-tool: gitlab_project, action board_list_delete
  • Individual tool: gitlab_board_list_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
list_idintegeryesBoard list ID
project_idstring/integeryesProject ID or path

Get a single board list by list_id. Returns: the list with its label, assignee, milestone, iteration, position, and issue limits. See also: project.board_list_list, project.board_list_update, project.board_list_delete.

  • Meta-tool: gitlab_project, action board_list_get
  • Individual tool: gitlab_board_list_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
list_idintegeryesBoard list ID
project_idstring/integeryesProject ID or path

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: project.board_list_get, project.board_list_create, project.board_get.

  • Meta-tool: gitlab_project, action board_list_list
  • Individual tool: gitlab_board_list_lists
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
project_idstring/integeryesProject ID or path
order_bystringnoColumn to order results by for keyset pagination (e.g. id, created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

Reorder a board list to a new position. Returns: the updated list with its scope, position, and issue limits. See also: project.board_list_get, project.board_list_list, project.board_list_delete.

  • Meta-tool: gitlab_project, action board_list_update
  • Individual tool: gitlab_board_list_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
list_idintegeryesBoard list ID
positionintegeryesNew position of the list
project_idstring/integeryesProject ID or path

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: project.board_get, project.board_delete, project.board_list.

  • Meta-tool: gitlab_project, action board_update
  • Individual tool: gitlab_board_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
board_idintegeryesBoard ID
project_idstring/integeryesProject ID or path
assignee_idintegernoAssignee user ID
hide_backlog_listbooleannoHide the Open list
hide_closed_listbooleannoHide the Closed list
labelsstring[]noBoard scope label names
milestone_idintegernoMilestone ID
namestringnoBoard name
weightintegernoBoard scope weight

Create a new GitLab project. Returns: the created project with id, path_with_namespace, default_branch, visibility, and web URL. See also: project.get, project.update, project.create_for_user.

  • Meta-tool: gitlab_project, action create
  • Individual tool: gitlab_project_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesProject name
allow_merge_on_skipped_pipelinebooleannoAllow merge when pipeline is skipped
analytics_access_levelstringnoAnalytics access level (disabled, private, enabled)
approvals_before_merge (Premium)integernoNumber of approvals required before merge (deprecated: use Merge Request Approvals API)
auto_cancel_pending_pipelinesstring (enabled, disabled)noAuto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled.
auto_devops_deploy_strategystring (continuous, manual, timed_incremental)noAuto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays).
auto_devops_enabledbooleannoEnable Auto DevOps for the project
autoclose_referenced_issuesbooleannoAuto-close referenced issues on merge
build_git_strategystring (fetch, clone)noGit strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time).
build_timeoutintegernoBuild timeout in seconds
builds_access_levelstringnoCI/CD builds access level (disabled, private, enabled)
ci_config_pathstringnoCustom CI/CD configuration file path
ci_forward_deployment_enabledbooleannoEnable CI/CD forward deployment (deprecated: no longer supported in recent versions)
cicd_catalog_enabledbooleannoPublish the project as a CI/CD catalog resource
container_expiration_policy_attributesobjectnoContainer registry cleanup policy attributes
container_registry_access_levelstringnoContainer registry access level (disabled, private, enabled)
container_registry_enabledbooleannoEnable container registry (deprecated: use container_registry_access_level)
default_branchstringnoDefault branch name
descriptionstringnoProject description
emails_disabledbooleannoDisable email notifications (deprecated: use emails_enabled)
emails_enabledbooleannoEnable email notifications
enforce_auth_checks_on_uploadsbooleannoEnforce authorization checks on uploads
environments_access_levelstringnoEnvironments access level (disabled, private, enabled)
external_authorization_classification_labelstringnoExternal authorization classification label
feature_flags_access_levelstringnoFeature flags access level (disabled, private, enabled)
forking_access_levelstringnoForking access level (disabled, private, enabled)
group_runners_enabledbooleannoEnable group runners
group_with_project_templates_idintegernoGroup ID that provides the custom project templates
import_urlstringnoURL to import repository from
infrastructure_access_levelstringnoInfrastructure access level (disabled, private, enabled)
initialize_with_readmebooleannoInitialize with a README
issue_branch_templatestringnoTemplate for branch names created from issues
issues_access_levelstringnoIssues access level (disabled, private, enabled)
issues_enabledbooleannoEnable issues feature (deprecated: use issues_access_level)
issues_templatestringnoDefault issue description template (deprecated: no longer supported in recent versions)
jobs_enabledbooleannoEnable CI/CD jobs (deprecated: use builds_access_level)
lfs_enabledbooleannoEnable Git LFS
merge_commit_templatestringnoTemplate for merge commit messages
merge_methodstring (merge, rebase_merge, ff)noMerge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit).
merge_pipelines_enabledbooleannoEnable merged results pipelines
merge_request_title_regexstringnoRegex that MR titles must match
merge_request_title_regex_descriptionstringnoHuman-readable description for the MR title regex
merge_requests_access_levelstringnoMerge requests access level (disabled, private, enabled)
merge_requests_enabledbooleannoEnable merge requests feature (deprecated: use merge_requests_access_level)
merge_requests_templatestringnoDefault merge request description template (deprecated: no longer supported in recent versions)
merge_trains_enabledbooleannoEnable merge trains
merge_trains_skip_train_allowedbooleannoAllow skipping the merge train
mirrorbooleannoEnable pull mirroring from import_url
mirror_trigger_buildsbooleannoTrigger pipelines for mirror updates
model_experiments_access_levelstringnoModel experiments access level (disabled, private, enabled)
model_registry_access_levelstringnoModel registry access level (disabled, private, enabled)
monitor_access_levelstringnoMonitor access level (disabled, private, enabled)
mr_default_title_templatestringnoTemplate for default merge request titles
namespace_idintegernoNamespace ID (defaults to personal namespace)
only_allow_merge_if_all_discussions_are_resolvedbooleannoOnly allow merge when all discussions are resolved
only_allow_merge_if_all_status_checks_passed (Ultimate)booleannoOnly allow merge when all external status checks pass
only_allow_merge_if_pipeline_succeedsbooleannoOnly allow merge when pipeline succeeds
package_registry_access_levelstringnoPackage registry access level (disabled, private, enabled)
packages_enabledbooleannoEnable packages feature (deprecated: use package_registry_access_level)
pages_access_levelstringnoPages access level (disabled, private, enabled, public)
pathstringnoProject path slug (defaults from name)
printing_merge_request_link_enabledbooleannoShow the create-merge-request link after pushing
protect_merge_request_pipelinesbooleannoPrevent merge request pipeline settings from being modified by users with lower permissions
public_buildsbooleannoEnable public access to pipelines (deprecated: use public_jobs)
public_jobsbooleannoEnable public access to pipelines
releases_access_levelstringnoReleases access level (disabled, private, enabled)
remove_source_branch_after_mergebooleannoRemove source branch after merge by default
repository_access_levelstringnoRepository access level (disabled, private, enabled)
repository_storagestringnoRepository storage shard name (admin only)
request_access_enabledbooleannoAllow users to request access
requirements_access_levelstringnoRequirements access level (disabled, private, enabled)
resolve_outdated_diff_discussionsbooleannoAuto-resolve outdated diff discussions
resource_group_default_process_modestring (unordered, oldest_first, newest_first, newest_ready_first)noDefault process mode for resource groups: unordered (run in parallel), oldest_first, newest_first, or newest_ready_first.
reviewer_assignment_strategy (Premium)string (disabled, code_owners)noStrategy used to automatically assign reviewers to merge requests: disabled or code_owners. The former dap_powered value was removed in GitLab 19.4 and only appears in responses of projects configured before then
security_and_compliance_access_levelstringnoSecurity and compliance access level (disabled, private, enabled)
service_desk_enabledbooleannoEnable Service Desk
shared_runners_enabledbooleannoEnable shared runners
show_default_award_emojisbooleannoShow default award emojis on issues/MRs
snippets_access_levelstringnoSnippets access level (disabled, private, enabled)
snippets_enabledbooleannoEnable snippets feature (deprecated: use snippets_access_level)
squash_commit_templatestringnoTemplate for squash commit messages
squash_optionstring (never, always, default_on, default_off)noSquash 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_messagestringnoDefault commit message for suggestions
tag_liststring[]noProject tags (deprecated: use topics)
template_namestringnoBuilt-in project template name to use
template_project_idintegernoCustom project template ID to use
topicsstring[]noTopic tags for the project
use_custom_templatebooleannoUse a custom group/instance project template
visibilitystring (private, internal, public)noVisibility level (private, internal, public)
wiki_access_levelstringnoWiki access level (disabled, private, enabled)
wiki_enabledbooleannoEnable wiki feature (deprecated: use wiki_access_level)

Create a project on behalf of a user (admin). Returns: the created project with id, owner namespace, visibility, and web URL. See also: project.create, project.get.

  • Meta-tool: gitlab_project, action create_for_user
  • Individual tool: gitlab_project_create_for_user
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesProject name
user_idintegeryesTarget user ID who will own the project
allow_merge_on_skipped_pipelinebooleannoAllow merge when pipeline is skipped
analytics_access_levelstringnoAnalytics access level (disabled, private, enabled)
approvals_before_merge (Premium)integernoNumber of approvals required before merge (deprecated: use Merge Request Approvals API)
auto_cancel_pending_pipelinesstring (enabled, disabled)noAuto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled.
auto_devops_deploy_strategystring (continuous, manual, timed_incremental)noAuto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays).
auto_devops_enabledbooleannoEnable Auto DevOps for the project
autoclose_referenced_issuesbooleannoAuto-close referenced issues on merge
build_git_strategystring (fetch, clone)noGit strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time).
build_timeoutintegernoBuild timeout in seconds
builds_access_levelstringnoCI/CD builds access level (disabled, private, enabled)
ci_config_pathstringnoCustom CI/CD configuration file path
ci_forward_deployment_enabledbooleannoEnable CI/CD forward deployment (deprecated: no longer supported in recent versions)
cicd_catalog_enabledbooleannoPublish the project as a CI/CD catalog resource
container_expiration_policy_attributesobjectnoContainer registry cleanup policy attributes
container_registry_access_levelstringnoContainer registry access level (disabled, private, enabled)
container_registry_enabledbooleannoEnable container registry (deprecated: use container_registry_access_level)
default_branchstringnoDefault branch name
descriptionstringnoProject description
emails_disabledbooleannoDisable email notifications (deprecated: use emails_enabled)
emails_enabledbooleannoEnable email notifications
enforce_auth_checks_on_uploadsbooleannoEnforce authorization checks on uploads
environments_access_levelstringnoEnvironments access level (disabled, private, enabled)
external_authorization_classification_labelstringnoExternal authorization classification label
feature_flags_access_levelstringnoFeature flags access level (disabled, private, enabled)
forking_access_levelstringnoForking access level (disabled, private, enabled)
group_runners_enabledbooleannoEnable group runners
group_with_project_templates_idintegernoGroup ID that provides the custom project templates
import_urlstringnoURL to import repository from
infrastructure_access_levelstringnoInfrastructure access level (disabled, private, enabled)
initialize_with_readmebooleannoInitialize with a README
issue_branch_templatestringnoTemplate for branch names created from issues
issues_access_levelstringnoIssues access level (disabled, private, enabled)
issues_enabledbooleannoEnable issues feature (deprecated: use issues_access_level)
issues_templatestringnoDefault issue description template (deprecated: no longer supported in recent versions)
jobs_enabledbooleannoEnable CI/CD jobs (deprecated: use builds_access_level)
lfs_enabledbooleannoEnable Git LFS
merge_commit_templatestringnoTemplate for merge commit messages
merge_methodstring (merge, rebase_merge, ff)noMerge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit).
merge_pipelines_enabledbooleannoEnable merged results pipelines
merge_request_title_regexstringnoRegex that MR titles must match
merge_request_title_regex_descriptionstringnoHuman-readable description for the MR title regex
merge_requests_access_levelstringnoMerge requests access level (disabled, private, enabled)
merge_requests_enabledbooleannoEnable merge requests feature (deprecated: use merge_requests_access_level)
merge_requests_templatestringnoDefault merge request description template (deprecated: no longer supported in recent versions)
merge_trains_enabledbooleannoEnable merge trains
merge_trains_skip_train_allowedbooleannoAllow skipping the merge train
mirrorbooleannoEnable pull mirroring from import_url
mirror_trigger_buildsbooleannoTrigger pipelines for mirror updates
model_experiments_access_levelstringnoModel experiments access level (disabled, private, enabled)
model_registry_access_levelstringnoModel registry access level (disabled, private, enabled)
monitor_access_levelstringnoMonitor access level (disabled, private, enabled)
mr_default_title_templatestringnoTemplate for default merge request titles
namespace_idintegernoNamespace ID (defaults to personal namespace)
only_allow_merge_if_all_discussions_are_resolvedbooleannoOnly allow merge when all discussions are resolved
only_allow_merge_if_all_status_checks_passed (Ultimate)booleannoOnly allow merge when all external status checks pass
only_allow_merge_if_pipeline_succeedsbooleannoOnly allow merge when pipeline succeeds
package_registry_access_levelstringnoPackage registry access level (disabled, private, enabled)
packages_enabledbooleannoEnable packages feature (deprecated: use package_registry_access_level)
pages_access_levelstringnoPages access level (disabled, private, enabled, public)
pathstringnoProject path slug (defaults from name)
printing_merge_request_link_enabledbooleannoShow the create-merge-request link after pushing
protect_merge_request_pipelinesbooleannoPrevent merge request pipeline settings from being modified by users with lower permissions
public_buildsbooleannoEnable public access to pipelines (deprecated: use public_jobs)
public_jobsbooleannoEnable public access to pipelines
releases_access_levelstringnoReleases access level (disabled, private, enabled)
remove_source_branch_after_mergebooleannoRemove source branch after merge by default
repository_access_levelstringnoRepository access level (disabled, private, enabled)
repository_storagestringnoRepository storage shard name (admin only)
request_access_enabledbooleannoAllow users to request access
requirements_access_levelstringnoRequirements access level (disabled, private, enabled)
resolve_outdated_diff_discussionsbooleannoAuto-resolve outdated diff discussions
resource_group_default_process_modestring (unordered, oldest_first, newest_first, newest_ready_first)noDefault process mode for resource groups: unordered (run in parallel), oldest_first, newest_first, or newest_ready_first.
reviewer_assignment_strategy (Premium)string (disabled, code_owners)noStrategy used to automatically assign reviewers to merge requests: disabled or code_owners. The former dap_powered value was removed in GitLab 19.4 and only appears in responses of projects configured before then
security_and_compliance_access_levelstringnoSecurity and compliance access level (disabled, private, enabled)
service_desk_enabledbooleannoEnable Service Desk
shared_runners_enabledbooleannoEnable shared runners
show_default_award_emojisbooleannoShow default award emojis on issues/MRs
snippets_access_levelstringnoSnippets access level (disabled, private, enabled)
snippets_enabledbooleannoEnable snippets feature (deprecated: use snippets_access_level)
squash_commit_templatestringnoTemplate for squash commit messages
squash_optionstring (never, always, default_on, default_off)noSquash 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_messagestringnoDefault commit message for suggestions
tag_liststring[]noProject tags (deprecated: use topics)
template_namestringnoBuilt-in project template name to use
template_project_idintegernoCustom project template ID to use
topicsstring[]noTopic tags for the project
use_custom_templatebooleannoUse a custom group/instance project template
visibilitystring (private, internal, public)noVisibility level (private, internal, public)
wiki_access_levelstringnoWiki access level (disabled, private, enabled)
wiki_enabledbooleannoEnable wiki feature (deprecated: use wiki_access_level)

Create a fork relationship to an upstream project. Returns: the downstream project as GitLab answers with it, including forked_from_project. See also: project.delete_fork_relation, project.fork.

  • Meta-tool: gitlab_project, action create_fork_relation
  • Individual tool: gitlab_project_create_fork_relation
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
forked_from_idintegeryesID of the project to set as the fork source
project_idstring/integeryesProject ID or URL-encoded path of the forked project

Delete a project. Returns: a deletion status. On instances with delayed deletion the project is marked for deletion. See also: project.restore, project.archive.

  • Meta-tool: gitlab_project, action delete
  • Individual tool: gitlab_project_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
full_pathstringnoFull path of the project to confirm permanent removal (required when permanently_remove is true)
permanently_removebooleannoIf true, immediately and permanently delete the project bypassing delayed deletion. Requires admin permissions on some GitLab instances.

Remove a project’s fork relationship. Returns: a success confirmation naming the project. See also: project.create_fork_relation, project.fork.

  • Meta-tool: gitlab_project, action delete_fork_relation
  • Individual tool: gitlab_project_delete_fork_relation
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Remove a group share from a project. Returns: a success confirmation naming the group and project. See also: project.share_with_group, project.list_invited_groups.

  • Meta-tool: gitlab_project, action delete_shared_group
  • Individual tool: gitlab_project_delete_shared_group
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
group_idintegeryesGroup ID to remove from project sharing
project_idstring/integeryesProject ID or URL-encoded path

Evaluate one package coordinate against a project’s Dependency Firewall policies (Premium, experimental). Returns: the outcome (allowed, warned or blocked) and the policy that produced a warned or blocked verdict. See also: project.get, dependency.list.

  • Meta-tool: gitlab_project, action dependency_firewall_evaluate
  • Individual tool: gitlab_project_dependency_firewall_evaluate
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
ecosystemstring (cargo, composer, conan, gem, golang, maven, npm, nuget, pub, pypi, swift)yesPackage ecosystem: cargo, composer, conan, gem, golang, maven, npm, nuget, pub, pypi, or swift
namestringyesPackage name, maximum 255 characters. For maven use the groupId:artifactId form (com.example:trivial-lib). For pypi, names are normalized per PEP 503 before evaluation
project_idstring/integeryesProject ID or URL-encoded path
versionstringyesPackage version, maximum 255 characters

Download a project’s avatar. Returns: the avatar image content. See also: project.upload_avatar, project.get.

  • Meta-tool: gitlab_project, action download_avatar
  • Individual tool: gitlab_project_download_avatar
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Download a finished project export archive as base64. Returns: base64 archive content and size in bytes. See also: project.export_status, project.import_from_file.

  • Meta-tool: gitlab_project, action export_download
  • Individual tool: gitlab_download_project_export
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Schedule an asynchronous project export. Returns: a confirmation message. See also: project.export_status, project.export_download.

  • Meta-tool: gitlab_project, action export_schedule
  • Individual tool: gitlab_schedule_project_export
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
descriptionstringnoOverride the project description in the export
uploadobjectnoOptional upload destination for the generated export archive (mirrors the GitLab upload[] options)
upload_http_methodstring (PUT, POST)noDeprecated: use upload.http_method. HTTP method to use for the upload (PUT or POST)
upload_urlstringnoDeprecated: use upload.url. URL to upload the exported project to after export completes

Get the export status of a project. Returns: export id, name, path, status, message, and download links. See also: project.export_schedule, project.export_download.

  • Meta-tool: gitlab_project, action export_status
  • Individual tool: gitlab_get_project_export_status
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Fork a project. Returns: the new fork with id, path_with_namespace, forked_from_project, and web URL. See also: project.list_forks, project.create_fork_relation.

  • Meta-tool: gitlab_project, action fork
  • Individual tool: gitlab_project_fork
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesSource project ID or URL-encoded path
branchesstringnoBranches to fork (empty=all)
descriptionstringnoDescription for the forked project
mr_default_target_selfbooleannoMR default target is the fork itself instead of upstream
namestringnoName for the forked project
namespacestringnoNamespace ID or path to fork into (deprecated: use namespace_id or namespace_path)
namespace_idintegernoNamespace ID to fork into
namespace_pathstringnoNamespace path to fork into
pathstringnoPath slug for the forked project
visibilitystring (private, internal, public)noVisibility level (private, internal, public)

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: project.update, project.archive, project.delete.

  • Meta-tool: gitlab_project, action get
  • Individual tool: gitlab_project_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path (e.g. ‘user/repo’ or 42)
licensebooleannoInclude license information in response
statisticsbooleannoInclude project statistics (commit count, storage sizes)
with_custom_attributesbooleannoInclude custom attributes in response

Add a webhook to a project. Returns: the created webhook with id, URL, and enabled events. See also: project.hook_list, project.hook_test.

  • Meta-tool: gitlab_project, action hook_add
  • Individual tool: gitlab_project_hook_add
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
urlstringyesWebhook URL
branch_filter_strategystringnoBranch filter strategy (wildcard, regex, all_branches)
confidential_issues_eventsbooleannoTrigger on confidential issue events
confidential_note_eventsbooleannoTrigger on confidential note events
custom_headersobject[]noCustom HTTP headers sent with each webhook request (key/value pairs)
custom_webhook_templatestringnoCustom webhook payload template
deployment_eventsbooleannoTrigger on deployment events
descriptionstringnoWebhook description
emoji_eventsbooleannoTrigger on emoji events
enable_ssl_verificationbooleannoEnable SSL verification for webhook
feature_flag_eventsbooleannoTrigger on feature flag events
issues_eventsbooleannoTrigger on issue events
job_eventsbooleannoTrigger on CI job events
merge_requests_eventsbooleannoTrigger on merge request events
milestone_eventsbooleannoTrigger on milestone events
namestringnoWebhook name
note_eventsbooleannoTrigger on note/comment events
pipeline_eventsbooleannoTrigger on pipeline events
push_eventsbooleannoTrigger on push events
push_events_branch_filterstringnoBranch filter for push events
releases_eventsbooleannoTrigger on release events
resource_access_token_eventsbooleannoTrigger on resource access token events
resource_deploy_token_eventsbooleannoTrigger on resource deploy token events
signing_tokenstringnoWrite-only signing token for webhook signature validation
tag_push_eventsbooleannoTrigger on tag push events
tokenstringnoSecret token for validation
vulnerability_eventsbooleannoTrigger on vulnerability events
wiki_page_eventsbooleannoTrigger on wiki page events

Delete a project webhook. Returns: a success confirmation naming the webhook and project. See also: project.hook_list, project.hook_add.

  • Meta-tool: gitlab_project, action hook_delete
  • Individual tool: gitlab_project_hook_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID to delete
project_idstring/integeryesProject ID or URL-encoded path

Delete a custom header from a project webhook. Returns: a success confirmation naming the header and webhook. See also: project.hook_set_custom_header, project.hook_get.

  • Meta-tool: gitlab_project, action hook_delete_custom_header
  • Individual tool: gitlab_project_hook_delete_custom_header
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID
keystringyesCustom header key name to delete
project_idstring/integeryesProject ID or URL-encoded path

Delete a URL variable from a project webhook. Returns: a success confirmation naming the variable and webhook. See also: project.hook_set_url_variable, project.hook_get.

  • Meta-tool: gitlab_project, action hook_delete_url_variable
  • Individual tool: gitlab_project_hook_delete_url_variable
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID
keystringyesURL variable key name to delete
project_idstring/integeryesProject ID or URL-encoded path

Edit a project webhook. Returns: the updated webhook with URL and enabled events. See also: project.hook_get, project.hook_test.

  • Meta-tool: gitlab_project, action hook_edit
  • Individual tool: gitlab_project_hook_edit
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID to edit
project_idstring/integeryesProject ID or URL-encoded path
branch_filter_strategystringnoBranch filter strategy (wildcard, regex, all_branches)
confidential_issues_eventsbooleannoTrigger on confidential issue events
confidential_note_eventsbooleannoTrigger on confidential note events
custom_headersobject[]noCustom HTTP headers sent with each webhook request (key/value pairs)
custom_webhook_templatestringnoCustom webhook payload template
deployment_eventsbooleannoTrigger on deployment events
descriptionstringnoWebhook description
emoji_eventsbooleannoTrigger on emoji events
enable_ssl_verificationbooleannoEnable SSL verification for webhook
feature_flag_eventsbooleannoTrigger on feature flag events
issues_eventsbooleannoTrigger on issue events
job_eventsbooleannoTrigger on CI job events
merge_requests_eventsbooleannoTrigger on merge request events
milestone_eventsbooleannoTrigger on milestone events
namestringnoWebhook name
note_eventsbooleannoTrigger on note/comment events
pipeline_eventsbooleannoTrigger on pipeline events
push_eventsbooleannoTrigger on push events
push_events_branch_filterstringnoBranch filter for push events
releases_eventsbooleannoTrigger on release events
resource_access_token_eventsbooleannoTrigger on resource access token events
resource_deploy_token_eventsbooleannoTrigger on resource deploy token events
signing_tokenstringnoWrite-only signing token for webhook signature validation
tag_push_eventsbooleannoTrigger on tag push events
tokenstringnoSecret token for validation
urlstringnoUpdated webhook URL
vulnerability_eventsbooleannoTrigger on vulnerability events
wiki_page_eventsbooleannoTrigger on wiki page events

Get a single project webhook. Returns: the webhook with URL, enabled events, and SSL settings. See also: project.hook_list, project.hook_edit.

  • Meta-tool: gitlab_project, action hook_get
  • Individual tool: gitlab_project_hook_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID
project_idstring/integeryesProject ID or URL-encoded path

List a project’s webhooks. Returns: webhooks with URL, enabled events, and SSL settings, plus pagination metadata. See also: project.hook_get, project.hook_add.

  • Meta-tool: gitlab_project, action hook_list
  • Individual tool: gitlab_project_hook_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noKeyset sort direction (asc, desc)

Set a custom header on a project webhook. Returns: a success confirmation naming the header and webhook. See also: project.hook_delete_custom_header, project.hook_get.

  • Meta-tool: gitlab_project, action hook_set_custom_header
  • Individual tool: gitlab_project_hook_set_custom_header
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID
keystringyesCustom header key name
project_idstring/integeryesProject ID or URL-encoded path
valuestringyesCustom header value

Set a URL variable on a project webhook. Returns: a success confirmation naming the variable and webhook. See also: project.hook_delete_url_variable, project.hook_get.

  • Meta-tool: gitlab_project, action hook_set_url_variable
  • Individual tool: gitlab_project_hook_set_url_variable
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
hook_idintegeryesWebhook ID
keystringyesURL variable key name. Letters and underscores only. GitLab rejects keys containing digits
project_idstring/integeryesProject ID or URL-encoded path
valuestringyesURL variable value. Must be non-empty

Trigger a test event for a project webhook. Returns: a confirmation that the test event was fired. See also: project.hook_get, project.hook_edit.

  • Meta-tool: gitlab_project, action hook_test
  • Individual tool: gitlab_project_hook_test
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
eventstring (push_events, tag_push_events, issues_events, confidential_issues_events, note_events, merge_requests_events, job_events, pipeline_events, wiki_page_events, releases_events, milestone_events, emoji_events, resource_access_token_events, resource_deploy_token_events)yesEvent type to trigger: push_events, tag_push_events, issues_events, confidential_issues_events, note_events, merge_requests_events, job_events, pipeline_events, wiki_page_events, releases_events, milestone_events, emoji_events, resource_access_token_events, or resource_deploy_token_events
hook_idintegeryesWebhook ID to test
project_idstring/integeryesProject ID or URL-encoded path

Import a project from an export archive. Returns: the new project’s import status, type, correlation id, any import error, and the relations that failed to import. See also: project.import_status, project.export_download.

  • Meta-tool: gitlab_project, action import_from_file
  • Individual tool: gitlab_import_project_from_file
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
content_base64stringnoBase64-encoded export archive content. Only one of file_path or content_base64 should be provided.
file_pathstringnoCanonical 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.
namestringnoName for the imported project
namespacestringnoNamespace to import the project into (user or group path)
override_paramsobjectnoOptional project attributes to override on the imported project (mirrors the create-project attributes accepted by override_params[])
overwritebooleannoIf true, overwrite an existing project with the same path
pathstringnoURL path for the imported project

Get the import status of a project. Returns: import id, name, path, status, type, correlation id, import error, the relations that failed to import, and a GitHub import’s fetched and imported counts. See also: project.import_from_file.

  • Meta-tool: gitlab_project, action import_status
  • Individual tool: gitlab_get_project_import_status
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Delete (disable) a project integration by slug. Supports the same slugs as get, plus ‘slack-application’ for disabling the GitLab for Slack app.

Returns: confirmation message.

See also: project.integration_list, project.integration_get.

  • Meta-tool: gitlab_project, action integration_delete
  • Individual tool: gitlab_delete_integration
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesIntegration 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)

Delete (disable) a group integration by slug. Requires Owner role on the group.

Returns: confirmation message.

See also: project.integration_list_group, project.integration_get_group, project.integration_set_group.

  • Meta-tool: gitlab_project, action integration_delete_group
  • Individual tool: gitlab_delete_group_integration
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
slugstringyesIntegration slug to disable (e.g. slack, jira, harbor)

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).

Returns: confirmation message.

See also: project.integration_get_group_datadog, project.integration_set_group_datadog.

  • Meta-tool: gitlab_project, action integration_delete_group_datadog
  • Individual tool: gitlab_delete_group_datadog_integration
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path

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).

Returns: JSON with integration details.

See also: project.integration_list, project.integration_delete.

  • Meta-tool: gitlab_project, action integration_get
  • Individual tool: gitlab_get_integration
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesIntegration 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)

Get details of a specific group integration by slug. Requires Owner role on the group.

Returns: JSON with the group integration details.

See also: project.integration_list_group, project.integration_set_group, project.integration_delete_group.

  • Meta-tool: gitlab_project, action integration_get_group
  • Individual tool: gitlab_get_group_integration
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
slugstringyesIntegration slug to read (e.g. slack, jira, harbor). See doc/api/group_integrations.md for the supported list

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.

Returns: JSON with the group’s Datadog integration details. The configuration lives in the nested properties object (api_url, datadog_env, datadog_service, datadog_site, datadog_tags, datadog_ci_visibility, archive_trace_events), which is the only shape it is published in. An older GitLab that sends the configuration flat is read into that same object.

See also: project.integration_set_group_datadog, project.integration_delete_group_datadog.

  • Meta-tool: gitlab_project, action integration_get_group_datadog
  • Individual tool: gitlab_get_group_datadog_integration
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path

List all integrations (services) configured for a project, including their active status.

Returns: JSON array of integration items with id, title, slug, and active flag.

See also: project.integration_get, project.integration_set_jira, project.integration_delete.

  • Meta-tool: gitlab_project, action integration_list
  • Individual tool: gitlab_list_integrations
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

List all active integrations configured on a group. Requires Owner role (some integrations require GitLab Premium/Ultimate).

Returns: JSON array of group integration items with id, title, slug, and active flag.

See also: project.integration_get_group, project.integration_set_group, project.integration_delete_group.

  • Meta-tool: gitlab_project, action integration_list_group
  • Individual tool: gitlab_list_group_integrations
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path

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).

Common slugs: slack, jira, discord, mattermost, microsoft-teams, telegram, datadog, jenkins, harbor, drone-ci, github, emails-on-push, pipelines-email, external-wiki, custom-issue-tracker, matrix, redmine, youtrack, slack-slash-commands, mattermost-slash-commands, google-play, apple-app-store, prometheus, bamboo, buildkite, campfire, confluence, packagist, pivotaltracker, pumble, pushover, teamcity, unify-circuit, webex-teams, zentao, gitlab-slack-application.

The config object is sent verbatim as the request body. See doc/api/integrations.md for the exact fields each integration accepts (for example slack expects webhook. Harbor expects url, project_name, username, password).

Returns: JSON with the resulting integration details.

See also: project.integration_get, project.integration_list, project.integration_delete, project.integration_set_jira.

  • Meta-tool: gitlab_project, action integration_set
  • Individual tool: gitlab_set_integration
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesIntegration 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
configobjectnoIntegration 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

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).

The config object is sent verbatim as the request body. See doc/api/group_integrations.md and doc/api/integrations.md for the per-integration fields.

Returns: JSON with the resulting group integration details.

See also: project.integration_get_group, project.integration_list_group, project.integration_delete_group.

  • Meta-tool: gitlab_project, action integration_set_group
  • Individual tool: gitlab_set_group_integration
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
slugstringyesIntegration slug to configure (e.g. slack, jira, harbor). See doc/api/group_integrations.md for the supported list and each integration’s config fields
configobjectnoIntegration configuration parameters as documented for the chosen slug in doc/api/integrations.md (sent verbatim as the request body)

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, datadog_ci_visibility, archive_trace_events, or use_inherited_settings=true must be supplied.

Returns: JSON with the updated Datadog integration details, whose configuration lives in the nested properties object.

See also: project.integration_get_group_datadog, project.integration_delete_group_datadog.

  • Meta-tool: gitlab_project, action integration_set_group_datadog
  • Individual tool: gitlab_set_group_datadog_integration
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
api_keystringnoDatadog API key (write-only. Never returned by the get endpoint)
api_urlstringnoDatadog API URL (e.g. https://api.datadoghq.com)
archive_trace_eventsbooleannoForward CI job trace events to Datadog
datadog_ci_visibilitybooleannoEnable Datadog CI Visibility: forward pipeline/job data to Datadog CI Visibility
datadog_envstringnoDatadog env tag forwarded with every log/metric
datadog_servicestringnoDatadog service tag forwarded with every log/metric
datadog_sitestringnoDatadog site (e.g. datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com)
datadog_tagsstringnoComma-separated Datadog tags forwarded with every log/metric
use_inherited_settingsbooleannoInherit the Datadog configuration from the closest ancestor group that has one configured (overrides all per-field settings)

Configure the Jira integration for a project. Sets up the connection to a Jira instance with URL, credentials, and event triggers.

Returns: JSON with the configured Jira integration details.

See also: project.integration_list, project.integration_get.

  • Meta-tool: gitlab_project, action integration_set_jira
  • Individual tool: gitlab_set_jira_integration
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
urlstringyesJira instance base URL
activebooleannoEnable or disable the integration
api_urlstringnoJira API URL (overrides base URL)
comment_on_event_enabledbooleannoAdd comments on Jira issues for events
commit_eventsbooleannoTrigger on commit events
customize_jira_issue_enabledbooleannoCustomize the Jira issue created for vulnerabilities
issues_enabledbooleannoEnable Jira issues integration
jira_allowed_statuses_as_stringstringnoComma-separated list of allowed Jira statuses (used with jira_status_check_enabled)
jira_assignee_check_enabledbooleannoRequire the referenced Jira issue to have an assignee
jira_auth_typeintegernoJira auth type (0=basic, 1=token)
jira_check_enabledbooleannoRequire commits/MRs to reference a Jira issue
jira_exists_check_enabledbooleannoRequire that the referenced Jira issue exists
jira_issue_prefixstringnoJira issue key prefix
jira_issue_regexstringnoCustom regex for Jira issue keys
jira_issue_transition_automaticbooleannoAuto-transition Jira issues
jira_issue_transition_idstringnoJira transition ID
jira_status_check_enabledbooleannoRequire the referenced Jira issue to be in an allowed status
merge_requests_eventsbooleannoTrigger on merge request events
passwordstringnoJira password or API token
project_keystringnoJira project key where vulnerability tickets are created (when vulnerabilities_enabled is true)
project_keysstring[]noJira project keys to restrict (used when issues_enabled is true)
use_inherited_settingsbooleannoUse inherited settings from group
usernamestringnoJira username
vulnerabilities_enabledbooleannoCreate Jira issues for vulnerabilities
vulnerabilities_issuetypeintegernoJira issue type ID used for vulnerability tickets (when vulnerabilities_enabled is true)

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, priority, subscribed, is_project_label, archived). See also: project.label_get, project.label_update, issue.list.

  • Meta-tool: gitlab_project, action label_create
  • Individual tool: gitlab_label_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
colorstringyesLabel color in hex format (e.g. #FF0000)
namestringyesLabel name
project_idstring/integeryesProject ID or URL-encoded path
archivedbooleannoWhether to create the label in archived state
descriptionstringnoLabel description
priorityintegernoLabel priority (lower is higher priority, 0 means no priority)

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: project.label_list, project.label_get, project.label_create.

  • Meta-tool: gitlab_project, action label_delete
  • Individual tool: gitlab_label_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path
namestringnoLabel name to delete (alternative to label_id for selecting the label by name)

Get a single project label by ID or name. Returns: id, name, color, text_color, description, priority, subscribed, is_project_label, and archived. GitLab sends a label’s usage counts only to project.label_list with with_counts. See also: project.label_list, project.label_update, project.label_delete.

  • Meta-tool: gitlab_project, action label_get
  • Individual tool: gitlab_label_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path

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, priority, subscribed, is_project_label, archived, the open/closed issue and open MR counts when with_counts is true, and pagination metadata. See also: project.label_get, project.label_create, issue.list.

  • Meta-tool: gitlab_project, action label_list
  • Individual tool: gitlab_label_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
include_ancestor_groupsbooleannoInclude labels from ancestor groups
order_bystringnoColumn to order results by (e.g. name, created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoFilter labels by keyword search
sortstring (asc, desc)noSort direction (asc, desc)
with_countsbooleannoInclude issue and merge request counts

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: project.label_get, project.label_list, group.group_label_list.

  • Meta-tool: gitlab_project, action label_promote
  • Individual tool: gitlab_label_promote
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path

Subscribe the authenticated user to a project label for notifications. Returns: the label with subscribed=true (already-subscribed yields 304 Not Modified). See also: project.label_unsubscribe, project.label_get, project.label_list.

  • Meta-tool: gitlab_project, action label_subscribe
  • Individual tool: gitlab_label_subscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path

Unsubscribe the authenticated user from a project label. Returns: no content on success (not-subscribed yields 304 Not Modified). See also: project.label_subscribe, project.label_get, project.label_list.

  • Meta-tool: gitlab_project, action label_unsubscribe
  • Individual tool: gitlab_label_unsubscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path

Update an existing project label (new_name, color, description, priority, archived). Returns: the updated label (id, name, color, text_color, description, priority, subscribed, is_project_label, archived). See also: project.label_get, project.label_list, project.label_delete.

  • Meta-tool: gitlab_project, action label_update
  • Individual tool: gitlab_label_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
label_idstring/integeryesLabel ID or name
project_idstring/integeryesProject ID or URL-encoded path
archivedbooleannoSet true to archive, false to unarchive
colorstringnoNew label color in hex format
descriptionstringnoNew label description
namestringnoLabel name to update (alternative to label_id for selecting the label by name)
new_namestringnoNew label name
priorityintegernoNew label priority, where 0 removes the priority GitLab has

Get a project’s detected languages. Returns: language names with their percentage of the codebase. See also: project.get.

  • Meta-tool: gitlab_project, action languages
  • Individual tool: gitlab_project_languages
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

List projects accessible to the user with filtering and pagination. Returns: projects with namespace, visibility, last_activity_at, and pagination metadata. See also: project.get, project.list_user_projects.

  • Meta-tool: gitlab_project, action list
  • Individual tool: gitlab_project_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
activebooleannoLimit to active (non-archived, non-pending-deletion) projects
archivedbooleannoFilter by archived status (true=only archived, false=only active)
custom_attributesobjectnoFilter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned
id_afterintegernoReturn projects with ID greater than this value (keyset pagination)
id_beforeintegernoReturn projects with ID less than this value (keyset pagination)
importedbooleannoLimit to projects imported from an external source by the current user
include_hiddenbooleannoInclude hidden projects in results
include_pending_deletebooleannoInclude projects that are marked/scheduled for deletion. Default false.
last_activity_afterstringnoReturn projects with last activity after date (ISO 8601 format)
last_activity_beforestringnoReturn projects with last activity before date (ISO 8601 format)
membershipbooleannoLimit to projects where current user is a member
min_access_levelintegernoFilter 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_bystring (id, name, path, created_at, updated_at, last_activity_at, similarity, star_count)noOrder projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count.
ownedbooleannoLimit to projects explicitly owned by the current user
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
repository_checksum_failedbooleannoLimit to projects where the repository checksum calculation failed (admin only)
repository_storagestringnoLimit to projects on the given repository storage shard (admin only)
searchstringnoSearch query for project name
search_namespacesbooleannoInclude namespace in search
simplebooleannoReturn only limited fields (faster for large result sets)
sortstring (asc, desc)noSort direction (asc, desc)
starredbooleannoLimit to projects starred by the current user
statisticsbooleannoInclude project statistics in response
topicstringnoFilter by topic name
visibilitystring (private, internal, public)noFilter by visibility (private, internal, public)
wiki_checksum_failedbooleannoLimit to projects where the wiki checksum calculation failed (admin only)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)
with_issues_enabledbooleannoFilter by projects with issues feature enabled
with_merge_requests_enabledbooleannoFilter by projects with merge requests enabled
with_programming_languagestringnoFilter by programming language name

List a project’s forks. Returns: forked projects with namespace, visibility, and pagination metadata. See also: project.fork, project.get.

  • Meta-tool: gitlab_project, action list_forks
  • Individual tool: gitlab_project_list_forks
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
activebooleannoLimit to active (non-archived, non-pending-deletion) forks
archivedbooleannoFilter by archived status (true=only archived, false=only active)
custom_attributesobjectnoFilter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned
id_afterintegernoReturn forks with ID greater than this value (keyset pagination)
id_beforeintegernoReturn forks with ID less than this value (keyset pagination)
importedbooleannoLimit to forks imported from an external source by the current user
include_hiddenbooleannoInclude hidden forks in results
include_pending_deletebooleannoInclude forks marked/scheduled for deletion. Default false.
last_activity_afterstringnoReturn forks with last activity after date (ISO 8601 format)
last_activity_beforestringnoReturn forks with last activity before date (ISO 8601 format)
membershipbooleannoLimit to forks where the current user is a member
min_access_levelintegernoFilter 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_bystring (id, name, path, created_at, updated_at, last_activity_at, similarity, star_count)noOrder projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count.
ownedbooleannoLimit to forks owned by the current user
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
repository_checksum_failedbooleannoLimit to forks where the repository checksum calculation failed (admin only)
repository_storagestringnoLimit to forks on the given repository storage shard (admin only)
searchstringnoSearch query for fork name
search_namespacesbooleannoInclude namespace in search
simplebooleannoReturn only limited fields (faster for large result sets)
sortstring (asc, desc)noSort direction (asc, desc)
starredbooleannoLimit to forks starred by the current user
statisticsbooleannoInclude project statistics in response
topicstringnoFilter by topic name
visibilitystring (private, internal, public)noFilter by visibility (private, internal, public)
wiki_checksum_failedbooleannoLimit to forks where the wiki checksum calculation failed (admin only)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)
with_issues_enabledbooleannoFilter by forks with issues feature enabled
with_merge_requests_enabledbooleannoFilter by forks with merge requests enabled
with_programming_languagestringnoFilter by programming language name

List a project’s associated groups. Returns: groups with id, full_path, and full_name, plus pagination metadata. See also: project.list_invited_groups, group.get.

  • Meta-tool: gitlab_project, action list_groups
  • Individual tool: gitlab_project_list_groups
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch by group name
shared_min_access_levelintegernoFilter 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_onlybooleannoOnly show shared groups visible to the current user
skip_groupsinteger[]noArray of group IDs to exclude
sortstring (asc, desc)noKeyset sort direction (asc, desc)
with_sharedbooleannoInclude shared groups (default true)

List groups invited to a project. Returns: invited groups with id, full_path, and full_name, plus pagination metadata. See also: project.share_with_group, project.list_groups.

  • Meta-tool: gitlab_project, action list_invited_groups
  • Individual tool: gitlab_project_list_invited_groups
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
min_access_levelintegernoFilter 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_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
relationstring[]noFilter by group relation to the project (e.g. direct, inherited)
searchstringnoSearch by group name
sortstring (asc, desc)noKeyset sort direction (asc, desc)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)

List a project’s starrers. Returns: users with their starred_since date, plus pagination metadata. See also: project.star, project.list_user_starred.

  • Meta-tool: gitlab_project, action list_starrers
  • Individual tool: gitlab_project_list_starrers
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch by name or username
sortstring (asc, desc)noKeyset sort direction (asc, desc)

List projects a user contributed to. Returns: projects with namespace, visibility, and pagination metadata. See also: project.list_user_projects, project.list_user_starred.

  • Meta-tool: gitlab_project, action list_user_contributed
  • Individual tool: gitlab_project_list_user_contributed
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
user_idstring/integeryesUser ID or username
activebooleannoLimit to active (non-archived, non-pending-deletion) projects
archivedbooleannoFilter by archived status (true=only archived, false=only active)
custom_attributesobjectnoFilter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned
id_afterintegernoReturn projects with ID greater than this value (keyset pagination)
id_beforeintegernoReturn projects with ID less than this value (keyset pagination)
importedbooleannoLimit to projects imported from an external source by the current user
include_hiddenbooleannoInclude hidden projects in results
include_pending_deletebooleannoInclude projects marked/scheduled for deletion. Default false.
last_activity_afterstringnoReturn projects with last activity after date (ISO 8601 format)
last_activity_beforestringnoReturn projects with last activity before date (ISO 8601 format)
membershipbooleannoLimit to projects where the current user is a member
min_access_levelintegernoFilter 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_bystring (id, name, path, created_at, updated_at, last_activity_at, similarity, star_count)noOrder projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count.
ownedbooleannoLimit to projects explicitly owned by the current user
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
repository_checksum_failedbooleannoLimit to projects where the repository checksum calculation failed (admin only)
repository_storagestringnoLimit to projects on the given repository storage shard (admin only)
searchstringnoSearch query for project name
search_namespacesbooleannoInclude namespace in search
simplebooleannoReturn only limited fields (faster)
sortstring (asc, desc)noSort direction (asc, desc)
starredbooleannoLimit to projects starred by the current user
statisticsbooleannoInclude project statistics in response
topicstringnoFilter by topic name
visibilitystring (private, internal, public)noFilter by visibility (private, internal, public)
wiki_checksum_failedbooleannoLimit to projects where the wiki checksum calculation failed (admin only)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)
with_issues_enabledbooleannoFilter by projects with issues feature enabled
with_merge_requests_enabledbooleannoFilter by projects with merge requests enabled
with_programming_languagestringnoFilter by programming language name

List a user’s owned projects. Returns: projects with namespace, visibility, and pagination metadata. See also: project.list_user_contributed, project.list_user_starred.

  • Meta-tool: gitlab_project, action list_user_projects
  • Individual tool: gitlab_project_list_user_projects
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
user_idstring/integeryesUser ID or username
activebooleannoLimit to active (non-archived, non-pending-deletion) projects
archivedbooleannoFilter by archived status (true=only archived, false=only active)
custom_attributesobjectnoFilter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned
id_afterintegernoReturn projects with ID greater than this value (keyset pagination)
id_beforeintegernoReturn projects with ID less than this value (keyset pagination)
importedbooleannoLimit to projects imported from an external source by the current user
include_hiddenbooleannoInclude hidden projects in results
include_pending_deletebooleannoInclude projects marked/scheduled for deletion. Default false.
last_activity_afterstringnoReturn projects with last activity after date (ISO 8601 format)
last_activity_beforestringnoReturn projects with last activity before date (ISO 8601 format)
membershipbooleannoLimit to projects where the current user is a member
min_access_levelintegernoFilter 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_bystring (id, name, path, created_at, updated_at, last_activity_at, similarity, star_count)noOrder projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count.
ownedbooleannoLimit to projects explicitly owned by the current user
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
repository_checksum_failedbooleannoLimit to projects where the repository checksum calculation failed (admin only)
repository_storagestringnoLimit to projects on the given repository storage shard (admin only)
searchstringnoSearch query for project name
search_namespacesbooleannoInclude namespace in search
simplebooleannoReturn only limited fields (faster)
sortstring (asc, desc)noSort direction (asc, desc)
starredbooleannoLimit to projects starred by the current user
statisticsbooleannoInclude project statistics in response
topicstringnoFilter by topic name
visibilitystring (private, internal, public)noFilter by visibility (private, internal, public)
wiki_checksum_failedbooleannoLimit to projects where the wiki checksum calculation failed (admin only)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)
with_issues_enabledbooleannoFilter by projects with issues feature enabled
with_merge_requests_enabledbooleannoFilter by projects with merge requests enabled
with_programming_languagestringnoFilter by programming language name

List projects a user starred. Returns: projects with namespace, visibility, and pagination metadata. See also: project.list_user_projects, project.list_starrers.

  • Meta-tool: gitlab_project, action list_user_starred
  • Individual tool: gitlab_project_list_user_starred
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
user_idstring/integeryesUser ID or username
activebooleannoLimit to active (non-archived, non-pending-deletion) projects
archivedbooleannoFilter by archived status (true=only archived, false=only active)
custom_attributesobjectnoFilter projects by custom attribute key/value pairs (admin only). Different from with_custom_attributes, which only controls whether attributes are returned
id_afterintegernoReturn projects with ID greater than this value (keyset pagination)
id_beforeintegernoReturn projects with ID less than this value (keyset pagination)
importedbooleannoLimit to projects imported from an external source by the current user
include_hiddenbooleannoInclude hidden projects in results
include_pending_deletebooleannoInclude projects marked/scheduled for deletion. Default false.
last_activity_afterstringnoReturn projects with last activity after date (ISO 8601 format)
last_activity_beforestringnoReturn projects with last activity before date (ISO 8601 format)
membershipbooleannoLimit to projects where the current user is a member
min_access_levelintegernoFilter 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_bystring (id, name, path, created_at, updated_at, last_activity_at, similarity, star_count)noOrder projects by id, name, path, created_at, updated_at, last_activity_at, similarity (requires search query), or star_count.
ownedbooleannoLimit to projects explicitly owned by the current user
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
repository_checksum_failedbooleannoLimit to projects where the repository checksum calculation failed (admin only)
repository_storagestringnoLimit to projects on the given repository storage shard (admin only)
searchstringnoSearch query for project name
search_namespacesbooleannoInclude namespace in search
simplebooleannoReturn only limited fields (faster)
sortstring (asc, desc)noSort direction (asc, desc)
starredbooleannoLimit to projects starred by the current user
statisticsbooleannoInclude project statistics in response
topicstringnoFilter by topic name
visibilitystring (private, internal, public)noFilter by visibility (private, internal, public)
wiki_checksum_failedbooleannoLimit to projects where the wiki checksum calculation failed (admin only)
with_custom_attributesbooleannoInclude custom attributes in the response (admin only)
with_issues_enabledbooleannoFilter by projects with issues feature enabled
with_merge_requests_enabledbooleannoFilter by projects with merge requests enabled
with_programming_languagestringnoFilter by programming language name

List a project’s users. Returns: users with id, username, name, and state, plus pagination metadata. See also: project.get, project.members.

  • Meta-tool: gitlab_project, action list_users
  • Individual tool: gitlab_project_list_users
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoKeyset ordering column (for keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch by name or username
sortstring (asc, desc)noKeyset sort direction (asc, desc)

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: project.member_edit, project.members, user.list.

  • Meta-tool: gitlab_project, action member_add
  • Individual tool: gitlab_project_member_add
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
user_idintegeryesUser ID to add (provide user_id or username)
access_levelintegernoAccess level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner)
expires_atstringnoMembership expiration date (YYYY-MM-DD)
member_role_idintegernoCustom member role ID
usernamestringnoUsername to add (provide user_id or username)

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: project.member_edit, project.members.

  • Meta-tool: gitlab_project, action member_delete
  • Individual tool: gitlab_project_member_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
user_idintegeryesUser ID of the member to remove

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: project.member_add, project.member_delete, project.members.

  • Meta-tool: gitlab_project, action member_edit
  • Individual tool: gitlab_project_member_edit
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
user_idintegeryesUser ID of the member to edit
access_levelintegernoNew access level (5=Minimal access, 10=Guest, 15=Planner (Premium/Ultimate), 20=Reporter, 25=Security Manager (Premium/Ultimate), 30=Developer, 40=Maintainer, 50=Owner)
expires_atstringnoMembership expiration date (YYYY-MM-DD)
member_role_idintegernoCustom member role ID

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: project.member_inherited, project.members, project.member_edit.

  • Meta-tool: gitlab_project, action member_get
  • Individual tool: gitlab_project_member_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
user_idintegeryesUser ID of the member

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: project.member_get, project.members.

  • Meta-tool: gitlab_project, action member_inherited
  • Individual tool: gitlab_project_member_get_inherited
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
user_idintegeryesUser ID of the member

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: project.member_get, project.member_add, project.get.

  • Meta-tool: gitlab_project, action members
  • Individual tool: gitlab_project_members_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order results by (e.g. id, name, username, access_level)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
querystringnoFilter members by name or username
show_seat_infobooleannoInclude seat usage information (is_using_seat) for each member
sortstring (asc, desc)noSort direction (asc, desc)
user_idsinteger[]noFilter the results to only the listed user IDs

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: project.milestone_get, project.milestone_update, project.milestone_list.

  • Meta-tool: gitlab_project, action milestone_create
  • Individual tool: gitlab_milestone_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
titlestringyesMilestone title
descriptionstringnoMilestone description
due_datestringnoDue date (YYYY-MM-DD)
start_datestringnoStart date (YYYY-MM-DD)

Delete a milestone permanently from a project by milestone IID. Returns: a success confirmation naming the milestone and project. See also: project.milestone_get, project.milestone_update, project.milestone_list.

  • Meta-tool: gitlab_project, action milestone_delete
  • Individual tool: gitlab_milestone_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
milestone_iidintegeryesMilestone IID (project-scoped). Use project.milestone_list to find IIDs
project_idstring/integeryesProject ID or URL-encoded path

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: project.milestone_list, project.milestone_update, project.milestone_issues, project.milestone_merge_requests.

  • Meta-tool: gitlab_project, action milestone_get
  • Individual tool: gitlab_milestone_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
milestone_iidintegeryesMilestone IID (project-scoped). Use project.milestone_list to find IIDs
project_idstring/integeryesProject ID or URL-encoded path

List issues assigned to a single milestone with ordering and pagination. Returns: assigned issues with IID, project, title, state, labels, author, assignees, confidentiality, weight, due date, web URL, timestamps, and pagination metadata. See also: project.milestone_get, project.milestone_merge_requests, issue.list.

  • Meta-tool: gitlab_project, action milestone_issues
  • Individual tool: gitlab_milestone_issues
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
milestone_iidintegeryesMilestone IID (project-scoped). Use project.milestone_list to find IIDs
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoOrder results by field (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

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: project.milestone_get, project.milestone_create, project.milestone_issues.

  • Meta-tool: gitlab_project, action milestone_list
  • Individual tool: gitlab_milestone_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
iidsinteger[]noFilter by milestone IIDs
include_ancestorsbooleannoInclude milestones from parent groups
include_parent_milestonesbooleannoDeprecated (GitLab 16.7+): use include_ancestors instead. Include milestones from parent groups
order_bystringnoOrder results by field (e.g. created_at, updated_at, due_date, title)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch milestones by title or description
sortstring (asc, desc)noSort direction (asc, desc)
statestring (active, closed)noFilter by state (active, closed)
titlestringnoFilter by exact milestone title

List merge requests assigned to a single milestone with ordering and pagination. Returns: assigned merge requests with IID, project, title, state, draft flag, merge status, source/target branches, labels, author, assignees, reviewers, web URL, timestamps, and pagination metadata. See also: project.milestone_get, project.milestone_issues, merge_request.list.

  • Meta-tool: gitlab_project, action milestone_merge_requests
  • Individual tool: gitlab_milestone_merge_requests
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
milestone_iidintegeryesMilestone IID (project-scoped). Use project.milestone_list to find IIDs
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoOrder results by field (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

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: project.milestone_get, project.milestone_delete, project.milestone_list.

  • Meta-tool: gitlab_project, action milestone_update
  • Individual tool: gitlab_milestone_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
milestone_iidintegeryesMilestone IID (project-scoped). Use project.milestone_list to find IIDs
project_idstring/integeryesProject ID or URL-encoded path
descriptionstringnoMilestone description
due_datestringnoDue date (YYYY-MM-DD)
start_datestringnoStart date (YYYY-MM-DD)
state_eventstring (close, activate)noState transition: activate or close
titlestringnoMilestone title

Create a push (remote) mirror on a project. Destructive: the host in url receives the whole repository from then on, so confirmation is required. Returns: the created mirror with id, enabled state, redacted URL, and update status. See also: project.mirror_list, project.mirror_edit, project.mirror_get_public_key.

  • Meta-tool: gitlab_project, action mirror_add
  • Individual tool: gitlab_add_project_mirror
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
urlstringyesRemote 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
auth_methodstring (ssh_public_key, password)noAuthentication method (password or ssh_public_key)
enabledbooleannoWhether the mirror is enabled
host_keysstring[]noSSH host keys for the remote mirror
keep_divergent_refsbooleannoKeep divergent refs on the remote
mirror_branch_regexstringnoRegex pattern for branches to mirror
only_protected_branchesbooleannoMirror only protected branches

Delete a push mirror from a project permanently. Returns: a success confirmation naming the mirror and project. See also: project.mirror_get, project.mirror_edit.

  • Meta-tool: gitlab_project, action mirror_delete
  • Individual tool: gitlab_delete_project_mirror
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
mirror_idintegeryesRemote mirror ID
project_idstring/integeryesProject ID or URL-encoded path

Update a push mirror’s attributes (enabled, branch filtering, divergent refs, auth method). Returns: the updated mirror. See also: project.mirror_get, project.mirror_force_push.

  • Meta-tool: gitlab_project, action mirror_edit
  • Individual tool: gitlab_edit_project_mirror
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
mirror_idintegeryesRemote mirror ID
project_idstring/integeryesProject ID or URL-encoded path
auth_methodstring (ssh_public_key, password)noAuthentication method (password or ssh_public_key)
enabledbooleannoWhether the mirror is enabled
host_keysstring[]noSSH host keys for the remote mirror
keep_divergent_refsbooleannoKeep divergent refs on the remote
mirror_branch_regexstringnoRegex pattern for branches to mirror
only_protected_branchesbooleannoMirror only protected branches

Trigger an immediate update of a push mirror. Returns: a confirmation that the update was triggered. See also: project.mirror_get, project.mirror_edit.

  • Meta-tool: gitlab_project, action mirror_force_push
  • Individual tool: gitlab_force_push_mirror_update
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
mirror_idintegeryesRemote mirror ID
project_idstring/integeryesProject ID or URL-encoded path

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: project.mirror_list, project.mirror_edit, project.mirror_force_push.

  • Meta-tool: gitlab_project, action mirror_get
  • Individual tool: gitlab_get_project_mirror
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
mirror_idintegeryesRemote mirror ID
project_idstring/integeryesProject ID or URL-encoded path

Get the SSH public key for an SSH-authenticated push mirror. Returns: the public key to register on the remote. See also: project.mirror_get, project.mirror_edit.

  • Meta-tool: gitlab_project, action mirror_get_public_key
  • Individual tool: gitlab_get_project_mirror_public_key
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
mirror_idintegeryesRemote mirror ID
project_idstring/integeryesProject ID or URL-encoded path

List a project’s push (remote) mirrors. Returns: each mirror with id, enabled state, redacted URL, last-update status, and pagination metadata. See also: project.mirror_get, project.mirror_add, project.pull_mirror_get.

  • Meta-tool: gitlab_project, action mirror_list
  • Individual tool: gitlab_list_project_mirrors
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id). Only applies when pagination=‘keyset’.
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset-paginated results: asc or desc. Only applies when pagination=‘keyset’.

Add a new custom Pages domain to a project. Returns: the created domain with verification code, auto-SSL flag, and certificate details. See also: project.pages_domain_get, project.pages_domain_update, project.pages_domain_list.

  • Meta-tool: gitlab_project, action pages_domain_create
  • Individual tool: gitlab_pages_domain_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
domainstringyesCustom domain name (e.g. example.com)
project_idstring/integeryesProject ID or URL-encoded path
auto_ssl_enabledbooleannoEnable automatic SSL certificate provisioning
certificatestringnoPEM-encoded SSL certificate
keystringnoPEM-encoded private key for the certificate

Remove a custom Pages domain from a project (destructive). Returns: a success confirmation naming the deleted domain. See also: project.pages_domain_get, project.pages_domain_list.

  • Meta-tool: gitlab_project, action pages_domain_delete
  • Individual tool: gitlab_pages_domain_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
domainstringyesThe Pages domain name to delete
project_idstring/integeryesProject ID or URL-encoded path

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: project.pages_domain_list, project.pages_domain_update, project.pages_domain_delete.

  • Meta-tool: gitlab_project, action pages_domain_get
  • Individual tool: gitlab_pages_domain_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
domainstringyesThe Pages domain name
project_idstring/integeryesProject ID or URL-encoded path

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: project.pages_domain_get, project.pages_domain_create, project.pages_domain_list_all.

  • Meta-tool: gitlab_project, action pages_domain_list
  • Individual tool: gitlab_pages_domain_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

List the GitLab Pages custom domains across the whole instance (admin only), one page at a time. Use this instead of project.pages_domain_list when you need every domain on the instance, not just those attached to a single project. Returns: the page of domains with verification status, auto-SSL flag, project ID, and certificate subject, and pagination metadata. See also: project.pages_domain_list, project.pages_domain_get, project.pages_domain_create.

  • Meta-tool: gitlab_project, action pages_domain_list_all
  • Individual tool: gitlab_pages_domain_list_all
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.

Update an existing Pages custom domain’s auto-SSL flag or certificate. Returns: the updated domain with verification status and certificate details. See also: project.pages_domain_get, project.pages_domain_delete, project.pages_domain_list.

  • Meta-tool: gitlab_project, action pages_domain_update
  • Individual tool: gitlab_pages_domain_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
domainstringyesThe Pages domain name to update
project_idstring/integeryesProject ID or URL-encoded path
auto_ssl_enabledbooleannoEnable automatic SSL certificate provisioning
certificatestringnoPEM-encoded SSL certificate
keystringnoPEM-encoded private key for the certificate

Get the Pages settings for a project. Returns: the Pages URL, force-HTTPS and unique-domain flags, primary domain, and recent deployments. See also: project.pages_update, project.pages_unpublish, project.pages_domain_list.

  • Meta-tool: gitlab_project, action pages_get
  • Individual tool: gitlab_pages_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Unpublish a project’s Pages site (destructive). Returns: a success confirmation. See also: project.pages_get, project.pages_update.

  • Meta-tool: gitlab_project, action pages_unpublish
  • Individual tool: gitlab_pages_unpublish
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

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: project.pages_get, project.pages_domain_create, project.pages_unpublish.

  • Meta-tool: gitlab_project, action pages_update
  • Individual tool: gitlab_pages_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
pages_https_onlybooleannoEnforce HTTPS for Pages
pages_primary_domainstringnoPrimary domain for Pages
pages_unique_domain_enabledbooleannoEnable unique domain for Pages

Configure a project’s pull mirror. Arming mirror_overwrites_diverged_branches replaces this project’s diverged branches with the source’s and requires confirmation. Returns: the updated mirror configuration. See also: project.pull_mirror_get, project.start_mirroring.

  • Meta-tool: gitlab_project, action pull_mirror_configure
  • Individual tool: gitlab_project_pull_mirror_configure
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
auth_passwordstringnoAuthentication password or token for the mirror URL. Treat as secret: do not log or store it, and redact it in telemetry/errors
auth_userstringnoAuthentication username for the mirror URL. Treat as secret-adjacent and avoid logging with auth_password
confirmbooleannoConfirms arming mirror_overwrites_diverged_branches, which discards local commits on every diverged branch. Only required when this call leaves the mirror overwriting
enabledbooleannoEnable or disable pull mirroring
mirror_branch_regexstringnoRegex to filter branches to mirror
mirror_overwrites_diverged_branchesbooleannoReplace this project’s diverged branches with the source’s versions on every sync, discarding the local commits. Without it GitLab stops updating a diverged branch instead. Requires confirm=true
mirror_trigger_buildsbooleannoTrigger CI builds when mirror updates
only_mirror_protected_branchesbooleannoOnly mirror protected branches
urlstringnoPull mirror source URL. Do not include credentials in the URL. Unlike push mirror endpoints, pull mirroring requires auth_user and auth_password for authentication

Get a project’s pull-mirror configuration. Returns: the mirror URL, enabled flag, and last sync status. See also: project.pull_mirror_configure, project.start_mirroring.

  • Meta-tool: gitlab_project, action pull_mirror_get
  • Individual tool: gitlab_project_pull_mirror_get
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Add push rules to a project. Returns: the created push-rule configuration. See also: project.push_rule_get, project.push_rule_edit.

  • Meta-tool: gitlab_project, action push_rule_add
  • Individual tool: gitlab_project_add_push_rule
  • Tier: Premium
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
author_email_regexstringnoRegex to validate author email addresses
branch_name_regexstringnoRegex to validate branch names
commit_committer_checkbooleannoReject commits where committer is not a project member
commit_committer_name_checkbooleannoReject commits where committer name does not match user name
commit_message_negative_regexstringnoRegex that commit messages must NOT match
commit_message_regexstringnoRegex that commit messages must match
deny_delete_tagbooleannoDeny tag deletion
file_name_regexstringnoRegex for disallowed file names
max_file_sizeintegernoMaximum file size (MB). 0 means unlimited
member_checkbooleannoOnly allow commits from project members
prevent_secretsbooleannoReject files that are likely to contain secrets
reject_non_dco_commitsbooleannoReject commits without DCO certification
reject_unsigned_commitsbooleannoReject commits that are not GPG signed

Delete a project’s push rules. Returns: a success confirmation naming the project. See also: project.push_rule_get, project.push_rule_add.

  • Meta-tool: gitlab_project, action push_rule_delete
  • Individual tool: gitlab_project_delete_push_rule
  • Tier: Premium
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Edit a project’s push rules. Returns: the updated push-rule configuration. See also: project.push_rule_get, project.push_rule_add.

  • Meta-tool: gitlab_project, action push_rule_edit
  • Individual tool: gitlab_project_edit_push_rule
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
author_email_regexstringnoRegex to validate author email addresses
branch_name_regexstringnoRegex to validate branch names
commit_committer_checkbooleannoReject commits where committer is not a project member
commit_committer_name_checkbooleannoReject commits where committer name does not match user name
commit_message_negative_regexstringnoRegex that commit messages must NOT match
commit_message_regexstringnoRegex that commit messages must match
deny_delete_tagbooleannoDeny tag deletion
file_name_regexstringnoRegex for disallowed file names
max_file_sizeintegernoMaximum file size (MB). 0 means unlimited
member_checkbooleannoOnly allow commits from project members
prevent_secretsbooleannoReject files that are likely to contain secrets
reject_non_dco_commitsbooleannoReject commits without DCO certification
reject_unsigned_commitsbooleannoReject commits that are not GPG signed

Get a project’s push rules. Returns: the singleton push-rule configuration such as commit_message_regex and reject_unsigned_commits. See also: project.push_rule_add, project.push_rule_edit.

  • Meta-tool: gitlab_project, action push_rule_get
  • Individual tool: gitlab_project_get_push_rules
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Get a project’s repository storage shard. Returns: the storage shard name. See also: project.start_housekeeping, project.get.

  • Meta-tool: gitlab_project, action repository_storage_get
  • Individual tool: gitlab_project_repository_storage_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Restore a project marked for deletion. Returns: the restored project. See also: project.delete, project.get.

  • Meta-tool: gitlab_project, action restore
  • Individual tool: gitlab_project_restore
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path of the project marked for deletion

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: project.security_settings_update, project.get.

  • Meta-tool: gitlab_project, action security_settings_get
  • Individual tool: gitlab_get_project_security_settings
  • Tier: Ultimate
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

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: project.security_settings_get, group.security_settings_update.

  • Meta-tool: gitlab_project, action security_settings_update
  • Individual tool: gitlab_update_project_secret_push_protection
  • Tier: Ultimate
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
secret_push_protection_enabledbooleanyesEnable or disable secret push protection

Create a GitLab project service account. Returns: the created project service account object. See also: project.service_account_list, project.service_account_update, project.service_account_pat_create.

  • Meta-tool: gitlab_project, action service_account_create
  • Individual tool: gitlab_project_service_account_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
emailstringnoService account email
namestringnoService account name
usernamestringnoService account username

Delete a GitLab project service account. Returns: a success status confirming deletion. See also: project.service_account_list, project.service_account_update.

  • Meta-tool: gitlab_project, action service_account_delete
  • Individual tool: gitlab_project_service_account_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID
hard_deletebooleannoHard delete the service account

Get one GitLab project service account by its user ID (GitLab 19.4 or later). Returns: the project service account object. See also: project.service_account_list, project.service_account_update, project.service_account_pat_list.

  • Meta-tool: gitlab_project, action service_account_get
  • Individual tool: gitlab_project_service_account_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID

List GitLab project service accounts. Returns: paginated project service account records. See also: project.get, project.service_account_create, project.service_account_pat_list.

  • Meta-tool: gitlab_project, action service_account_list
  • Individual tool: gitlab_project_service_account_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoOrder by id or username
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction: asc or desc

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: project.service_account_pat_list, project.service_account_pat_rotate.

  • Meta-tool: gitlab_project, action service_account_pat_create
  • Individual tool: gitlab_project_service_account_pat_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesToken name
project_idstring/integeryesProject ID or URL-encoded path
scopesstring[]yesToken scopes (e.g. api, read_api, read_user)
service_account_idintegeryesService account user ID
descriptionstringnoToken description
expires_atstringnoExpiration date in YYYY-MM-DD format

List personal access tokens for a GitLab project service account. Returns: paginated token records. See also: project.service_account_list, project.service_account_pat_create, project.service_account_pat_revoke.

  • Meta-tool: gitlab_project, action service_account_pat_list
  • Individual tool: gitlab_project_service_account_pat_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID
created_afterstringnoFilter tokens created after RFC3339 datetime or YYYY-MM-DD date
created_beforestringnoFilter tokens created before RFC3339 datetime or YYYY-MM-DD date
expires_afterstringnoFilter tokens expiring after YYYY-MM-DD date
expires_beforestringnoFilter tokens expiring before YYYY-MM-DD date
last_used_afterstringnoFilter tokens last used after RFC3339 datetime or YYYY-MM-DD date
last_used_beforestringnoFilter tokens last used before RFC3339 datetime or YYYY-MM-DD date
order_bystringnoOrder tokens by column (keyset pagination)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
revokedbooleannoFilter by revoked state
searchstringnoSearch token names
sortstring (asc, desc)noSort expression
statestring (active, inactive)noToken state filter: active or inactive
user_idintegernoFilter by user ID

Revoke a personal access token for a GitLab project service account. Returns: a success status confirming revocation. See also: project.service_account_pat_list, project.service_account_pat_create.

  • Meta-tool: gitlab_project, action service_account_pat_revoke
  • Individual tool: gitlab_project_service_account_pat_revoke
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID
token_idintegeryesPersonal access token ID to revoke

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: project.service_account_pat_list, project.service_account_pat_revoke.

  • Meta-tool: gitlab_project, action service_account_pat_rotate
  • Individual tool: gitlab_project_service_account_pat_rotate
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID
token_idintegeryesPersonal access token ID to rotate
expires_atstringnoNew expiration date in YYYY-MM-DD format

Update a GitLab project service account. Returns: the updated project service account object. See also: project.service_account_list, project.service_account_delete.

  • Meta-tool: gitlab_project, action service_account_update
  • Individual tool: gitlab_project_service_account_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
service_account_idintegeryesService account user ID
emailstringnoNew email
namestringnoNew name
usernamestringnoNew username

Share a project with a group. Returns: a confirmation with the group ID and granted access role. See also: project.delete_shared_group, project.list_invited_groups.

  • Meta-tool: gitlab_project, action share_with_group
  • Individual tool: gitlab_project_share_with_group
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
group_accessintegeryesAccess level for the group (5=Minimal access 10=Guest 15=Planner (Premium/Ultimate) 20=Reporter 25=Security Manager (Premium/Ultimate) 30=Developer 40=Maintainer 50=Owner)
group_idintegeryesGroup ID to share with
project_idstring/integeryesProject ID or URL-encoded path
expires_atstringnoExpiration date for the share (YYYY-MM-DD)

Star a project. Returns: the project with the updated star_count. See also: project.unstar, project.list_starrers.

  • Meta-tool: gitlab_project, action star
  • Individual tool: gitlab_project_star
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Start housekeeping for a project. Returns: a success confirmation naming the project. See also: project.repository_storage_get, project.get.

  • Meta-tool: gitlab_project, action start_housekeeping
  • Individual tool: gitlab_project_start_housekeeping
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Trigger a pull-mirror sync. Returns: a success confirmation naming the project. See also: project.pull_mirror_get, project.pull_mirror_configure.

  • Meta-tool: gitlab_project, action start_mirroring
  • Individual tool: gitlab_project_start_mirroring
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

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: project.get.

  • Meta-tool: gitlab_project, action statistics_get
  • Individual tool: gitlab_get_project_statistics
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Create a target branch rule. Returns: the created rule with id, source-branch name pattern, target_branch, and created_at. See also: project.target_branch_rule_list, project.target_branch_rule_delete.

  • Meta-tool: gitlab_project, action target_branch_rule_create
  • Individual tool: gitlab_project_create_target_branch_rule
  • Tier: Premium
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesSource branch name or wildcard pattern that triggers the rule (e.g. release/*)
project_idstring/integeryesNumeric project ID that owns the rule. The create mutation requires a numeric ID
target_branchstringyesDefault target branch merge requests opened from matching source branches will target

Delete a target branch rule. Returns: a success confirmation naming the rule. See also: project.target_branch_rule_list, project.target_branch_rule_create.

  • Meta-tool: gitlab_project, action target_branch_rule_delete
  • Individual tool: gitlab_project_delete_target_branch_rule
  • Tier: Premium
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
rule_idintegeryesTarget branch rule ID to delete (from the list action)

List a project’s target branch rules. Returns: each rule with id, source-branch name pattern, target_branch, and created_at. See also: project.target_branch_rule_create, project.target_branch_rule_delete.

  • Meta-tool: gitlab_project, action target_branch_rule_list
  • Individual tool: gitlab_project_list_target_branch_rules
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesFull project path such as my-group/my-project. The target branch rules GraphQL query requires the full path and does not accept a numeric ID

Transfer a project to another namespace, waiting up to 45 seconds for GitLab to apply the move. Returns: the project in its new namespace, or with transfer_queued set and its current namespace when GitLab has not applied the move yet, or an error when GitLab reports the move failed. See also: project.get, group.get.

  • Meta-tool: gitlab_project, action transfer
  • Individual tool: gitlab_project_transfer
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
namespacestringyesTarget namespace ID or path
project_idstring/integeryesProject ID or URL-encoded path

Unarchive a project. Returns: the project with archived set to false. See also: project.archive, project.get.

  • Meta-tool: gitlab_project, action unarchive
  • Individual tool: gitlab_project_unarchive
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Unstar a project. Returns: the project with the updated star_count. See also: project.star, project.list_starrers.

  • Meta-tool: gitlab_project, action unstar
  • Individual tool: gitlab_project_unstar
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path

Update a project’s settings. Returns: the updated project with its current configuration and web URL. See also: project.get, project.archive, project.transfer.

  • Meta-tool: gitlab_project, action update
  • Individual tool: gitlab_project_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
allow_merge_on_skipped_pipelinebooleannoAllow merge when pipeline is skipped
allow_pipeline_trigger_approve_deploymentbooleannoAllow pipeline triggerer to approve deployment
analytics_access_levelstringnoAnalytics access level (disabled, private, enabled)
approvals_before_merge (Premium)integernoNumber of approvals required before merge
auto_cancel_pending_pipelinesstring (enabled, disabled)noAuto-cancel redundant pending pipelines when a newer pipeline starts: enabled or disabled.
auto_devops_deploy_strategystring (continuous, manual, timed_incremental)noAuto DevOps deploy strategy: continuous (auto-deploy to production), manual (require manual gate), or timed_incremental (deploy incrementally with time delays).
auto_devops_enabledbooleannoEnable Auto DevOps for the project
auto_duo_code_review_enabledbooleannoEnable automatic GitLab Duo code review
autoclose_referenced_issuesbooleannoAuto-close referenced issues on merge
automatic_rebase_enabledbooleannoRebase the source branch automatically before merge
build_git_strategystring (fetch, clone)noGit strategy for CI builds: fetch (reuse existing clone, faster) or clone (fresh clone every time).
build_timeoutintegernoBuild timeout in seconds
builds_access_levelstringnoCI/CD builds access level (disabled, private, enabled)
ci_config_pathstringnoCustom CI/CD configuration file path
ci_default_git_depthintegernoDefault Git clone depth for CI/CD
ci_delete_pipelines_in_secondsintegernoAuto-delete pipelines older than this many seconds
ci_display_pipeline_variablesbooleannoDisplay pipeline variables in the UI
ci_forward_deployment_enabledbooleannoEnable CI/CD forward deployment (skip outdated jobs)
ci_forward_deployment_rollback_allowedbooleannoAllow job retries even for outdated deployment jobs
ci_id_token_sub_claim_componentsstring[]noComponents used to build the CI ID token sub claim
ci_pipeline_variables_minimum_override_rolestring (owner, maintainer, developer, no_one_allowed)noMinimum role allowed to override pipeline variables (developer, maintainer, owner, no_one_allowed)
ci_push_repository_for_job_token_allowedbooleannoAllow CI job tokens to push to the repository
ci_restrict_pipeline_cancellation_rolestring (developer, maintainer, no_one)noRole required to cancel pipelines/jobs (developer, maintainer, no_one)
ci_separated_cachesbooleannoUse separate caches for protected branches
cicd_catalog_enabledbooleannoPublish the project as a CI/CD catalog resource
container_expiration_policy_attributesobjectnoContainer registry cleanup policy attributes
container_registry_access_levelstringnoContainer registry access level (disabled, private, enabled)
container_registry_enabledbooleannoEnable container registry (deprecated: use container_registry_access_level)
default_branchstringnoNew default branch
descriptionstringnoNew description
emails_disabledbooleannoDisable email notifications (deprecated: use emails_enabled)
emails_enabledbooleannoEnable email notifications
enforce_auth_checks_on_uploadsbooleannoEnforce authorization checks on uploads
environments_access_levelstringnoEnvironments access level (disabled, private, enabled)
external_authorization_classification_labelstringnoExternal authorization classification label
feature_flags_access_levelstringnoFeature flags access level (disabled, private, enabled)
forking_access_levelstringnoForking access level (disabled, private, enabled)
group_runners_enabledbooleannoEnable group runners
import_urlstringnoURL to import/mirror repository from
infrastructure_access_levelstringnoInfrastructure access level (disabled, private, enabled)
issue_branch_templatestringnoTemplate for branch names created from issues
issues_access_levelstringnoIssues access level (disabled, private, enabled)
issues_enabledbooleannoEnable/disable issues feature (use ‘issues_enabled’ not ‘issues_access_level’)
issues_templatestringnoDefault issue description template
jobs_enabledbooleannoEnable CI/CD jobs
keep_latest_artifactbooleannoKeep the latest artifact for each pipeline
lfs_enabledbooleannoEnable Git LFS
max_artifacts_sizeintegernoMaximum artifacts size in MB
merge_commit_templatestringnoTemplate for merge commit messages
merge_methodstring (merge, rebase_merge, ff)noMerge method: merge (default merge commit), rebase_merge (rebase then merge commit), or ff (fast-forward, no merge commit).
merge_pipelines_enabledbooleannoEnable merged results pipelines
merge_request_title_regexstringnoRegex that MR titles must match
merge_request_title_regex_descriptionstringnoHuman-readable description for the MR title regex
merge_requests_access_levelstringnoMerge requests access level (disabled, private, enabled)
merge_requests_enabledbooleannoEnable merge requests feature
merge_requests_templatestringnoDefault merge request description template
merge_trains_enabledbooleannoEnable merge trains
merge_trains_skip_train_allowedbooleannoAllow skipping the merge train
mirrorbooleannoEnable pull mirroring from import_url
mirror_branch_regexstringnoOnly mirror branches matching this regex
mirror_overwrites_diverged_branchesbooleannoOverwrite diverged branches when mirroring
mirror_trigger_buildsbooleannoTrigger pipelines for mirror updates
mirror_user_idintegernoUser ID used to run mirror updates (admin only)
model_experiments_access_levelstringnoModel experiments access level (disabled, private, enabled)
model_registry_access_levelstringnoModel registry access level (disabled, private, enabled)
monitor_access_levelstringnoMonitor access level (disabled, private, enabled)
mr_default_target_selfbooleannoDefault merge request target to the project itself (for forks)
mr_default_title_templatestringnoTemplate for default merge request titles
namestringnoNew project name
only_allow_merge_if_all_discussions_are_resolvedbooleannoOnly allow merge when all discussions are resolved
only_allow_merge_if_all_status_checks_passed (Ultimate)booleannoOnly allow merge when all external status checks pass
only_allow_merge_if_pipeline_succeedsbooleannoOnly allow merge when pipeline succeeds
only_mirror_protected_branchesbooleannoOnly mirror protected branches
package_registry_access_levelstringnoPackage registry access level (disabled, private, enabled)
packages_enabledbooleannoEnable packages feature (deprecated: use package_registry_access_level)
pages_access_levelstringnoPages access level (disabled, private, enabled, public)
pathstringnoNew project path slug
prevent_merge_without_jira_issuebooleannoRequire an associated Jira issue before merge
printing_merge_request_link_enabledbooleannoShow the create-merge-request link after pushing
protect_merge_request_pipelinesbooleannoPrevent merge request pipeline settings from being modified by users with lower permissions
public_buildsbooleannoEnable public access to pipelines
public_jobsbooleannoEnable public access to pipelines
releases_access_levelstringnoReleases access level (disabled, private, enabled)
remove_source_branch_after_mergebooleannoRemove source branch after merge by default
repository_access_levelstringnoRepository access level (disabled, private, enabled)
repository_storagestringnoRepository storage shard name (admin only)
request_access_enabledbooleannoAllow users to request access
requirements_access_levelstringnoRequirements access level (disabled, private, enabled)
resolve_outdated_diff_discussionsbooleannoAuto-resolve outdated diff discussions
resource_group_default_process_modestring (unordered, oldest_first, newest_first, newest_ready_first)noDefault process mode for resource groups: unordered (run in parallel), oldest_first, newest_first, or newest_ready_first.
restrict_user_defined_variablesbooleannoRestrict user-defined pipeline variables (deprecated: use ci_pipeline_variables_minimum_override_role)
reviewer_assignment_strategy (Premium)string (disabled, code_owners)noStrategy used to automatically assign reviewers to merge requests: disabled or code_owners. The former dap_powered value was removed in GitLab 19.4 and only appears in responses of projects configured before then
security_and_compliance_access_levelstringnoSecurity and compliance access level (disabled, private, enabled)
service_desk_enabledbooleannoEnable Service Desk
shared_runners_enabledbooleannoEnable shared runners
show_default_award_emojisbooleannoShow default award emojis on issues/MRs
snippets_access_levelstringnoSnippets access level (disabled, private, enabled)
snippets_enabledbooleannoEnable snippets feature (deprecated: use snippets_access_level)
squash_commit_templatestringnoTemplate for squash commit messages
squash_optionstring (never, always, default_on, default_off)noSquash 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_messagestringnoDefault commit message for suggestions
tag_liststring[]noProject tags (deprecated: use topics)
topicsstring[]noTopic tags for the project
visibilitystring (private, internal, public)noVisibility level (private, internal, public)
wiki_access_levelstringnoWiki access level (disabled, private, enabled)
wiki_enabledbooleannoEnable wiki feature

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: project.upload_list, project.upload_delete, project.get.

  • Meta-tool: gitlab_project, action upload
  • Individual tool: gitlab_project_upload
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
filenamestringyesName of the file to upload (e.g. screenshot.png)
project_idstring/integeryesProject ID or URL-encoded path
content_base64stringnoBase64-encoded file content. Only one of file_path or content_base64 should be provided.
file_pathstringnoAbsolute 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.

Upload a project avatar. Returns: the project with its new avatar_url. See also: project.download_avatar, project.update.

  • Meta-tool: gitlab_project, action upload_avatar
  • Individual tool: gitlab_project_upload_avatar
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
filenamestringyesAvatar filename (e.g. avatar.png)
project_idstring/integeryesProject ID or URL-encoded path
content_base64stringnoBase64-encoded image content. Only one of file_path or content_base64 should be provided.
file_pathstringnoAbsolute 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.

Delete a project Markdown upload by its numeric upload ID. Returns: a success confirmation. See also: project.upload_list, project.upload_delete_by_secret, project.get.

  • Meta-tool: gitlab_project, action upload_delete
  • Individual tool: gitlab_project_upload_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
upload_idintegeryesID of the upload to delete

Delete a project Markdown upload by its 32-character secret and filename (the /uploads/<secret>/<filename> reference). Returns: a success confirmation. See also: project.upload_delete, project.upload_list, project.upload.

  • Meta-tool: gitlab_project, action upload_delete_by_secret
  • Individual tool: gitlab_project_upload_delete_by_secret
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
filenamestringyesFilename of the upload as it appears in the upload URL
project_idstring/integeryesProject ID or URL-encoded path
secretstringyes32-character upload secret from the upload URL (/uploads/<secret>/<filename>)

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: project.upload, project.upload_delete, project.get.

  • Meta-tool: gitlab_project, action upload_list
  • Individual tool: gitlab_project_upload_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’