6.11. 使用 Red Hat Quay API 管理存储库权限
可以使用 Red Hat Quay API 管理存储库权限。例如,您可以创建、查看和删除用户和团队权限。
以下流程演示了如何使用 Red Hat Quay API 管理存储库权限。
6.11.1. 使用 Red Hat Quay API 管理用户权限 复制链接链接已复制到粘贴板!
使用以下步骤使用 Red Hat Quay API 管理用户权限。
步骤
使用
GET /api/v1/repository/{repository}/permissions/user/{username}端点为用户获取存储库权限。例如:$ curl -X GET \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>"输出示例
$ {"role": "read", "name": "testuser", "is_robot": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "is_org_member": false}所有用户权限都可以使用
GET /api/v1/repository/{repository}/permissions/user/端点返回:$ curl -X GET \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/user/"输出示例
{"permissions": {"quayadmin": {"role": "admin", "name": "quayadmin", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "is_org_member": true}, "test+example": {"role": "admin", "name": "test+example", "is_robot": true, "avatar": {"name": "test+example", "hash": "3b03050c26e900500437beee4f7f2a5855ca7e7c5eab4623a023ee613565a60e", "color": "#a1d99b", "kind": "robot"}, "is_org_member": true}}}另外,您可以使用
GET /api/v1/repository/{repository}/permissions/user/{username}/transitive端点来仅返回用户的存储库权限:$ curl -X GET \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>/transitive"输出示例
{"permissions": [{"role": "admin"}]}您可以更改用户的权限,如使用
PUT /api/v1/repository/{repository}/permissions/user/{username}端点使用户成为admin。例如:$ curl -X PUT \ -H "Authorization: Bearer <access_token>" \ -H "Content-Type: application/json" \ -d '{"role": "<role>"}' \ "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>"输出示例
{"role": "admin", "name": "testuser", "is_robot": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "is_org_member": false}可以使用
DELETE /api/v1/repository/{repository}/permissions/user/{username}端点删除用户权限。例如:$ curl -X DELETE \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/user/<username>"此命令不返回输出。
6.11.2. 使用 Red Hat Quay API 管理团队权限 复制链接链接已复制到粘贴板!
使用以下步骤使用 Red Hat Quay API 管理团队权限。
可以使用
GET /api/v1/repository/{repository}/permissions/team/{teamname}端点返回指定团队的权限:$ curl -X GET \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"输出示例
{"role": "write"}所有团队的权限都可以使用
GET /api/v1/repository/{repository}/permissions/team/端点返回。例如:$ curl -X GET \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/"输出示例
{"permissions": {"ironmanteam": {"role": "read", "name": "ironmanteam", "avatar": {"name": "ironmanteam", "hash": "8045b2361613622183e87f33a7bfc54e100a41bca41094abb64320df29ef458d", "color": "#969696", "kind": "team"}}, "sillyteam": {"role": "read", "name": "sillyteam", "avatar": {"name": "sillyteam", "hash": "f275d39bdee2766d2404e2c6dbff28fe290969242e9fcf1ffb2cde36b83448ff", "color": "#17becf", "kind": "team"}}}}可以使用
PUT /api/v1/repository/{repository}/permissions/team/{teamname}命令更改指定团队的权限。例如:$ curl -X PUT \ -H "Authorization: Bearer <access_token>" \ -H "Content-Type: application/json" \ -d '{"role": "<role>"}' \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"输出示例
{"role": "admin", "name": "superteam", "avatar": {"name": "superteam", "hash": "48cb6d114200039fed5c601480653ae7371d5a8849521d4c3bf2418ea013fc0f", "color": "#9467bd", "kind": "team"}}可以使用
DELETE /api/v1/repository/{repository}/permissions/team/{teamname}命令删除团队权限。例如:$ curl -X DELETE \ -H "Authorization: Bearer <access_token>" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"此命令不会在 CLI 中返回输出。