naftiko: 1.0.0-alpha2 info: label: GitLab API — pipelines description: 'GitLab API — pipelines. 13 operations. Lead operation: Create a new pipeline. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - pipelines created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITLAB_CI_API_KEY: GITLAB_CI_API_KEY capability: consumes: - type: http namespace: gitlab-ci-pipelines baseUri: https://gitlab.com description: GitLab API — pipelines business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-pipeline path: /api/v4/projects/{id}/pipeline operations: - name: postapiv4projectsidpipeline method: POST description: Create a new pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: postApiV4ProjectsIdPipeline in: body type: string required: true - name: api-v4-projects-id-pipelines path: /api/v4/projects/{id}/pipelines operations: - name: getapiv4projectsidpipelines method: GET description: Get all Pipelines of the project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: scope in: query type: string description: The scope of pipelines - name: status in: query type: string description: The status of pipelines - name: ref in: query type: string description: The ref of pipelines - name: sha in: query type: string description: The sha of pipelines - name: yaml_errors in: query type: boolean description: Returns pipelines with invalid configurations - name: username in: query type: string description: The username of the user who triggered pipelines - name: updated_before in: query type: string description: 'Return pipelines updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - name: updated_after in: query type: string description: 'Return pipelines updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - name: created_before in: query type: string description: 'Return pipelines created before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - name: created_after in: query type: string description: 'Return pipelines created after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - name: order_by in: query type: string description: Order pipelines - name: sort in: query type: string description: Sort pipelines - name: source in: query type: string description: The source of pipelines - name: name in: query type: string description: Filter pipelines by name - name: api-v4-projects-id-pipelines-latest path: /api/v4/projects/{id}/pipelines/latest operations: - name: getapiv4projectsidpipelineslatest method: GET description: Gets the latest pipeline for the project branch outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: ref in: query type: string description: Branch ref of pipeline. Uses project default branch if not specified. - name: api-v4-projects-id-pipelines-pipeline_id path: /api/v4/projects/{id}/pipelines/{pipeline_id} operations: - name: getapiv4projectsidpipelinespipelineid method: GET description: Gets a specific pipeline for the project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: deleteapiv4projectsidpipelinespipelineid method: DELETE description: Deletes a pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: api-v4-projects-id-pipelines-pipeline_id-bridges path: /api/v4/projects/{id}/pipelines/{pipeline_id}/bridges operations: - name: getapiv4projectsidpipelinespipelineidbridges method: GET description: Get pipeline bridge jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: scope in: query type: string description: The scope of builds to show - name: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: api-v4-projects-id-pipelines-pipeline_id-cancel path: /api/v4/projects/{id}/pipelines/{pipeline_id}/cancel operations: - name: postapiv4projectsidpipelinespipelineidcancel method: POST description: Cancel all builds in the pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: api-v4-projects-id-pipelines-pipeline_id-jobs path: /api/v4/projects/{id}/pipelines/{pipeline_id}/jobs operations: - name: getapiv4projectsidpipelinespipelineidjobs method: GET description: Get pipeline jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: include_retried in: query type: boolean description: Includes retried jobs - name: scope in: query type: string description: The scope of builds to show - name: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: api-v4-projects-id-pipelines-pipeline_id-metadata path: /api/v4/projects/{id}/pipelines/{pipeline_id}/metadata operations: - name: putapiv4projectsidpipelinespipelineidmetadata method: PUT description: Updates pipeline metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: putApiV4ProjectsIdPipelinesPipelineIdMetadata in: body type: string required: true - name: api-v4-projects-id-pipelines-pipeline_id-retry path: /api/v4/projects/{id}/pipelines/{pipeline_id}/retry operations: - name: postapiv4projectsidpipelinespipelineidretry method: POST description: Retry builds in the pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: api-v4-projects-id-pipelines-pipeline_id-test_report path: /api/v4/projects/{id}/pipelines/{pipeline_id}/test_report operations: - name: getapiv4projectsidpipelinespipelineidtestreport method: GET description: Gets the test report for a given pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: api-v4-projects-id-pipelines-pipeline_id-test_report_summary path: /api/v4/projects/{id}/pipelines/{pipeline_id}/test_report_summary operations: - name: getapiv4projectsidpipelinespipelineidtestreportsummary method: GET description: Gets the test report summary for a given pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true - name: api-v4-projects-id-pipelines-pipeline_id-variables path: /api/v4/projects/{id}/pipelines/{pipeline_id}/variables operations: - name: getapiv4projectsidpipelinespipelineidvariables method: GET description: Gets the variables for a given pipeline outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The project ID or URL-encoded path required: true - name: pipeline_id in: path type: integer description: The pipeline ID required: true exposes: - type: rest namespace: gitlab-ci-pipelines-rest port: 8080 description: REST adapter for GitLab API — pipelines. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/pipeline name: api-v4-projects-id-pipeline description: REST surface for api-v4-projects-id-pipeline. operations: - method: POST name: postapiv4projectsidpipeline description: Create a new pipeline call: gitlab-ci-pipelines.postapiv4projectsidpipeline with: id: rest.id postApiV4ProjectsIdPipeline: rest.postApiV4ProjectsIdPipeline outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines name: api-v4-projects-id-pipelines description: REST surface for api-v4-projects-id-pipelines. operations: - method: GET name: getapiv4projectsidpipelines description: Get all Pipelines of the project call: gitlab-ci-pipelines.getapiv4projectsidpipelines with: id: rest.id page: rest.page per_page: rest.per_page scope: rest.scope status: rest.status ref: rest.ref sha: rest.sha yaml_errors: rest.yaml_errors username: rest.username updated_before: rest.updated_before updated_after: rest.updated_after created_before: rest.created_before created_after: rest.created_after order_by: rest.order_by sort: rest.sort source: rest.source name: rest.name outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/latest name: api-v4-projects-id-pipelines-latest description: REST surface for api-v4-projects-id-pipelines-latest. operations: - method: GET name: getapiv4projectsidpipelineslatest description: Gets the latest pipeline for the project branch call: gitlab-ci-pipelines.getapiv4projectsidpipelineslatest with: id: rest.id ref: rest.ref outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id} name: api-v4-projects-id-pipelines-pipeline-id description: REST surface for api-v4-projects-id-pipelines-pipeline_id. operations: - method: GET name: getapiv4projectsidpipelinespipelineid description: Gets a specific pipeline for the project call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineid with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidpipelinespipelineid description: Deletes a pipeline call: gitlab-ci-pipelines.deleteapiv4projectsidpipelinespipelineid with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/bridges name: api-v4-projects-id-pipelines-pipeline-id-bridges description: REST surface for api-v4-projects-id-pipelines-pipeline_id-bridges. operations: - method: GET name: getapiv4projectsidpipelinespipelineidbridges description: Get pipeline bridge jobs call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidbridges with: id: rest.id pipeline_id: rest.pipeline_id scope: rest.scope page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/cancel name: api-v4-projects-id-pipelines-pipeline-id-cancel description: REST surface for api-v4-projects-id-pipelines-pipeline_id-cancel. operations: - method: POST name: postapiv4projectsidpipelinespipelineidcancel description: Cancel all builds in the pipeline call: gitlab-ci-pipelines.postapiv4projectsidpipelinespipelineidcancel with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/jobs name: api-v4-projects-id-pipelines-pipeline-id-jobs description: REST surface for api-v4-projects-id-pipelines-pipeline_id-jobs. operations: - method: GET name: getapiv4projectsidpipelinespipelineidjobs description: Get pipeline jobs call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidjobs with: id: rest.id pipeline_id: rest.pipeline_id include_retried: rest.include_retried scope: rest.scope page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/metadata name: api-v4-projects-id-pipelines-pipeline-id-metadata description: REST surface for api-v4-projects-id-pipelines-pipeline_id-metadata. operations: - method: PUT name: putapiv4projectsidpipelinespipelineidmetadata description: Updates pipeline metadata call: gitlab-ci-pipelines.putapiv4projectsidpipelinespipelineidmetadata with: id: rest.id pipeline_id: rest.pipeline_id putApiV4ProjectsIdPipelinesPipelineIdMetadata: rest.putApiV4ProjectsIdPipelinesPipelineIdMetadata outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/retry name: api-v4-projects-id-pipelines-pipeline-id-retry description: REST surface for api-v4-projects-id-pipelines-pipeline_id-retry. operations: - method: POST name: postapiv4projectsidpipelinespipelineidretry description: Retry builds in the pipeline call: gitlab-ci-pipelines.postapiv4projectsidpipelinespipelineidretry with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/test-report name: api-v4-projects-id-pipelines-pipeline-id-test-report description: REST surface for api-v4-projects-id-pipelines-pipeline_id-test_report. operations: - method: GET name: getapiv4projectsidpipelinespipelineidtestreport description: Gets the test report for a given pipeline call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidtestreport with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/test-report-summary name: api-v4-projects-id-pipelines-pipeline-id-test-report-summary description: REST surface for api-v4-projects-id-pipelines-pipeline_id-test_report_summary. operations: - method: GET name: getapiv4projectsidpipelinespipelineidtestreportsummary description: Gets the test report summary for a given pipeline call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidtestreportsummary with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pipelines/{pipeline-id}/variables name: api-v4-projects-id-pipelines-pipeline-id-variables description: REST surface for api-v4-projects-id-pipelines-pipeline_id-variables. operations: - method: GET name: getapiv4projectsidpipelinespipelineidvariables description: Gets the variables for a given pipeline call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidvariables with: id: rest.id pipeline_id: rest.pipeline_id outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-pipelines-mcp port: 9090 transport: http description: MCP adapter for GitLab API — pipelines. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-new-pipeline description: Create a new pipeline hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-pipelines.postapiv4projectsidpipeline with: id: tools.id postApiV4ProjectsIdPipeline: tools.postApiV4ProjectsIdPipeline outputParameters: - type: object mapping: $. - name: get-all-pipelines-project description: Get all Pipelines of the project hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelines with: id: tools.id page: tools.page per_page: tools.per_page scope: tools.scope status: tools.status ref: tools.ref sha: tools.sha yaml_errors: tools.yaml_errors username: tools.username updated_before: tools.updated_before updated_after: tools.updated_after created_before: tools.created_before created_after: tools.created_after order_by: tools.order_by sort: tools.sort source: tools.source name: tools.name outputParameters: - type: object mapping: $. - name: gets-latest-pipeline-project-branch description: Gets the latest pipeline for the project branch hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelineslatest with: id: tools.id ref: tools.ref outputParameters: - type: object mapping: $. - name: gets-specific-pipeline-project description: Gets a specific pipeline for the project hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineid with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: deletes-pipeline description: Deletes a pipeline hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-pipelines.deleteapiv4projectsidpipelinespipelineid with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: get-pipeline-bridge-jobs description: Get pipeline bridge jobs hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidbridges with: id: tools.id pipeline_id: tools.pipeline_id scope: tools.scope page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: cancel-all-builds-pipeline description: Cancel all builds in the pipeline hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-pipelines.postapiv4projectsidpipelinespipelineidcancel with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: get-pipeline-jobs description: Get pipeline jobs hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidjobs with: id: tools.id pipeline_id: tools.pipeline_id include_retried: tools.include_retried scope: tools.scope page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: updates-pipeline-metadata description: Updates pipeline metadata hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-pipelines.putapiv4projectsidpipelinespipelineidmetadata with: id: tools.id pipeline_id: tools.pipeline_id putApiV4ProjectsIdPipelinesPipelineIdMetadata: tools.putApiV4ProjectsIdPipelinesPipelineIdMetadata outputParameters: - type: object mapping: $. - name: retry-builds-pipeline description: Retry builds in the pipeline hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-pipelines.postapiv4projectsidpipelinespipelineidretry with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: gets-test-report-given-pipeline description: Gets the test report for a given pipeline hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidtestreport with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: gets-test-report-summary-given description: Gets the test report summary for a given pipeline hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidtestreportsummary with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $. - name: gets-variables-given-pipeline description: Gets the variables for a given pipeline hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-pipelines.getapiv4projectsidpipelinespipelineidvariables with: id: tools.id pipeline_id: tools.pipeline_id outputParameters: - type: object mapping: $.