Ir al contenido

Atestaciones de compilación

Las atestaciones de compilación registran cómo se construyó un artefacto: GitLab las guarda por proyecto como procedencia SLSA, indexadas por el digest del artefacto que describen. attestation.list encuentra las atestaciones de un digest y attestation.download descarga una de ellas por su IID.

GitLab sirve las dos rutas solo donde la feature flag slsa_provenance_statement está activada para el proyecto, y la flag viene desactivada, así que en una instancia donde nadie la activó cada proyecto responde 404 sea cual sea el digest o el IID. attestation.list lee ese 404 en un proyecto que existe como la API no disponible y lo dice, nombrando la flag y admin.feature_set como la forma en que un administrador la activa, en lugar de responder con una lista vacía.

  • “¿Qué atestaciones tiene el proyecto 42 para este digest sha256?”
  • “Descarga la atestación 3 del proyecto 42”
  • Dinámica, la superficie predeterminada: llama a gitlab_execute_action con action igual al ID de la acción, como attestation.download, y sus parámetros en params. gitlab_find_action encuentra un ID a partir de una descripción de la tarea.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): llama a gitlab_attestation con action igual al nombre de la acción, como download, y sus parámetros en params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): llama a la herramienta propia de la acción, como gitlab_download_attestation, pasándole directamente sus parámetros.

Cuántas de estas acciones sirve una instancia en cada nivel, de un total de 2:

  • Free: 0
  • Premium: 0
  • Ultimate: 2

Acciones de solo lectura: 2 de 2, las que conserva un despliegue en modo de solo lectura.

La descripción de cada acción, y la de cada uno de sus parámetros, es el texto que sirve el servidor para ella en la superficie predeterminada, citado tal cual; por eso está en inglés.

AcciónIndividual
attestation.downloadgitlab_download_attestation
attestation.listgitlab_list_attestations

Download the raw in-toto attestation bundle for one attestation by IID (Ultimate). Returns: the attestation_iid, the bundle size in bytes, and the base64-encoded content_base64 bundle payload. See also: attestation.list, package.list, project.get.

  • Meta-herramienta: gitlab_attestation, acción download
  • Herramienta individual: gitlab_download_attestation
  • Nivel: Ultimate
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
attestation_iidintegersíAttestation IID (project-scoped)
project_idstring/integersíProject ID or URL-encoded path

List SLSA build provenance attestations for a project artifact by subject digest (Ultimate). Returns: each attestation’s id, iid, project_id, build_id, status, predicate_kind, predicate_type, subject_digest, download_url, and created/updated/expire timestamps, with pagination metadata. See also: attestation.download, package.list, project.get.

  • Meta-herramienta: gitlab_attestation, acción list
  • Herramienta individual: gitlab_list_attestations
  • Nivel: Ultimate
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
subject_digeststringsíHex-encoded SHA-256 digest of the attested artifact: its 64 hex characters, in either case. An OCI-style sha256: prefix is accepted and removed and the hex is lowered before the request
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.