빌드 첨부 파일
아티팩트에 첨부된 로그, 보고서, 기타 파일과 그 기록.
이 그룹의 작업과 각 작업의 액세스 규칙, 재시도 규칙, 매개 변수, 응답입니다. 모든 요청에는 키가 포함됩니다: Authorization: Bearer <키>(“인증” 참조).
작업
빌드의 첨부 파일 조회
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments
액세스: 리포지토리 권한: annotation.read; 파일 키: read · 재시도: 반복해도 안전함(읽기)
아티팩트의 현재 첨부 파일 리비전을 반환합니다. 항목은 최대 32개이며, 각 항목은 같은 리포지토리의 다른 게시된 아티팩트를 name, kind(manifest, sbom, signature, report, file), description과 함께 가리키고, 변경한 행위자와 시각도 포함합니다. 항목이 없는 리비전 0은 첨부된 적이 없다는 뜻입니다. 첨부된 파일은 그 artifactId로 다운로드합니다.
매개 변수
| 이름 | 위치 | 형식 | 필수 | 규칙 |
|---|---|---|---|---|
repository | 경로 | string | 예 | ^[a-z0-9][a-z0-9_-]{0,63}$ 패턴과 일치 |
id | 경로 | string (uuid) | 예 | — |
응답 200
| 필드 | 형식 | 필수 | 규칙 |
|---|---|---|---|
revision | integer | 예 | 0–2147483647 |
items | object 배열 | 예 | 요소 32개 이하 |
items[].name | string | 예 | 1–240자 |
items[].kind | string | 예 | manifest, sbom, signature, report, file 중 하나 |
items[].artifactId | string (uuid) | 예 | — |
items[].description | string | 예 | 512자 이하 |
actor | string | 예 | null일 수 있음 |
createdAt | string (date-time) | 예 | null일 수 있음 |
응답: 200, 400, 401, 403, 404, 409, 422, 503, 507
예제
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments" \
-H "Authorization: Bearer $ARKVORY_TOKEN"빌드의 첨부 파일 교체
PUT /api/v1/repositories/{repository}/artifacts/{id}/attachments
액세스: 리포지토리 권한: annotation.write, artifact.read; 파일 키: read, write · 재시도: 예상 리비전으로만 반복(compare-and-swap)
아티팩트의 첨부 파일 목록 전체를 교체하고(최대 32개, 빈 목록이면 모두 제거) 새 리비전을 반환합니다. 각 대상은 같은 리포지토리에 이미 게시된 다른 아티팩트여야 하며(먼저 업로드합니다), 이름은 대소문자를 구분하지 않고 고유해야 하고, 설명은 512자까지 허용됩니다. expectedRevision은 현재 리비전(첫 목록이면 0)이어야 하며 그렇지 않으면 409 revision_mismatch입니다. 어느 리비전에든 이름이 올라 있는 아티팩트는 삭제로부터 계속 보호됩니다.
매개 변수
| 이름 | 위치 | 형식 | 필수 | 규칙 |
|---|---|---|---|---|
repository | 경로 | string | 예 | ^[a-z0-9][a-z0-9_-]{0,63}$ 패턴과 일치 |
id | 경로 | string (uuid) | 예 | — |
요청 본문 (application/json)
| 필드 | 형식 | 필수 | 규칙 |
|---|---|---|---|
expectedRevision | integer | 예 | 0–2147483646 |
items | object 배열 | 예 | 요소 32개 이하 |
items[].name | string | 예 | 1–240자 |
items[].kind | string | 예 | manifest, sbom, signature, report, file 중 하나 |
items[].artifactId | string (uuid) | 예 | — |
items[].description | string | 예 | 512자 이하 |
응답 200
| 필드 | 형식 | 필수 | 규칙 |
|---|---|---|---|
revision | integer | 예 | 0–2147483647 |
items | object 배열 | 예 | 요소 32개 이하 |
items[].name | string | 예 | 1–240자 |
items[].kind | string | 예 | manifest, sbom, signature, report, file 중 하나 |
items[].artifactId | string (uuid) | 예 | — |
items[].description | string | 예 | 512자 이하 |
actor | string | 예 | null일 수 있음 |
createdAt | string (date-time) | 예 | null일 수 있음 |
응답: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
예제
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":[]}'빌드의 첨부 파일 기록 목록
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments/history
액세스: 리포지토리 권한: annotation.read; 파일 키: read · 재시도: 반복해도 안전함(읽기)
아티팩트의 이전 및 현재 첨부 파일 리비전을 최신순으로 페이지당 20개 반환하며, 각 항목에 항목 목록, 행위자, 시각이 있고 before에 next 값을 넣어 이어서 조회합니다. 모든 리비전의 첨부된 아티팩트는 삭제로부터 보호되므로 계속 다운로드할 수 있습니다.
매개 변수
| 이름 | 위치 | 형식 | 필수 | 규칙 |
|---|---|---|---|---|
repository | 경로 | string | 예 | ^[a-z0-9][a-z0-9_-]{0,63}$ 패턴과 일치 |
id | 경로 | string (uuid) | 예 | — |
before | 쿼리 | integer | 아니요 | 1–2147483647 |
응답 200
| 필드 | 형식 | 필수 | 규칙 |
|---|---|---|---|
items | object 배열 | 예 | 요소 20개 이하 |
items[].revision | integer | 예 | 0–2147483647 |
items[].items | object 배열 | 예 | 요소 32개 이하 |
items[].items[].name | string | 예 | 1–240자 |
items[].items[].kind | string | 예 | manifest, sbom, signature, report, file 중 하나 |
items[].items[].artifactId | string (uuid) | 예 | — |
items[].items[].description | string | 예 | 512자 이하 |
items[].actor | string | 예 | null일 수 있음 |
items[].createdAt | string (date-time) | 예 | null일 수 있음 |
next | integer | 예 | 1–2147483647; null일 수 있음 |
응답: 200, 400, 401, 403, 404, 409, 422, 503, 507
예제
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments/history" \
-H "Authorization: Bearer $ARKVORY_TOKEN"