跳到正文

构建附件 ​

附加到制品的日志、报告和其他文件,以及它们的历史记录。

本组中的操作及其访问规则、重试规则、参数和响应。每个请求都需携带密钥: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

字段类型必需规则
revisioninteger是0–2147483647
items数组(object)是最多 32 项
items[].namestring是1–240 个字符
items[].kindstring是取值之一:manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)是—
items[].descriptionstring是最多 512 个字符
actorstring是可以为 null
createdAtstring (date-time)是可以为 null

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
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)

字段类型必需规则
expectedRevisioninteger是0–2147483646
items数组(object)是最多 32 项
items[].namestring是1–240 个字符
items[].kindstring是取值之一:manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)是—
items[].descriptionstring是最多 512 个字符

响应 200

字段类型必需规则
revisioninteger是0–2147483647
items数组(object)是最多 32 项
items[].namestring是1–240 个字符
items[].kindstring是取值之一:manifest, sbom, signature, report, file
items[].artifactIdstring (uuid)是—
items[].descriptionstring是最多 512 个字符
actorstring是可以为 null
createdAtstring (date-time)是可以为 null

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

示例

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":[]}'

列出构建的附件历史 ​

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[].revisioninteger是0–2147483647
items[].items数组(object)是最多 32 项
items[].items[].namestring是1–240 个字符
items[].items[].kindstring是取值之一:manifest, sbom, signature, report, file
items[].items[].artifactIdstring (uuid)是—
items[].items[].descriptionstring是最多 512 个字符
items[].actorstring是可以为 null
items[].createdAtstring (date-time)是可以为 null
nextinteger是1–2147483647; 可以为 null

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

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

Arkvory · ProAnimaStudio