Pipelines
A project’s pipelines: list them, read one or the latest, run one, wait for one to finish, retry, cancel and delete one, update its metadata, and read its variables and its JUnit test report or summary. Deleting a pipeline removes its jobs with it.
Pipeline schedules (with their variables, running one now and taking one over), pipeline trigger tokens (and running a pipeline with one), and resource groups, the locks that keep jobs from running at once, are actions of this group too.
Sample questions
Section titled “Sample questions”- “Show the pipelines of project 42”
- “What is the status of the latest pipeline on main?”
- “Retry the failed pipeline”
- “Which tests failed in pipeline 1234?”
How to call it
Section titled “How to call it”- Dynamic, the default surface: call
gitlab_execute_actionwithactionset to the action’s ID, such aspipeline.cancel, and its parameters inparams.gitlab_find_actionfinds an ID from a description of the task. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): callgitlab_pipelinewithactionset to the action’s name, such ascancel, and its parameters inparams. - Individual (
GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such asgitlab_pipeline_cancel, with its parameters as the arguments.
Availability
Section titled “Availability”Every tier serves the whole group, on self-managed instances and on GitLab.com alike.
Read-only actions: 15 of 33, the ones a deployment in read-only mode keeps.
Actions
Section titled “Actions”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).
| Action | Individual |
|---|---|
pipeline.cancel | gitlab_pipeline_cancel |
pipeline.create | gitlab_pipeline_create |
pipeline.delete | gitlab_pipeline_delete |
pipeline.get | gitlab_pipeline_get |
pipeline.latest | gitlab_pipeline_latest |
pipeline.list | gitlab_pipeline_list |
pipeline.resource_group_edit | gitlab_edit_resource_group |
pipeline.resource_group_get | gitlab_get_resource_group |
pipeline.resource_group_list | gitlab_list_resource_groups |
pipeline.resource_group_upcoming_jobs | gitlab_list_resource_group_upcoming_jobs |
pipeline.retry | gitlab_pipeline_retry |
pipeline.schedule_create | gitlab_pipeline_schedule_create |
pipeline.schedule_create_variable | gitlab_pipeline_schedule_create_variable |
pipeline.schedule_delete | gitlab_pipeline_schedule_delete |
pipeline.schedule_delete_variable | gitlab_pipeline_schedule_delete_variable |
pipeline.schedule_edit_variable | gitlab_pipeline_schedule_edit_variable |
pipeline.schedule_get | gitlab_pipeline_schedule_get |
pipeline.schedule_list | gitlab_pipeline_schedule_list |
pipeline.schedule_list_triggered_pipelines | gitlab_pipeline_schedule_list_triggered_pipelines |
pipeline.schedule_run | gitlab_pipeline_schedule_run |
pipeline.schedule_take_ownership | gitlab_pipeline_schedule_take_ownership |
pipeline.schedule_update | gitlab_pipeline_schedule_update |
pipeline.test_report | gitlab_pipeline_test_report |
pipeline.test_report_summary | gitlab_pipeline_test_report_summary |
pipeline.trigger_create | gitlab_pipeline_trigger_create |
pipeline.trigger_delete | gitlab_pipeline_trigger_delete |
pipeline.trigger_get | gitlab_pipeline_trigger_get |
pipeline.trigger_list | gitlab_pipeline_trigger_list |
pipeline.trigger_run | gitlab_pipeline_trigger_run |
pipeline.trigger_update | gitlab_pipeline_trigger_update |
pipeline.update_metadata | gitlab_pipeline_update_metadata |
pipeline.variables | gitlab_pipeline_variables |
pipeline.wait | gitlab_pipeline_wait |
pipeline.cancel
Section titled “pipeline.cancel”Cancel a running pipeline. Returns: updated pipeline metadata reflecting the canceled status. See also:
pipeline.get,pipeline.retry,job.list_project.
- Meta-tool:
gitlab_pipeline, actioncancel - Individual tool:
gitlab_pipeline_cancel - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to act on |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.create
Section titled “pipeline.create”Create a new pipeline. Returns: created pipeline metadata including ID, status, and target ref. See also:
pipeline.get,pipeline.wait,job.list_project.
- Meta-tool:
gitlab_pipeline, actioncreate - Individual tool:
gitlab_pipeline_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
ref | string | yes | Branch or tag name to run the pipeline for |
inputs | object | no | Pipeline input parameters keyed by input name. Values may be string, number, boolean, or array of strings, matching the inputs declared in .gitlab-ci.yml spec:inputs. |
variables | object[] | no | Pipeline variables to set |
pipeline.delete
Section titled “pipeline.delete”Delete a pipeline and all its jobs. Returns: a success status and confirmation message. See also:
pipeline.get,pipeline.list,pipeline.cancel.
- Meta-tool:
gitlab_pipeline, actiondelete - Individual tool:
gitlab_pipeline_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to delete |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.get
Section titled “pipeline.get”Get one pipeline by ID. Returns: full pipeline metadata, status lifecycle fields, and links. See also:
pipeline.list,pipeline.variables,job.list_project,pipeline.retry.
- Meta-tool:
gitlab_pipeline, actionget - Individual tool:
gitlab_pipeline_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to retrieve |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.latest
Section titled “pipeline.latest”Get the latest pipeline for a ref. Returns: full pipeline metadata for the most recent run. See also:
pipeline.get,pipeline.list,job.list_project.
- Meta-tool:
gitlab_pipeline, actionlatest - Individual tool:
gitlab_pipeline_latest - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
created_after | string | no | Return pipelines created after date (ISO 8601 format). Applies to the list fallback. |
created_before | string | no | Return pipelines created before date (ISO 8601 format). Applies to the list fallback. |
name | string | no | Filter by pipeline name. Applies to the list fallback. |
order_by | string (id, status, ref, updated_at, user_id) | no | Order by field (id, status, ref, updated_at, user_id). Applies to the list fallback. |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
ref | string | no | Branch or tag name to filter by (defaults to the default branch) |
scope | string (running, pending, finished, branches, tags) | no | Filter by scope (running, pending, finished, branches, tags). Applies to the list fallback. |
sha | string | no | Filter by commit SHA. Applies to the list fallback. |
sort | string (asc, desc) | no | Sort direction (asc, desc). Applies to the list fallback. |
source | string (api, chat, external, external_pull_request_event, merge_request_event, ondemand_dast_scan, ondemand_dast_validation, parent_pipeline, pipeline, push, schedule, security_orchestration_policy, trigger, web, webide) | no | Filter by pipeline source (api, chat, external, external_pull_request_event, merge_request_event, ondemand_dast_scan, ondemand_dast_validation, parent_pipeline, pipeline, push, schedule, security_orchestration_policy, trigger, web, webide). Applies to the list fallback. |
status | string (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled) | no | Filter by status (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled). Applies to the list fallback. |
updated_after | string | no | Return pipelines updated after date (ISO 8601 format). Applies to the list fallback. |
updated_before | string | no | Return pipelines updated before date (ISO 8601 format). Applies to the list fallback. |
username | string | no | Filter by username that triggered the pipeline. Applies to the list fallback. |
yaml_errors | boolean | no | Return only pipelines with YAML errors. Applies to the list fallback. |
pipeline.list
Section titled “pipeline.list”List project pipelines with filters and pagination. Returns: pipeline IDs, refs, statuses, source, and timing metadata. See also:
pipeline.get,pipeline.latest,job.list_project.
- Meta-tool:
gitlab_pipeline, actionlist - Individual tool:
gitlab_pipeline_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
created_after | string | no | Return pipelines created after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) |
created_before | string | no | Return pipelines created before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) |
name | string | no | Filter by pipeline name |
order_by | string (id, status, ref, updated_at, user_id) | no | Order by field (id, status, ref, updated_at, user_id) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
ref | string | no | Filter by branch or tag name |
scope | string (running, pending, finished, branches, tags) | no | Filter by scope (running, pending, finished, branches, tags) |
sha | string | no | Filter by commit SHA |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
source | string (api, chat, external, external_pull_request_event, merge_request_event, ondemand_dast_scan, ondemand_dast_validation, parent_pipeline, pipeline, push, schedule, security_orchestration_policy, trigger, web, webide) | no | Filter by pipeline source (api, chat, external, external_pull_request_event, merge_request_event, ondemand_dast_scan, ondemand_dast_validation, parent_pipeline, pipeline, push, schedule, security_orchestration_policy, trigger, web, webide) |
status | string (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled) | no | Filter by status (created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled) |
updated_after | string | no | Return pipelines updated after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z) |
updated_before | string | no | Return pipelines updated before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z) |
username | string | no | Filter by username that triggered the pipeline |
yaml_errors | boolean | no | Return only pipelines with YAML errors |
pipeline.resource_group_edit
Section titled “pipeline.resource_group_edit”Update the process mode of one CI resource group by key. Returns: the updated resource group ID, key, new process mode that controls how queued jobs sharing the resource group are serialized, and created and updated times. See also:
pipeline.resource_group_get,pipeline.resource_group_list,pipeline.resource_group_upcoming_jobs.
- Meta-tool:
gitlab_pipeline, actionresource_group_edit - Individual tool:
gitlab_edit_resource_group - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Resource group key |
process_mode | string (unordered, oldest_first, newest_first, newest_ready_first) | yes | Process mode: unordered, oldest_first, newest_first, or newest_ready_first |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.resource_group_get
Section titled “pipeline.resource_group_get”Get one CI resource group in a project by key. Returns: the resource group ID, key, process mode (the concurrency mode that controls how jobs sharing the resource group are serialized), and created and updated times. See also:
pipeline.resource_group_list,pipeline.resource_group_edit,pipeline.resource_group_upcoming_jobs.
- Meta-tool:
gitlab_pipeline, actionresource_group_get - Individual tool:
gitlab_get_resource_group - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Resource group key |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.resource_group_list
Section titled “pipeline.resource_group_list”List the CI resource groups configured for a project. Returns: each resource group’s ID, key, process mode that controls how jobs sharing the group are serialized to limit pipeline concurrency, and created and updated times, with pagination metadata. See also:
pipeline.resource_group_get,pipeline.resource_group_edit,pipeline.resource_group_upcoming_jobs.
- Meta-tool:
gitlab_pipeline, actionresource_group_list - Individual tool:
gitlab_list_resource_groups - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
pipeline.resource_group_upcoming_jobs
Section titled “pipeline.resource_group_upcoming_jobs”List the upcoming CI jobs queued for one resource group by key. Returns: each pending job’s ID, name, status, stage, ref, tag and allow-failure flags, pipeline, web URL, and creation time, ordered as they will run under the resource group’s process mode, with pagination metadata. See also:
pipeline.resource_group_get,pipeline.resource_group_list,job.list.
- Meta-tool:
gitlab_pipeline, actionresource_group_upcoming_jobs - Individual tool:
gitlab_list_resource_group_upcoming_jobs - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Resource group key |
project_id | string/integer | yes | Project ID or URL-encoded path |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
pipeline.retry
Section titled “pipeline.retry”Retry failed and canceled jobs in a pipeline. Returns: updated pipeline metadata after re-queuing jobs. See also:
pipeline.get,pipeline.cancel,job.list_project.
- Meta-tool:
gitlab_pipeline, actionretry - Individual tool:
gitlab_pipeline_retry - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to act on |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.schedule_create
Section titled “pipeline.schedule_create”Create a pipeline schedule. Returns: the created schedule with id, description, ref, cron, owner, and inputs. See also:
pipeline.schedule_get,pipeline.schedule_update,pipeline.schedule_list.
- Meta-tool:
gitlab_pipeline, actionschedule_create - Individual tool:
gitlab_pipeline_schedule_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
cron | string | yes | Cron expression (e.g. 0 1 * * *) |
description | string | yes | Schedule description |
project_id | string/integer | yes | Project ID or URL-encoded path |
ref | string | yes | Branch or tag to run the pipeline on |
active | boolean | no | Whether the schedule is active (default: true) |
cron_timezone | string | no | Cron timezone (e.g. UTC or America/New_York) |
inputs | object[] | no | Pipeline inputs to seed on the schedule. Each entry has name and value |
pipeline.schedule_create_variable
Section titled “pipeline.schedule_create_variable”Create a pipeline schedule variable. Returns: the created variable with key, value, variable_type, and raw. See also:
pipeline.schedule_edit_variable,pipeline.schedule_delete_variable.
- Meta-tool:
gitlab_pipeline, actionschedule_create_variable - Individual tool:
gitlab_pipeline_schedule_create_variable - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Variable key |
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
value | string | yes | Variable value. Required when creating a schedule variable |
variable_type | string (env_var, file) | no | Variable type: env_var (default) or file |
pipeline.schedule_delete
Section titled “pipeline.schedule_delete”Delete a pipeline schedule permanently. Returns: a success confirmation. See also:
pipeline.schedule_get,pipeline.schedule_list.
- Meta-tool:
gitlab_pipeline, actionschedule_delete - Individual tool:
gitlab_pipeline_schedule_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
pipeline.schedule_delete_variable
Section titled “pipeline.schedule_delete_variable”Delete a pipeline schedule variable. Returns: a success confirmation naming the key. See also:
pipeline.schedule_create_variable,pipeline.schedule_edit_variable.
- Meta-tool:
gitlab_pipeline, actionschedule_delete_variable - Individual tool:
gitlab_pipeline_schedule_delete_variable - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Variable key to delete |
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
pipeline.schedule_edit_variable
Section titled “pipeline.schedule_edit_variable”Edit a pipeline schedule variable. Returns: the updated variable with key, value, variable_type, and raw. See also:
pipeline.schedule_create_variable,pipeline.schedule_delete_variable.
- Meta-tool:
gitlab_pipeline, actionschedule_edit_variable - Individual tool:
gitlab_pipeline_schedule_edit_variable - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
key | string | yes | Variable key to edit |
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
value | string | yes | New variable value. Required when editing a schedule variable |
variable_type | string (env_var, file) | no | Variable type: env_var or file |
pipeline.schedule_get
Section titled “pipeline.schedule_get”Get a single pipeline schedule by ID. Returns: the schedule with cron, ref, owner, last_pipeline, variables, and inputs. See also:
pipeline.schedule_list,pipeline.schedule_update,pipeline.schedule_run.
- Meta-tool:
gitlab_pipeline, actionschedule_get - Individual tool:
gitlab_pipeline_schedule_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
pipeline.schedule_list
Section titled “pipeline.schedule_list”List pipeline schedules in a project. Returns: schedules with description, ref, cron, owner, and pagination metadata. See also:
pipeline.schedule_get,pipeline.schedule_create.
- Meta-tool:
gitlab_pipeline, actionschedule_list - Individual tool:
gitlab_pipeline_schedule_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
order_by | string | no | Column to order keyset-paginated results by (e.g. id) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
scope | string (active, inactive) | no | Filter by scope: active or inactive |
sort | string (asc, desc) | no | Sort order for keyset pagination: asc or desc |
pipeline.schedule_list_triggered_pipelines
Section titled “pipeline.schedule_list_triggered_pipelines”List pipelines triggered by a schedule. Returns: triggered pipelines with status, ref, sha, web URL, and pagination metadata. See also:
pipeline.schedule_get,pipeline.schedule_run.
- Meta-tool:
gitlab_pipeline, actionschedule_list_triggered_pipelines - Individual tool:
gitlab_pipeline_schedule_list_triggered_pipelines - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
order_by | string | no | Column to order results by (e.g. id) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction for triggered pipelines: asc or desc (default asc) |
pipeline.schedule_run
Section titled “pipeline.schedule_run”Run a pipeline schedule immediately. Returns: the schedule’s current state after triggering. See also:
pipeline.schedule_get,pipeline.schedule_list_triggered_pipelines.
- Meta-tool:
gitlab_pipeline, actionschedule_run - Individual tool:
gitlab_pipeline_schedule_run - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
pipeline.schedule_take_ownership
Section titled “pipeline.schedule_take_ownership”Take ownership of a pipeline schedule. Returns: the schedule with the caller as owner. See also:
pipeline.schedule_update,pipeline.schedule_run.
- Meta-tool:
gitlab_pipeline, actionschedule_take_ownership - Individual tool:
gitlab_pipeline_schedule_take_ownership - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
pipeline.schedule_update
Section titled “pipeline.schedule_update”Update a pipeline schedule. Returns: the updated schedule with cron, ref, owner, and inputs. See also:
pipeline.schedule_get,pipeline.schedule_take_ownership.
- Meta-tool:
gitlab_pipeline, actionschedule_update - Individual tool:
gitlab_pipeline_schedule_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
schedule_id | integer | yes | Pipeline schedule ID |
active | boolean | no | Enable or disable the schedule |
cron | string | no | Updated cron expression |
cron_timezone | string | no | Updated cron timezone |
description | string | no | Updated description |
inputs | object[] | no | Pipeline inputs to set on the schedule. Each entry has name, value, and optional destroy |
ref | string | no | Updated branch or tag |
pipeline.test_report
Section titled “pipeline.test_report”Get a pipeline’s full test report. Returns: total/passed/failed/skipped counts and per-suite breakdown. See also:
pipeline.test_report_summary,pipeline.get,job.list_project.
- Meta-tool:
gitlab_pipeline, actiontest_report - Individual tool:
gitlab_pipeline_test_report - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to retrieve |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.test_report_summary
Section titled “pipeline.test_report_summary”Get a pipeline’s test report summary. Returns: aggregate test totals and per-suite summaries with build IDs. See also:
pipeline.test_report,pipeline.get,job.list_project.
- Meta-tool:
gitlab_pipeline, actiontest_report_summary - Individual tool:
gitlab_pipeline_test_report_summary - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to retrieve |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.trigger_create
Section titled “pipeline.trigger_create”Create a pipeline trigger token. Returns: the created trigger with id, description, token secret, and owner. See also:
pipeline.trigger_run,pipeline.trigger_list,pipeline.trigger_delete.
- Meta-tool:
gitlab_pipeline, actiontrigger_create - Individual tool:
gitlab_pipeline_trigger_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
description | string | no | Trigger token description |
pipeline.trigger_delete
Section titled “pipeline.trigger_delete”Delete a pipeline trigger token. Returns: a success confirmation. See also:
pipeline.trigger_get,pipeline.trigger_create.
- Meta-tool:
gitlab_pipeline, actiontrigger_delete - Individual tool:
gitlab_pipeline_trigger_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
trigger_id | integer | yes | Pipeline trigger ID |
pipeline.trigger_get
Section titled “pipeline.trigger_get”Get a single pipeline trigger token. Returns: the trigger with id, description, token, owner, and timestamps. See also:
pipeline.trigger_list,pipeline.trigger_update,pipeline.trigger_delete.
- Meta-tool:
gitlab_pipeline, actiontrigger_get - Individual tool:
gitlab_pipeline_trigger_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
trigger_id | integer | yes | Pipeline trigger ID |
pipeline.trigger_list
Section titled “pipeline.trigger_list”List a project’s pipeline trigger tokens. Returns: trigger tokens with id, description, owner, last-used time, and pagination metadata. See also:
pipeline.trigger_get,pipeline.trigger_create,pipeline.trigger_run.
- Meta-tool:
gitlab_pipeline, actiontrigger_list - Individual tool:
gitlab_pipeline_trigger_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
order_by | string | no | Field by which to order results when using keyset pagination (e.g. id). |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort order: asc or desc. Defaults to the API ordering. |
pipeline.trigger_run
Section titled “pipeline.trigger_run”Trigger a pipeline using a trigger token. Returns: the created pipeline with id, status, ref, sha, source, user, detailed_status, and web URL. See also:
pipeline.trigger_list,pipeline.get.
- Meta-tool:
gitlab_pipeline, actiontrigger_run - Individual tool:
gitlab_pipeline_trigger_run - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
inputs | object | no | Map of pipeline input name to value (string, number, boolean, or array of strings) for inputs declared in the pipeline spec. |
ref | string | no | Branch or tag name to run pipeline on |
token | string | no | Pipeline trigger token |
variables | object | no | Map of CI/CD variable name to value injected into the triggered pipeline. |
pipeline.trigger_update
Section titled “pipeline.trigger_update”Update a pipeline trigger token’s description. Returns: the updated trigger with id, description, token, and owner. See also:
pipeline.trigger_get,pipeline.trigger_delete.
- Meta-tool:
gitlab_pipeline, actiontrigger_update - Individual tool:
gitlab_pipeline_trigger_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
trigger_id | integer | yes | Pipeline trigger ID |
description | string | no | New trigger token description |
pipeline.update_metadata
Section titled “pipeline.update_metadata”Update a pipeline’s name. Returns: updated pipeline metadata reflecting the new name. See also:
pipeline.get,pipeline.list,pipeline.create.
- Meta-tool:
gitlab_pipeline, actionupdate_metadata - Individual tool:
gitlab_pipeline_update_metadata - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
name | string | yes | New pipeline name |
pipeline_id | integer | yes | Pipeline ID to update |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.variables
Section titled “pipeline.variables”List a pipeline’s runtime variables. Returns: variable keys, values, types, and whether each value is raw (not expanded). See also:
pipeline.get,pipeline.create,job.list_project.
- Meta-tool:
gitlab_pipeline, actionvariables - Individual tool:
gitlab_pipeline_variables - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID to retrieve |
project_id | string/integer | yes | Project ID or URL-encoded path |
pipeline.wait
Section titled “pipeline.wait”Use only to poll an existing pipeline_id until a terminal status. For merge when pipeline succeeds, use merge_request.merge with auto_merge=true instead.
- Meta-tool:
gitlab_pipeline, actionwait - Individual tool:
gitlab_pipeline_wait - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
pipeline_id | integer | yes | Pipeline ID returned by pipeline.list, pipeline.get, pipeline.latest, or merge_request.pipelines. Do not use merge_request_iid. |
project_id | string/integer | yes | Project ID or URL-encoded path |
fail_on_error | boolean | no | Return isError when pipeline ends in failed/canceled status (default true) |
interval_seconds | integer | no | Polling interval in seconds (5-60, default 10) |
timeout_seconds | integer | no | Maximum wait time in seconds (1-3600, default 300) |