Вложения сборки
Журналы, отчёты и другие файлы, прикреплённые к артефакту, с их историей.
Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: 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"