GitLab CI/CD · Capability

GitLab API — job_artifacts

GitLab API — job_artifacts. 8 operations. Lead operation: Download the artifacts archive from a job. Self-contained Naftiko capability covering one Gitlab Ci business surface.

Run with Naftiko Gitlab Cijob_artifacts

What You Can Do

DELETE
Deleteapiv4projectsidartifacts — Expire the artifacts files from a project
/v1/api/v4/projects/{id}/artifacts
GET
Getapiv4projectsidjobsartifactsrefnamedownload — Download the artifacts archive from a job
/v1/api/v4/projects/{id}/jobs/artifacts/{ref-name}/download
GET
Getapiv4projectsidjobsartifactsrefnamerawartifactpath — Download a specific file from artifacts archive from a ref
/v1/api/v4/projects/{id}/jobs/artifacts/{ref-name}/raw/artifact-path
GET
Getapiv4projectsidjobsjobidartifacts — Download the artifacts archive from a job
/v1/api/v4/projects/{id}/jobs/{job-id}/artifacts
DELETE
Deleteapiv4projectsidjobsjobidartifacts — Delete the artifacts files from a job
/v1/api/v4/projects/{id}/jobs/{job-id}/artifacts
GET
Getapiv4projectsidjobsjobidartifactsartifactpath — Download a specific file from artifacts archive
/v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/artifact-path
POST
Postapiv4projectsidjobsjobidartifactskeep — Keep the artifacts to prevent them from being deleted
/v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/keep
GET
Getapiv4projectsidjobsjobidartifactstree — List all files in the artifacts archive
/v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/tree

MCP Tools

expire-artifacts-files-project

Expire the artifacts files from a project

idempotent
download-artifacts-archive-job

Download the artifacts archive from a job

read-only idempotent
download-specific-file-artifacts-archive

Download a specific file from artifacts archive from a ref

read-only idempotent
download-artifacts-archive-job-2

Download the artifacts archive from a job

read-only idempotent
delete-artifacts-files-job

Delete the artifacts files from a job

idempotent
download-specific-file-artifacts-archive-2

Download a specific file from artifacts archive

read-only idempotent
keep-artifacts-prevent-them-being

Keep the artifacts to prevent them from being deleted

list-all-files-artifacts-archive

List all files in the artifacts archive

read-only idempotent

Capability Spec

gitlab-ci-job-artifacts.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: GitLab API — job_artifacts
  description: 'GitLab API — job_artifacts. 8 operations. Lead operation: Download the artifacts archive from a job. Self-contained
    Naftiko capability covering one Gitlab Ci business surface.'
  tags:
  - Gitlab Ci
  - job_artifacts
  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-job-artifacts
    baseUri: https://gitlab.com
    description: GitLab API — job_artifacts business capability. Self-contained, no shared references.
    resources:
    - name: api-v4-projects-id-artifacts
      path: /api/v4/projects/{id}/artifacts
      operations:
      - name: deleteapiv4projectsidartifacts
        method: DELETE
        description: Expire the artifacts files from a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
    - name: api-v4-projects-id-jobs-artifacts-ref_name-download
      path: /api/v4/projects/{id}/jobs/artifacts/{ref_name}/download
      operations:
      - name: getapiv4projectsidjobsartifactsrefnamedownload
        method: GET
        description: Download the artifacts archive from a job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: ref_name
          in: path
          type: string
          description: Branch or tag name in repository. `HEAD` or `SHA` references are not supported.
          required: true
        - name: job
          in: query
          type: string
          description: The name of the job.
          required: true
        - name: job_token
          in: query
          type: string
          description: To be used with triggers for multi-project pipelines, available only on Premium and Ultimate tiers.
        - name: search_recent_successful_pipelines
          in: query
          type: boolean
          description: Search across recent successful pipelines instead of just the latest one.
    - name: api-v4-projects-id-jobs-artifacts-ref_name-raw-*artifact_path
      path: /api/v4/projects/{id}/jobs/artifacts/{ref_name}/raw/*artifact_path
      operations:
      - name: getapiv4projectsidjobsartifactsrefnamerawartifactpath
        method: GET
        description: Download a specific file from artifacts archive from a ref
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: ref_name
          in: path
          type: string
          description: Branch or tag name in repository. `HEAD` or `SHA` references are not supported.
          required: true
        - name: job
          in: query
          type: string
          description: The name of the job.
          required: true
        - name: artifact_path
          in: query
          type: string
          description: Path to a file inside the artifacts archive.
          required: true
        - name: job_token
          in: query
          type: string
          description: To be used with triggers for multi-project pipelines, available only on Premium and Ultimate tiers.
        - name: search_recent_successful_pipelines
          in: query
          type: boolean
          description: Search across recent successful pipelines instead of just the latest one.
    - name: api-v4-projects-id-jobs-job_id-artifacts
      path: /api/v4/projects/{id}/jobs/{job_id}/artifacts
      operations:
      - name: getapiv4projectsidjobsjobidartifacts
        method: GET
        description: Download the artifacts archive from a job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: job_id
          in: path
          type: integer
          description: The ID of a job
          required: true
        - name: job_token
          in: query
          type: string
          description: To be used with triggers for multi-project pipelines, available only on Premium and Ultimate tiers.
      - name: deleteapiv4projectsidjobsjobidartifacts
        method: DELETE
        description: Delete the artifacts files from a job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: job_id
          in: path
          type: integer
          description: The ID of a job
          required: true
    - name: api-v4-projects-id-jobs-job_id-artifacts-*artifact_path
      path: /api/v4/projects/{id}/jobs/{job_id}/artifacts/*artifact_path
      operations:
      - name: getapiv4projectsidjobsjobidartifactsartifactpath
        method: GET
        description: Download a specific file from artifacts archive
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: job_id
          in: path
          type: integer
          description: The ID of a job
          required: true
        - name: artifact_path
          in: query
          type: string
          description: Path to a file inside the artifacts archive.
          required: true
        - name: job_token
          in: query
          type: string
          description: To be used with triggers for multi-project pipelines, available only on Premium and Ultimate tiers.
    - name: api-v4-projects-id-jobs-job_id-artifacts-keep
      path: /api/v4/projects/{id}/jobs/{job_id}/artifacts/keep
      operations:
      - name: postapiv4projectsidjobsjobidartifactskeep
        method: POST
        description: Keep the artifacts to prevent them from being deleted
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: job_id
          in: path
          type: integer
          description: The ID of a job
          required: true
    - name: api-v4-projects-id-jobs-job_id-artifacts-tree
      path: /api/v4/projects/{id}/jobs/{job_id}/artifacts/tree
      operations:
      - name: getapiv4projectsidjobsjobidartifactstree
        method: GET
        description: List all files in the artifacts archive
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: job_id
          in: path
          type: integer
          description: ID of a job
          required: true
        - name: path
          in: query
          type: string
          description: Path to browse in the artifacts archive. Defaults to root directory.
        - name: recursive
          in: query
          type: boolean
          description: If `true`, return all entries recursively.
        - name: job_token
          in: query
          type: string
          description: CI/CD job token for multi-project pipelines. Premium and Ultimate only.
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
  exposes:
  - type: rest
    namespace: gitlab-ci-job-artifacts-rest
    port: 8080
    description: REST adapter for GitLab API — job_artifacts. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/v4/projects/{id}/artifacts
      name: api-v4-projects-id-artifacts
      description: REST surface for api-v4-projects-id-artifacts.
      operations:
      - method: DELETE
        name: deleteapiv4projectsidartifacts
        description: Expire the artifacts files from a project
        call: gitlab-ci-job-artifacts.deleteapiv4projectsidartifacts
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/artifacts/{ref-name}/download
      name: api-v4-projects-id-jobs-artifacts-ref-name-download
      description: REST surface for api-v4-projects-id-jobs-artifacts-ref_name-download.
      operations:
      - method: GET
        name: getapiv4projectsidjobsartifactsrefnamedownload
        description: Download the artifacts archive from a job
        call: gitlab-ci-job-artifacts.getapiv4projectsidjobsartifactsrefnamedownload
        with:
          id: rest.id
          ref_name: rest.ref_name
          job: rest.job
          job_token: rest.job_token
          search_recent_successful_pipelines: rest.search_recent_successful_pipelines
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/artifacts/{ref-name}/raw/artifact-path
      name: api-v4-projects-id-jobs-artifacts-ref-name-raw-artifact-path
      description: REST surface for api-v4-projects-id-jobs-artifacts-ref_name-raw-*artifact_path.
      operations:
      - method: GET
        name: getapiv4projectsidjobsartifactsrefnamerawartifactpath
        description: Download a specific file from artifacts archive from a ref
        call: gitlab-ci-job-artifacts.getapiv4projectsidjobsartifactsrefnamerawartifactpath
        with:
          id: rest.id
          ref_name: rest.ref_name
          job: rest.job
          artifact_path: rest.artifact_path
          job_token: rest.job_token
          search_recent_successful_pipelines: rest.search_recent_successful_pipelines
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/{job-id}/artifacts
      name: api-v4-projects-id-jobs-job-id-artifacts
      description: REST surface for api-v4-projects-id-jobs-job_id-artifacts.
      operations:
      - method: GET
        name: getapiv4projectsidjobsjobidartifacts
        description: Download the artifacts archive from a job
        call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifacts
        with:
          id: rest.id
          job_id: rest.job_id
          job_token: rest.job_token
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteapiv4projectsidjobsjobidartifacts
        description: Delete the artifacts files from a job
        call: gitlab-ci-job-artifacts.deleteapiv4projectsidjobsjobidartifacts
        with:
          id: rest.id
          job_id: rest.job_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/artifact-path
      name: api-v4-projects-id-jobs-job-id-artifacts-artifact-path
      description: REST surface for api-v4-projects-id-jobs-job_id-artifacts-*artifact_path.
      operations:
      - method: GET
        name: getapiv4projectsidjobsjobidartifactsartifactpath
        description: Download a specific file from artifacts archive
        call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifactsartifactpath
        with:
          id: rest.id
          job_id: rest.job_id
          artifact_path: rest.artifact_path
          job_token: rest.job_token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/keep
      name: api-v4-projects-id-jobs-job-id-artifacts-keep
      description: REST surface for api-v4-projects-id-jobs-job_id-artifacts-keep.
      operations:
      - method: POST
        name: postapiv4projectsidjobsjobidartifactskeep
        description: Keep the artifacts to prevent them from being deleted
        call: gitlab-ci-job-artifacts.postapiv4projectsidjobsjobidartifactskeep
        with:
          id: rest.id
          job_id: rest.job_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/jobs/{job-id}/artifacts/tree
      name: api-v4-projects-id-jobs-job-id-artifacts-tree
      description: REST surface for api-v4-projects-id-jobs-job_id-artifacts-tree.
      operations:
      - method: GET
        name: getapiv4projectsidjobsjobidartifactstree
        description: List all files in the artifacts archive
        call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifactstree
        with:
          id: rest.id
          job_id: rest.job_id
          path: rest.path
          recursive: rest.recursive
          job_token: rest.job_token
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: gitlab-ci-job-artifacts-mcp
    port: 9090
    transport: http
    description: MCP adapter for GitLab API — job_artifacts. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: expire-artifacts-files-project
      description: Expire the artifacts files from a project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: gitlab-ci-job-artifacts.deleteapiv4projectsidartifacts
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: download-artifacts-archive-job
      description: Download the artifacts archive from a job
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gitlab-ci-job-artifacts.getapiv4projectsidjobsartifactsrefnamedownload
      with:
        id: tools.id
        ref_name: tools.ref_name
        job: tools.job
        job_token: tools.job_token
        search_recent_successful_pipelines: tools.search_recent_successful_pipelines
      outputParameters:
      - type: object
        mapping: $.
    - name: download-specific-file-artifacts-archive
      description: Download a specific file from artifacts archive from a ref
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gitlab-ci-job-artifacts.getapiv4projectsidjobsartifactsrefnamerawartifactpath
      with:
        id: tools.id
        ref_name: tools.ref_name
        job: tools.job
        artifact_path: tools.artifact_path
        job_token: tools.job_token
        search_recent_successful_pipelines: tools.search_recent_successful_pipelines
      outputParameters:
      - type: object
        mapping: $.
    - name: download-artifacts-archive-job-2
      description: Download the artifacts archive from a job
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifacts
      with:
        id: tools.id
        job_id: tools.job_id
        job_token: tools.job_token
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-artifacts-files-job
      description: Delete the artifacts files from a job
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: gitlab-ci-job-artifacts.deleteapiv4projectsidjobsjobidartifacts
      with:
        id: tools.id
        job_id: tools.job_id
      outputParameters:
      - type: object
        mapping: $.
    - name: download-specific-file-artifacts-archive-2
      description: Download a specific file from artifacts archive
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifactsartifactpath
      with:
        id: tools.id
        job_id: tools.job_id
        artifact_path: tools.artifact_path
        job_token: tools.job_token
      outputParameters:
      - type: object
        mapping: $.
    - name: keep-artifacts-prevent-them-being
      description: Keep the artifacts to prevent them from being deleted
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gitlab-ci-job-artifacts.postapiv4projectsidjobsjobidartifactskeep
      with:
        id: tools.id
        job_id: tools.job_id
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-files-artifacts-archive
      description: List all files in the artifacts archive
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gitlab-ci-job-artifacts.getapiv4projectsidjobsjobidartifactstree
      with:
        id: tools.id
        job_id: tools.job_id
        path: tools.path
        recursive: tools.recursive
        job_token: tools.job_token
        page: tools.page
        per_page: tools.per_page
      outputParameters:
      - type: object
        mapping: $.