6.14. 使用 Red Hat Quay API 创建和配置机器人帐户
可以使用 Red Hat Quay API 为机构和用户创建、检索、更改和删除机器人帐户。
6.14.1. 使用 Red Hat Quay API 创建机器人帐户
使用以下步骤使用 Red Hat Quay API 创建机器人帐户。
先决条件
- 您已创建了 OAuth 访问令牌。
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。
流程
输入以下命令,使用
PUT /api/v1/organization/{orgname}/robots/{robot_shortname}
端点为机构创建新的机器人帐户:$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_name>"
输出示例
{"name": "orgname+robot-name", "created": "Fri, 10 May 2024 15:11:00 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
输入以下命令为当前用户创建一个新的机器人帐户,其
PUT /api/v1/user/robots/{robot_shortname}
端点:$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/user/robots/<robot_name>"
输出示例
{"name": "quayadmin+robot-name", "created": "Fri, 10 May 2024 15:24:57 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
6.14.2. 使用 Red Hat Quay API 获取机器人帐户信息
可以使用 Red Hat Quay API 为组织和用户获取机器人帐户信息,如权限。
先决条件
- 您已创建了 OAuth 访问令牌。
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。
流程
使用
GET /api/v1/organization/{orgname}/robots/{robot_shortname}
API 端点返回机构机器人的信息:curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>"
输出示例
{"name": "test+example", "created": "Mon, 25 Nov 2024 16:25:16 -0000", "last_accessed": null, "description": "", "token": "BILZ6YTVAZAKOGMD9270OKN3SOD9KPB7OLKEJQOJE38NBBRUJTIH7T5859DJL31Q", "unstructured_metadata": {}}
使用
GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions
端点返回特定机构机器人的权限列表:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>/permissions"
输出示例
{"permissions": [{"repository": {"name": "testrepo", "is_public": true}, "role": "admin"}]}
使用
GET /api/v1/user/robots/{robot_shortname}
API 端点返回具有指定名称的机器人:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "https://quay-server.example.com/api/v1/user/robots/<ROBOT_SHORTNAME>"
输出示例
{"name": "quayadmin+mirror_robot", "created": "Wed, 15 Jan 2025 17:22:09 -0000", "last_accessed": null, "description": "", "token": "QBFYWIWZOS1I0P0R9N1JRNP1UZAOPUIR3EB4ASPZKK9IA1SFC12LTEF7OJHB05Z8", "unstructured_metadata": {}}
使用
GET /api/v1/user/robots/{robot_shortname}/permissions
API 端点返回用户机器人的权限列表:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "https://quay-server.example.com/api/v1/user/robots/<ROBOT_SHORTNAME>/permissions"
输出示例
{"permissions": [{"repository": {"name": "busybox", "is_public": false}, "role": "write"}]}
6.14.3. 使用 Red Hat Quay API 删除机器人帐户
使用以下步骤使用 Red Hat Quay API 删除机器人帐户。
先决条件
- 您已创建了 OAuth 访问令牌。
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。
流程
输入以下命令,使用
DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}
端点删除机构的机器人帐户:curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_shortname>"
在使用 API 删除机器人帐户时,CLI 不会返回信息。要确认删除操作,您可以检查 Red Hat Quay UI,或者您可以输入以下
GET /api/v1/organization/{orgname}/robots
命令,以查看是否为机器人帐户返回详情:$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
输出示例
{"robots": []}
输入以下命令,使用
DELETE /api/v1/user/robots/{robot_shortname}
端点删除当前用户的机器人帐户:$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
在使用 API 删除当前用户的机器人帐户时,CLI 不会返回信息。要确认删除操作,您可以检查 Red Hat Quay UI,或者您可以输入以下
GET /api/v1/user/robots/{robot_shortname}
命令,以查看是否为机器人帐户返回详情:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
输出示例
{"message":"Could not find robot with specified username"}