Pular para o conteúdo

Anexos de build ​

Logs, relatórios e outros arquivos anexados a um artefato, com o histórico deles.

Operações deste grupo com a regra de acesso, a regra de repetição, os parâmetros e as respostas. Toda solicitação leva uma chave: Authorization: Bearer <chave> (consulte “Autenticação”).

Operações ​

Obter os anexos de um build ​

GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments

Acesso: Permissão no repositório: annotation.read; chaves em arquivo: read · Repetição: Pode ser repetida com segurança (leitura)

Retorna a revisão atual dos anexos de um artefato: até 32 entradas, cada uma indicando outro artefato publicado do repositório com um name, um kind (manifest, sbom, signature, report, file) e uma description, além do ator e da hora da alteração. A revisão 0 sem itens significa que nada nunca foi anexado. Baixe um arquivo anexado pelo seu artifactId.

Parâmetros

NomeLocalTipoObrigatórioRegras
repositorycaminhostringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
idcaminhostring (uuid)sim—

Resposta 200

CampoTipoObrigatórioRegras
revisionintegersim0–2147483647
itemsarray de objectsimaté 32 itens
items[].namestringsim1–240 caracteres
items[].kindstringsimum destes: manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)sim—
items[].descriptionstringsimaté 512 caracteres
actorstringsimpode ser null
createdAtstring (date-time)simpode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Substituir os anexos de um build ​

PUT /api/v1/repositories/{repository}/artifacts/{id}/attachments

Acesso: Permissão no repositório: annotation.write, artifact.read; chaves em arquivo: read, write · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Substitui a lista inteira de anexos de um artefato (até 32 entradas; uma lista vazia remove todos) e retorna a nova revisão. Cada destino deve ser outro artefato já publicado no mesmo repositório (envie-o primeiro), os nomes são únicos sem distinção entre maiúsculas e minúsculas e as descrições têm até 512 caracteres. expectedRevision deve ser a revisão atual (0 para a primeira lista); caso contrário, 409 revision_mismatch; os artefatos citados em qualquer revisão continuam protegidos contra exclusão.

Parâmetros

NomeLocalTipoObrigatórioRegras
repositorycaminhostringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
idcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim0–2147483646
itemsarray de objectsimaté 32 itens
items[].namestringsim1–240 caracteres
items[].kindstringsimum destes: manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)sim—
items[].descriptionstringsimaté 512 caracteres

Resposta 200

CampoTipoObrigatórioRegras
revisionintegersim0–2147483647
itemsarray de objectsimaté 32 itens
items[].namestringsim1–240 caracteres
items[].kindstringsimum destes: manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)sim—
items[].descriptionstringsimaté 512 caracteres
actorstringsimpode ser null
createdAtstring (date-time)simpode ser null

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"items":[]}'

Listar o histórico de anexos de um build ​

GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments/history

Acesso: Permissão no repositório: annotation.read; chaves em arquivo: read · Repetição: Pode ser repetida com segurança (leitura)

Retorna as revisões de anexos anteriores e a atual de um artefato, da mais nova para a mais antiga, 20 por página, cada uma com suas entradas, ator e hora; continue com before definido como next. Os artefatos anexados de todas as revisões continuam disponíveis para download, porque estão protegidos contra exclusão.

Parâmetros

NomeLocalTipoObrigatórioRegras
repositorycaminhostringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
idcaminhostring (uuid)sim—
beforeconsultaintegernão1–2147483647

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 20 itens
items[].revisionintegersim0–2147483647
items[].itemsarray de objectsimaté 32 itens
items[].items[].namestringsim1–240 caracteres
items[].items[].kindstringsimum destes: manifest, sbom, signature, report, file
items[].items[].artifactIdstring (uuid)sim—
items[].items[].descriptionstringsimaté 512 caracteres
items[].actorstringsimpode ser null
items[].createdAtstring (date-time)simpode ser null
nextintegersim1–2147483647; pode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments/history" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Arkvory · ProAnimaStudio