6.13. 使用 Red Hat Quay API 创建和配置软件仓库
可以使用 Red Hat Quay API 创建、检索、修改和删除存储库。
6.13.1. 使用 Red Hat Quay API 创建和配置软件仓库 复制链接链接已复制到粘贴板!
可以使用 Red Hat Quay API 创建、检索、修改和删除存储库。
步骤
输入以下命令使用
POST /api/v1/repository端点创建存储库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}{"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
GET /api/v1/repository端点列出存储库。例如:curl -X GET \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
$ curl -X GET \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}{"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过
POST /api/v1/repository/{repository}/changevisibility端点,可以将可见性从公共改为私有:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"success": true}{"success": true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以检查 Red Hat Quay UI,或者您可以输入以下
GET /api/v1/repository/{repository}命令来返回有关存储库的详情:curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}{"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 存储库描述可以使用
PUT /api/v1/repository/{repository}端点更新:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"success": true}{"success": true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令使用
DELETE /api/v1/repository/{repository}端点删除存储库:curl -X DELETE -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不会在 CLI 中返回输出。
6.13.2. 使用 API 创建通知 复制链接链接已复制到粘贴板!
使用以下步骤添加通知。
先决条件
- 您已创建了软件仓库。
 - 有存储库的管理特权。
 - 您已创建了 OAuth 访问令牌。
 
步骤
输入以下
POST /api/v1/repository/{repository}/notification命令在存储库上创建通知:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不会在 CLI 中返回输出。相反,您可以输入以下
GET /api/v1/repository/{repository}/notification/{uuid}命令来获取有关存储库通知的信息:{"uuid": "240662ea-597b-499d-98bb-2b57e73408d6", "title": null, "event": "repo_push", "method": "quay_notification", "config": {"target": {"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, "event_config": {}, "number_of_failures": 0}{"uuid": "240662ea-597b-499d-98bb-2b57e73408d6", "title": null, "event": "repo_push", "method": "quay_notification", "config": {"target": {"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, "event_config": {}, "number_of_failures": 0}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过输入以下
POST /api/v1/repository/{repository}/notification/{uuid}/test命令来测试存储库通知:curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/test
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{}{}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过输入以下
POST /api/v1/repository/{repository}/notification/{uuid}命令重置存储库通知失败:curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下
DELETE /api/v1/repository/{repository}/notification/{uuid}命令来删除存储库通知:curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>
$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不会在 CLI 中返回输出。相反,您可以输入以下
GET /api/v1/repository/{repository}/notification/命令来检索所有通知的列表:curl -X GET -H "Authorization: Bearer <bearer_token>" -H "Accept: application/json" https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification
$ curl -X GET -H "Authorization: Bearer <bearer_token>" -H "Accept: application/json" https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notificationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"notifications": []}{"notifications": []}Copy to Clipboard Copied! Toggle word wrap Toggle overflow