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. A token with read_api and not api is served 16 of the 33.
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. The token lines say what GitLab 19.4.1 requires of a token for the requests each action sends; on an instance with Admin Mode turned on, an action only an administrator may run also needs admin_mode. 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline: Create at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline: Delete at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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 of a ref (the default branch when ref is omitted): the one GitLab ran for the commit at its head, or, when that commit has none on the ref, the newest on the ref (the first under any filters or ordering passed). Returns: full pipeline metadata, plus head_sha and fallback_note when the pipeline ran for an earlier commit. See also:
pipeline.get,pipeline.list,job.list_project.
- Meta-tool:
gitlab_pipeline, actionlatest - Individual tool:
gitlab_pipeline_latest - Tier: Free
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project. Some calls also need: Project: Read at project; Commit: Read at project (permissions page)
- 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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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 whose latest pipeline is requested (defaults to the project’s 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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
- Classic or OAuth token:
api - Fine-grained token: Resource Group: Update at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Resource Group: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Resource Group: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Job: Read, Resource Group: Read at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Create at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Delete at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline Schedule: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline Schedule: Read at project (permissions page)
- 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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read, Pipeline Schedule: Read at project (permissions page)
- 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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Read at project; Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline Schedule: Update at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Trigger: Create at project (permissions page)
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
description | string | yes | Trigger token description |
project_id | string/integer | yes | Project ID or path |
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
- Classic or OAuth token:
api - Fine-grained token: Trigger: Delete at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Trigger: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Trigger: Read at project (permissions page)
- 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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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
- Classic or OAuth token:
read_api(orapi); GitLab authenticates the token this action sends as a parameter and does not judge this one’s scope - Fine-grained token: a request GitLab does not judge by the grant (permissions page)
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
ref | string | yes | Branch or tag name to run pipeline on |
token | string | yes | Pipeline trigger token |
inputs | object | no | Map of pipeline input name to value (string, number, boolean, or array of strings) for inputs declared in the pipeline spec. |
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
- Classic or OAuth token:
api - Fine-grained token: Trigger: Update at project (permissions page)
- 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
- Classic or OAuth token:
api - Fine-grained token: Pipeline: Update at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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
- Classic or OAuth token:
read_api(orapi) - Fine-grained token: Pipeline: Read at project (permissions page)
- 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) |