Red Hat Quay API 指南
前言
Red Hat Quay 应用编程接口(API)是一种 OAuth 2 RESTful API,由一组端点组成,用于添加、显示、更改和删除 Red Hat Quay 的功能。
Red Hat Quay 是由 Semantic Versioning (SemVer)规格 划分的。每个主要、次版本和补丁版本都会满足以下条件:
- Red Hat Quay 的主版本可能包括不兼容的 API 更改。例如,Red Hat Quay 2.0 的 API 与 Red Hat Quay 3.0 不同。
- Red Hat Quay 的次版本(如 3.y)以向后兼容的方式添加功能。
- Red Hat Quay 的补丁版本(如 3.y.z)引入了向后兼容的程序错误修复。
目前,Red Hat Quay 将 api/v1 端点用于 3.y.z 版本。
本指南描述了 api/v1 端点以及用于访问这些端点的基于浏览器的示例。
第 1 章 使用 Red Hat Quay API
Red Hat Quay 提供了完整的 OAuth 2 RESTful API,它:
- 可通过 URL https://<yourquayhost>/api/v1的每个 Red Hat Quay 实例端点提供
- 您可以通过浏览器连接到端点,通过启用 Swagger UI 来获取、删除、发布并放置 Red Hat Quay 设置
- 可以通过发出 API 调用的应用访问并使用 OAuth 令牌
- 以 JSON 格式发送和接收数据
以下文本描述了如何访问 Red Hat Quay API,并使用它来查看和修改 Red Hat Quay 集群中的设置。下一节将列出并描述 API 端点。
1.1. 从 Quay.io 访问 Quay API
如果您还没有运行自己的 Red Hat Quay 集群,您可以从 Web 浏览器浏览 Quay.io 中的 Red Hat Quay API:
https://docs.quay.io/api/swagger/
出现的 API Explorer 显示 Quay.io API 端点。您不会看到 Quay.io 上未启用的 Red Hat Quay 功能的超级用户 API 端点或端点(如存储库镜像)。
在 API Explorer 中,您可以获得并有时变化,以及以下信息:
- 账单、订阅和计划
- 仓库构建和构建触发器
- 错误消息和全局消息
- 仓库镜像、清单、权限、通知、漏洞和镜像签名
- 使用日志
- 机构、成员和 OAuth 应用程序
- 用户和机器人帐户
- 和更多…
选择打开端点,以查看端点的每个部分的 Model Schema。打开端点,输入任何所需的参数(如存储库名称或镜像),然后选择 Try it out! 按钮以查询或更改与 Quay.io 端点关联的设置。
1.2. 创建 OAuth 访问令牌
要创建 OAuth 访问令牌,以便您可以访问机构的 API:
- 登录到 Red Hat Quay 并选择您的机构(或创建新 Quay)。
- 点击左侧导航栏中的 Applications 图标。
- 选择 Create New Application,并在系统提示时为新应用程序指定一个名称。
- 选择新应用。
- 从左侧导航中选择 Generate Token。
- 选择设置令牌范围的复选框,然后选择 Generate Access Token。
- 查看允许的权限,然后选择 Authorize Application 批准它。
- 复制新生成的令牌,以用于访问 API。
1.3. 从 Web 浏览器访问 Quay API
通过启用 Swagger,您可以通过 Web 浏览器访问您自己的 Red Hat Quay 实例的 API。这个 URL 通过 Swagger UI 和这个 URL 来公开 Red Hat Quay API explorer:
https://<yourquayhost>/api/v1/discovery.
访问 API 的方式不包括 Red Hat Quay 安装中提供的超级用户端点。以下是通过运行 swagger-ui 容器镜像访问本地系统中运行的 Red Hat Quay API 接口的示例:
# export SERVER_HOSTNAME=<yourhostname> # sudo podman run -p 8888:8080 -e API_URL=https://$SERVER_HOSTNAME:8443/api/v1/discovery docker.io/swaggerapi/swagger-ui
在运行 swagger-ui 容器的情况下,打开您的 Web 浏览器到 localhost 端口 8888,以通过 swagger-ui 容器查看 API 端点。
如果从浏览器调用,为了避免日志中的错误,如 "API 调用,必须使用 X-Requested-With 标头来调用 。
BROWSER_API_CALLS_XHR_ONLY: false
1.4. 从命令行访问 Red Hat Quay API
您可以使用 curl 命令通过 Red Hat Quay 集群的 API 获取 GET、PUT、POST 或 DELETE 设置。将 <token > 替换为之前创建的 OAuth 访问令牌,以便在以下示例中获取或更改设置。
1.4.1. 获取超级用户信息
$ curl -X GET -H "Authorization: Bearer <token_here>" \
"https://<yourquayhost>/api/v1/superuser/users/"例如:
$ curl -X GET -H "Authorization: Bearer mFCdgS7SAIoMcnTsHCGx23vcNsTgziAa4CmmHIsg" http://quay-server:8080/api/v1/superuser/users/ | jq
{
"users": [
{
"kind": "user",
"name": "quayadmin",
"username": "quayadmin",
"email": "quayadmin@example.com",
"verified": true,
"avatar": {
"name": "quayadmin",
"hash": "357a20e8c56e69d6f9734d23ef9517e8",
"color": "#5254a3",
"kind": "user"
},
"super_user": true,
"enabled": true
}
]
}1.4.2. 使用 API 创建超级用户
配置超级用户名称,如 Deploy Quay 书中所述:
- 使用配置编辑器 UI 或
-
直接编辑
config.yaml文件,使用 配置 API 来验证(并下载)更新的配置捆绑包的选项
为超级用户名称创建用户帐户:
详细获取身份验证令牌,并使用
curl创建用户:$ curl -H "Content-Type: application/json" -H "Authorization: Bearer Fava2kV9C92p1eXnMawBZx9vTqVnksvwNm0ckFKZ" -X POST --data '{ "username": "quaysuper", "email": "quaysuper@example.com" }' http://quay-server:8080/api/v1/superuser/users/ | jq返回的内容包括为新用户帐户生成的密码:
{ "username": "quaysuper", "email": "quaysuper@example.com", "password": "EH67NB3Y6PTBED8H0HC6UVHGGGA3ODSE", "encrypted_password": "fn37AZAUQH0PTsU+vlO9lS0QxPW9A/boXL4ovZjIFtlUPrBz9i4j9UDOqMjuxQ/0HTfy38goKEpG8zYXVeQh3lOFzuOjSvKic2Vq7xdtQsU=" }
现在,当您请求 用户列表时,它将以超级用户的形式显示 quaysuper :
$ curl -X GET -H "Authorization: Bearer mFCdgS7SAIoMcnTsHCGx23vcNsTgziAa4CmmHIsg" http://quay-server:8080/api/v1/superuser/users/ | jq
{
"users": [
{
"kind": "user",
"name": "quayadmin",
"username": "quayadmin",
"email": "quayadmin@example.com",
"verified": true,
"avatar": {
"name": "quayadmin",
"hash": "357a20e8c56e69d6f9734d23ef9517e8",
"color": "#5254a3",
"kind": "user"
},
"super_user": true,
"enabled": true
},
{
"kind": "user",
"name": "quaysuper",
"username": "quaysuper",
"email": "quaysuper@example.com",
"verified": true,
"avatar": {
"name": "quaysuper",
"hash": "c0e0f155afcef68e58a42243b153df08",
"color": "#969696",
"kind": "user"
},
"super_user": true,
"enabled": true
}
]
}1.4.3. 列出用量日志
可以使用一个内部 API /api/v1/superuser/logs 来列出当前系统的使用日志。已分页结果,因此以下示例中创建了 20 多个仓库,以演示如何使用多个调用来访问整个结果集。
1.4.3.1. 分页示例
第一次调用
$ curl -X GET -k -H "Authorization: Bearer qz9NZ2Np1f55CSZ3RVOvxjeUdkzYuCp0pKggABCD" https://example-registry-quay-quay-enterprise.apps.example.com/api/v1/superuser/logs | jq
初始输出
{
"start_time": "Sun, 12 Dec 2021 11:41:55 -0000",
"end_time": "Tue, 14 Dec 2021 11:41:55 -0000",
"logs": [
{
"kind": "create_repo",
"metadata": {
"repo": "t21",
"namespace": "namespace1"
},
"ip": "10.131.0.13",
"datetime": "Mon, 13 Dec 2021 11:41:16 -0000",
"performer": {
"kind": "user",
"name": "user1",
"is_robot": false,
"avatar": {
"name": "user1",
"hash": "5d40b245471708144de9760f2f18113d75aa2488ec82e12435b9de34a6565f73",
"color": "#ad494a",
"kind": "user"
}
},
"namespace": {
"kind": "org",
"name": "namespace1",
"avatar": {
"name": "namespace1",
"hash": "6cf18b5c19217bfc6df0e7d788746ff7e8201a68cba333fca0437e42379b984f",
"color": "#e377c2",
"kind": "org"
}
}
},
{
"kind": "create_repo",
"metadata": {
"repo": "t20",
"namespace": "namespace1"
},
"ip": "10.131.0.13",
"datetime": "Mon, 13 Dec 2021 11:41:05 -0000",
"performer": {
"kind": "user",
"name": "user1",
"is_robot": false,
"avatar": {
"name": "user1",
"hash": "5d40b245471708144de9760f2f18113d75aa2488ec82e12435b9de34a6565f73",
"color": "#ad494a",
"kind": "user"
}
},
"namespace": {
"kind": "org",
"name": "namespace1",
"avatar": {
"name": "namespace1",
"hash": "6cf18b5c19217bfc6df0e7d788746ff7e8201a68cba333fca0437e42379b984f",
"color": "#e377c2",
"kind": "org"
}
}
},
...
{
"kind": "create_repo",
"metadata": {
"repo": "t2",
"namespace": "namespace1"
},
"ip": "10.131.0.13",
"datetime": "Mon, 13 Dec 2021 11:25:17 -0000",
"performer": {
"kind": "user",
"name": "user1",
"is_robot": false,
"avatar": {
"name": "user1",
"hash": "5d40b245471708144de9760f2f18113d75aa2488ec82e12435b9de34a6565f73",
"color": "#ad494a",
"kind": "user"
}
},
"namespace": {
"kind": "org",
"name": "namespace1",
"avatar": {
"name": "namespace1",
"hash": "6cf18b5c19217bfc6df0e7d788746ff7e8201a68cba333fca0437e42379b984f",
"color": "#e377c2",
"kind": "org"
}
}
}
],
"next_page": "gAAAAABhtzGDsH38x7pjWhD8MJq1_2FAgqUw2X9S2LoCLNPH65QJqB4XAU2qAxYb6QqtlcWj9eI6DUiMN_q3e3I0agCvB2VPQ8rY75WeaiUzM3rQlMc4i6ElR78t8oUxVfNp1RMPIRQYYZyXP9h6E8LZZhqTMs0S-SedaQJ3kVFtkxZqJwHVjgt23Ts2DonVoYwtKgI3bCC5"
}
第二个调用使用 next_page
$ curl -X GET -k -H "Authorization: Bearer qz9NZ2Np1f55CSZ3RVOvxjeUdkzYuCp0pKggABCD" https://example-registry-quay-quay-enterprise.apps.example.com/api/v1/superuser/logs?next_page=gAAAAABhtzGDsH38x7pjWhD8MJq1_2FAgqUw2X9S2LoCLNPH65QJqB4XAU2qAxYb6QqtlcWj9eI6DUiMN_q3e3I0agCvB2VPQ8rY75WeaiUzM3rQlMc4i6ElR78t8oUxVfNp1RMPIRQYYZyXP9h6E8LZZhqTMs0S-SedaQJ3kVFtkxZqJwHVjgt23Ts2DonVoYwtKgI3bCC5 | jq
第二个调用的输出
{
"start_time": "Sun, 12 Dec 2021 11:42:46 -0000",
"end_time": "Tue, 14 Dec 2021 11:42:46 -0000",
"logs": [
{
"kind": "create_repo",
"metadata": {
"repo": "t1",
"namespace": "namespace1"
},
"ip": "10.131.0.13",
"datetime": "Mon, 13 Dec 2021 11:25:07 -0000",
"performer": {
"kind": "user",
"name": "user1",
"is_robot": false,
"avatar": {
"name": "user1",
"hash": "5d40b245471708144de9760f2f18113d75aa2488ec82e12435b9de34a6565f73",
"color": "#ad494a",
"kind": "user"
}
},
"namespace": {
"kind": "org",
"name": "namespace1",
"avatar": {
"name": "namespace1",
"hash": "6cf18b5c19217bfc6df0e7d788746ff7e8201a68cba333fca0437e42379b984f",
"color": "#e377c2",
"kind": "org"
}
}
},
...
]
}
1.4.4. 目录同步
要为机构 testadminorg 中的团队 newteam 启用目录同步,在 LDAP 中对应的组名称为 ldapgroup :
$ curl -X POST -H "Authorization: Bearer 9rJYBR3v3pXcj5XqIA2XX6Thkwk4gld4TCYLLWDF" \
-H "Content-type: application/json" \
-d '{"group_dn": "cn=ldapgroup,ou=Users"}' \
http://quay1-server:8080/api/v1/organization/testadminorg/team/newteam/syncing为同一团队禁用同步:
$ curl -X DELETE -H "Authorization: Bearer 9rJYBR3v3pXcj5XqIA2XX6Thkwk4gld4TCYLLWDF" \
http://quay1-server:8080/api/v1/organization/testadminorg/team/newteam/syncing1.4.5. 通过 API 创建存储库构建
要从指定的输入构建存储库并使用自定义标签标记构建,用户可以使用 requestRepoBuild 端点。它采用以下数据:
{
"docker_tags": [
"string"
],
"pull_robot": "string",
"subdirectory": "string",
"archive_url": "string"
}
archive_url 参数应指向 tar 或 zip 存档,其中包含构建的 Dockerfile 和其他必要文件。file_id 参数除了我们旧的构建系统之外。无法再使用。如果 Dockerfile 位于子目录中,也需要指定它。
归档应可以通过公开访问。OAuth 应用应具有"Administer Organization"范围,因为只有机构管理员可以访问机器人的帐户令牌。否则,某人只需向机器人(无访问权限本身)授予构建访问权限即可获得机器人的权限,并使用它来获取镜像内容。如果出现错误,请检查返回 json 块,并确保正确传递存档位置、pull 机器和其他参数。单击各个构建页面右上角的"下载日志",以检查日志以查看更详细的信息。
1.4.6. 创建机构机器
$ curl -X PUT https://quay.io/api/v1/organization/{orgname}/robots/{robot shortname} \
-H 'Authorization: Bearer <token>''1.4.7. 触发构建
$ curl -X POST https://quay.io/api/v1/repository/YOURORGNAME/YOURREPONAME/build/ \ -H 'Authorization: Bearer <token>'
带有请求的 Python
import requests
r = requests.post('https://quay.io/api/v1/repository/example/example/image', headers={'content-type': 'application/json', 'Authorization': 'Bearer <redacted>'}, data={[<request-body-contents>})
print(r.text)1.4.8. 创建私有存储库
$ curl -X POST https://quay.io/api/v1/repository \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-d '{"namespace":"yournamespace", "repository":"yourreponame",
"description":"descriptionofyourrepo", "visibility": "private"}' | jq1.4.9. 创建已镜像的存储库
最小配置
curl -X POST
-H "Authorization: Bearer ${bearer_token}"
-H "Content-Type: application/json"
--data '{"external_reference": "quay.io/minio/mc", "external_registry_username": "", "sync_interval": 600, "sync_start_date": "2021-08-06T11:11:39Z", "root_rule": {"rule_kind": "tag_glob_csv", "rule_value": [ "latest" ]}, "robot_username": "orga+robot"}' https://${quay_registry}/api/v1/repository/${orga}/${repo}/mirror | jq
扩展配置
$ curl -X POST
-H "Authorization: Bearer ${bearer_token}"
-H "Content-Type: application/json"
--data '{"is_enabled": true, "external_reference": "quay.io/minio/mc", "external_registry_username": "username", "external_registry_password": "password", "external_registry_config": {"unsigned_images":true, "verify_tls": false, "proxy": {"http_proxy": "http://proxy.tld", "https_proxy": "https://proxy.tld", "no_proxy": "domain"}}, "sync_interval": 600, "sync_start_date": "2021-08-06T11:11:39Z", "root_rule": {"rule_kind": "tag_glob_csv", "rule_value": [ "*" ]}, "robot_username": "orga+robot"}' https://${quay_registry}/api/v1/repository/${orga}/${repo}/mirror | jq
第 2 章 Red Hat Quay 应用程序编程接口(API)
此 API 允许您执行处理 Red Hat Quay 存储库、用户和组织所需的许多操作。
2.1. 授权
oauth2_implicit
范围
以下范围用于控制对 API 端点的访问:
| 影响范围 | Description |
|---|---|
| repo:read | 此应用可以查看和拉取对授权用户或机器人帐户可见的所有存储库 |
| repo:write | 此应用可以查看、推送和拉取到授予用户或机器人帐户具有写入权限的所有存储库 |
| repo:admin | 此应用将具有对授权用户或机器人帐户具有访问权限的所有存储库的管理员访问权限 |
| repo:create | 此应用将能够在 中创建存储库到允许授权用户或机器人帐户的任何命名空间中创建存储库 |
| user:read | 此应用程序能够读取用户名和电子邮件地址等用户信息。 |
| org:admin | 此应用能够管理您的组织,包括创建机器人、创建团队、调整团队成员资格和更改账单设置。在授予此权限前,您应该对请求的应用程序具有绝对信任。 |
| super:user | 此应用将能够管理您的安装,包括管理用户、管理超级用户面板中找到的组织和其他功能。在授予此权限前,您应该对请求的应用程序具有绝对信任。 |
| user:admin | 此应用能够管理您的帐户,包括创建机器人并授予他们存储库的权限。在授予此权限前,您应该对请求的应用程序具有绝对信任。 |
2.2. appspecifictokens
为当前用户管理应用特定的令牌。
2.2.1. createAppToken
为用户创建新的应用程序特定令牌。
POST /api/v1/user/apptoken
授权: oauth2_implicit (用户:admin)
请求正文模式(application/json)
新令牌的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
friendlyName | 帮助识别令牌的友好名称 | 字符串 |
响应
2.2.2. listAppTokens
列出用户的特定于应用程序的令牌。
GET /api/v1/user/apptoken
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
过期 | 如果为 true,则只会很快返回这些令牌 | 布尔值 |
响应
2.2.3. getAppToken
返回用户的特定应用程序令牌。
GET /api/v1/user/apptoken/{token_uuid}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
token_uuid | 应用程序特定令牌的 uuid | 字符串 |
响应
2.2.4. revokeAppToken
为用户撤销特定的应用令牌。
DELETE /api/v1/user/apptoken/{token_uuid}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
token_uuid | 应用程序特定令牌的 uuid | 字符串 |
响应
2.3. build
创建、列出、取消和获取存储库构建的状态/日志。
2.3.1. getRepoBuildStatus
返回构建 uuid 指定的构建状态。
GET /api/v1/repository/{repository}/build/{build_uuid}/status
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.3.2. getRepoBuildLogs
返回构建 uuid 指定的构建的构建日志。
GET /api/v1/repository/{repository}/build/{build_uuid}/logs
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.3.3. getRepoBuild
返回有关构建的信息。
GET /api/v1/repository/{repository}/build/{build_uuid}
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.3.4. cancelRepoBuild
取消存储库构建。
DELETE /api/v1/repository/{repository}/build/{build_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.3.5. requestRepoBuild
请求构建存储库并从指定的输入推送。
POST /api/v1/repository/{repository}/build/
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
新存储库构建的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
file_id | 构建 spec 被上传时生成的文件 id | 字符串 |
|
archive_url | 要构建的 .tar.gz 的 URL。必须使用 "http" 或 "https" 启动。 | 字符串 |
|
子目录 | 可以在其中找到 Dockerfile 的子目录。您只能指定这个或 dockerfile_path | 字符串 |
|
dockerfile_path | dockerfile 的路径。您只能指定此或子目录。 | 字符串 |
|
上下文 | 传递 dockerfile 的上下文。这是可选的。 | 字符串 |
|
pull_robot | 用作拉取凭证的 Quay 机器人帐户的用户名 | 字符串 |
|
docker_tags | 将推送到构建的镜像的标签。如果未指定,则使用"latest"。 |
字符串数组 |
响应
2.3.6. getRepoBuilds
获取存储库构建列表。
GET /api/v1/repository/{repository}/build/
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
因为 | 返回自给定的 unix 时间码后的所有构建 | 整数 |
| query |
limit | 要返回的最大构建数 | 整数 |
响应
2.4. discovery
API 发现信息.
2.4.1. discovery
列出 swagger API 格式的所有 API 端点。
GET /api/v1/discovery
授权:
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
内部 | 是否包含内部 API。 | 布尔值 |
响应
2.5. 错误
错误详情 API。
2.5.1. getErrorDescription
获取错误的详细描述。
GET /api/v1/error/{error_type}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
error_type | 标识错误类型的错误代码。 | 字符串 |
响应
| HTTP 代码 | 描述 | 模式 |
|---|---|---|
| 200 | 成功调用 | |
| 400 | 错误请求 | |
| 401 | 需要会话 | |
| 403 | 未授权访问 | |
| 404 | 未找到 |
2.6. globalmessages
消息 API。
2.6.1. createGlobalMessage
创建消息。
POST /api/v1/messages
授权: oauth2_implicit (超级用户)
请求正文模式(application/json)
创建新消息
| 名称 | 描述 | 模式 |
|---|---|---|
|
message | 单条信息 | 对象 |
响应
2.6.2. getGlobalMessages
返回超级用户信息。
GET /api/v1/messages
授权:
响应
2.6.3. deleteGlobalMessage
删除消息。
DELETE /api/v1/message/{uuid}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 字符串 |
响应
2.7. logs
访问机构或存储库的使用情况日志。
2.7.1. getAggregateUserLogs
返回当前用户的聚合日志。
GET /api/v1/user/aggregatelogs
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
执行程序 | 过滤日志的用户名。 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.2. exportUserLogs
返回当前用户的聚合日志。
POST /api/v1/user/exportlogs
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
请求正文模式(application/json)
配置导出日志操作
| 名称 | 描述 | 模式 |
|---|---|---|
|
callback_url | 使用导出日志的链接调用的回调 URL | 字符串 |
|
callback_email | 将电子邮件发送到所导出日志的链接的电子邮件地址 | 字符串 |
响应
2.7.3. listUserLogs
列出当前用户的日志。
GET /api/v1/user/logs
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
| query |
执行程序 | 过滤日志的用户名。 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.4. getAggregateOrgLogs
获取指定机构的聚合日志。
GET /api/v1/organization/{orgname}/aggregatelogs
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
执行程序 | 过滤日志的用户名。 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.5. exportOrgLogs
导出指定组织的日志。
POST /api/v1/organization/{orgname}/exportlogs
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
请求正文模式(application/json)
配置导出日志操作
| 名称 | 描述 | 模式 |
|---|---|---|
|
callback_url | 使用导出日志的链接调用的回调 URL | 字符串 |
|
callback_email | 将电子邮件发送到所导出日志的链接的电子邮件地址 | 字符串 |
响应
2.7.6. listOrgLogs
列出指定组织的日志。
GET /api/v1/organization/{orgname}/logs
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
| query |
执行程序 | 过滤日志的用户名。 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.7. getAggregateRepoLogs
返回指定存储库的聚合日志。
GET /api/v1/repository/{repository}/aggregatelogs
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.8. exportRepoLogs
队列指定存储库的日志导出。
POST /api/v1/repository/{repository}/exportlogs
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
请求正文模式(application/json)
配置导出日志操作
| 名称 | 描述 | 模式 |
|---|---|---|
|
callback_url | 使用导出日志的链接调用的回调 URL | 字符串 |
|
callback_email | 将电子邮件发送到所导出日志的链接的电子邮件地址 | 字符串 |
响应
2.7.9. listRepoLogs
列出指定存储库的日志。
GET /api/v1/repository/{repository}/logs
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志最早的时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.8. 清单
管理存储库的清单。
2.8.1. getManifestLabel
使用清单下的特定 ID 检索标签。
GET /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
labelid | 标签 ID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.8.2. deleteManifestLabel
从清单中删除现有标签。
DELETE /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
labelid | 标签 ID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.8.3. addManifestLabel
在标签清单中添加新标签。
POST /api/v1/repository/{repository}/manifest/{manifestref}/labels
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
为清单添加标签
| 名称 | 描述 | 模式 |
|---|---|---|
|
key | 标签的密钥 | 字符串 |
|
value | 标签的值 | 字符串 |
|
media_type | 此标签的介质类型 |
响应
2.8.4. listManifestLabels
GET /api/v1/repository/{repository}/manifest/{manifestref}/labels
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
过滤 | 如果指定,则只返回与给定前缀匹配的标签 | 字符串 |
响应
2.8.5. getRepoManifest
GET /api/v1/repository/{repository}/manifest/{manifestref}
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.9. mirror
2.9.1. syncCancel
更新给定存储库的镜像配置的 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-cancel
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.9.2. syncNow
更新给定存储库的镜像配置的 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-now
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.9.3. getRepoMirrorConfig
返回给定存储库的镜像配置。
GET /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
| HTTP 代码 | 描述 | 模式 |
|---|---|---|
| 200 | 成功调用 | |
| 400 | 错误请求 | |
| 401 | 需要会话 | |
| 403 | 未授权访问 | |
| 404 | 未找到 |
2.9.4. changeRepoMirrorConfig
允许用户修改存储库的镜像配置。
PUT /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更新存储库镜像配置。
| 名称 | 描述 | 模式 |
|---|---|---|
|
is_enabled | 用于启用或禁用同步。 | 布尔值 |
|
external_reference | 外部存储库的位置。 | 字符串 |
|
external_registry_username | 用于与外部 registry 进行身份验证的用户名。 | |
|
external_registry_password | 用于与外部 registry 进行身份验证的密码。 | |
|
sync_start_date | 决定下一次该存储库准备好进行同步的时间。 | 字符串 |
|
sync_interval | next_start_date 开始同步后的秒数。 | 整数 |
|
robot_username | 用于镜像推送的机器用户名。 | 字符串 |
|
root_rule | 用于决定应同步哪些标签的 glob-patterns 列表。 | 对象 |
|
external_registry_config | 对象 |
响应
2.9.5. createRepoMirrorConfig
为给定存储库创建一个 RepoMirrorConfig。
POST /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
创建存储库镜像配置。
| 名称 | 描述 | 模式 |
|---|---|---|
|
is_enabled | 用于启用或禁用同步。 | 布尔值 |
|
external_reference | 外部存储库的位置。 | 字符串 |
|
external_registry_username | 用于与外部 registry 进行身份验证的用户名。 | |
|
external_registry_password | 用于与外部 registry 进行身份验证的密码。 | |
|
sync_start_date | 决定下一次该存储库准备好进行同步的时间。 | 字符串 |
|
sync_interval | next_start_date 开始同步后的秒数。 | 整数 |
|
robot_username | 用于镜像推送的机器用户名。 | 字符串 |
|
root_rule | 用于决定应同步哪些标签的 glob-patterns 列表。 | 对象 |
|
external_registry_config | 对象 |
响应
2.10. namespacequota
2.10.1. listUserQuota
GET /api/v1/user/quota
授权: oauth2_implicit (用户:admin)
响应
2.10.2. getOrganizationQuotaLimit
GET /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.3. changeOrganizationQuotaLimit
PUT /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 | |
| path |
OrgName | 字符串 |
请求正文模式(application/json)
更改机构配额限制的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
type | 配额限制类型: "Warning" 或 "Reject" | 字符串 |
|
threshold_percent | 配额阈值,配额百分比 | 整数 |
响应
2.10.4. deleteOrganizationQuotaLimit
DELETE /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.5. createOrganizationQuotaLimit
POST /api/v1/organization/{orgname}/quota/{quota_id}/limit
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
请求正文模式(application/json)
新机构配额限制的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
type | 配额限制类型: "Warning" 或 "Reject" | 字符串 |
|
threshold_percent | 配额阈值,配额百分比 | 整数 |
响应
2.10.6. listOrganizationQuotaLimit
GET /api/v1/organization/{orgname}/quota/{quota_id}/limit
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.7. getUserQuotaLimit
GET /api/v1/user/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 |
响应
2.10.8. listUserQuotaLimit
GET /api/v1/user/quota/{quota_id}/limit
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 |
响应
2.10.9. getOrganizationQuota
GET /api/v1/organization/{orgname}/quota/{quota_id}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.10. changeOrganizationQuota
PUT /api/v1/organization/{orgname}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.10.11. deleteOrganizationQuota
DELETE /api/v1/organization/{orgname}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.12. createOrganizationQuota
创建新机构配额。
POST /api/v1/organization/{orgname}/quota
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.10.13. listOrganizationQuota
GET /api/v1/organization/{orgname}/quota
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 |
响应
2.10.14. getUserQuota
GET /api/v1/user/quota/{quota_id}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 |
响应
2.11. 机构
管理组织、成员和 OAuth 应用。
2.11.1. createOrganization
创建新组织。
POST /api/v1/organization/
授权: oauth2_implicit (用户:admin)
请求正文模式(application/json)
新组织的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 机构用户名 | 字符串 |
|
email | 机构联系电子邮件 | 字符串 |
|
recaptcha_response | (禁用)recaptcha 响应代码进行验证 | 字符串 |
响应
2.11.2. validateProxyCacheConfig
POST /api/v1/organization/{orgname}/validateproxycache
运行 POST /api/v1/organization/{orgname}/validateproxycache 目前会返回 202 响应有效负载 Valid。这是个已知问题。它应该返回 Successful Creation 响应有效负载。以后的 Red Hat Quay 版本中会解决这个问题。
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 |
请求正文模式(application/json)
机构的代理缓存配置
| 名称 | 描述 | 模式 |
|---|---|---|
|
upstream_registry | 要缓存的上游 registry 的名称 | 字符串 |
响应
2.11.3. getOrganizationCollaborators
列出指定机构的外部协作符。
GET /api/v1/organization/{orgname}/collaborators
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.4. getOrganizationApplication
使用指定组织下的指定 client_id 来检索应用程序。
GET /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.5. updateOrganizationApplication
更新此组织下的应用程序。
PUT /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构的名称 | 字符串 |
请求正文模式(application/json)
更新应用程序的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 应用程序的名称 | 字符串 |
|
redirect_uri | 应用的 OAuth 重定向的 URI | 字符串 |
|
application_uri | 应用程序主页的 URI | 字符串 |
|
description | 应用程序的人类可读描述 | 字符串 |
|
avatar_email | 用于应用程序的布兰的电子邮件地址 | 字符串 |
响应
2.11.6. deleteOrganizationApplication
删除此机构下的应用程序。
DELETE /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.7. createOrganizationApplication
在此组织下创建新应用。
POST /api/v1/organization/{orgname}/applications
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
请求正文模式(application/json)
新组织应用程序的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 应用程序的名称 | 字符串 |
|
redirect_uri | 应用的 OAuth 重定向的 URI | 字符串 |
|
application_uri | 应用程序主页的 URI | 字符串 |
|
description | 应用程序的人类可读描述 | 字符串 |
|
avatar_email | 用于应用程序的布兰的电子邮件地址 | 字符串 |
响应
2.11.8. getOrganizationApplications
列出指定机构的应用程序。
GET /api/v1/organization/{orgname}/applications
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.9. getProxyCacheConfig
检索组织的代理缓存配置。
GET /api/v1/organization/{orgname}/proxycache
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.10. deleteProxyCacheConfig
删除机构的代理缓存配置。
DELETE /api/v1/organization/{orgname}/proxycache
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.11. createProxyCacheConfig
为机构创建代理缓存配置。
POST /api/v1/organization/{orgname}/proxycache
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
请求正文模式(application/json)
机构的代理缓存配置
| 名称 | 描述 | 模式 |
|---|---|---|
|
upstream_registry | 要缓存的上游 registry 的名称 | 字符串 |
响应
2.11.12. getOrganizationMember
检索组织成员的详细信息。
GET /api/v1/organization/{orgname}/members/{membername}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
memberName | 机构成员的用户名 | 字符串 |
响应
2.11.13. removeOrganizationMember
从组织中删除成员,撤销其所有存储库 priviledges,再将它从组织中的所有团队中删除。
DELETE /api/v1/organization/{orgname}/members/{membername}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
memberName | 机构成员的用户名 | 字符串 |
响应
2.11.14. getOrganizationMembers
列出指定机构的人员。
GET /api/v1/organization/{orgname}/members
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.15. getOrganization
获取指定组织的详细信息。
GET /api/v1/organization/{orgname}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.16. changeOrganizationDetails
更改指定机构的详情。
PUT /api/v1/organization/{orgname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
请求正文模式(application/json)
现有机构的更新描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
email | 机构联系电子邮件 | 字符串 |
|
invoice_email | 组织是否希望收到发票的电子邮件 | 布尔值 |
|
invoice_email_address | 要接收发票的电子邮件地址 | |
|
tag_expiration_s | 标签过期的秒数 | 整数 |
响应
2.11.17. deleteAdminedOrganization
删除指定的机构。
DELETE /api/v1/organization/{orgname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.11.18. getApplicationInformation
获取指定应用程序的信息。
GET /api/v1/app/{client_id}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
响应
2.12. 权限
管理存储库权限。
2.12.1. getUserTransitivePermission
获取指定用户的权限。
GET /api/v1/repository/{repository}/permissions/user/{username}/transitive
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
username | 应用权限的用户的用户名 | 字符串 |
响应
2.12.2. getUserPermissions
获取指定用户的权限。
GET /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
username | 权限应用的用户的用户名 | 字符串 |
响应
2.12.3. changeUserPermissions
更新现有存储库的边界。
PUT /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
username | 权限应用的用户的用户名 | 字符串 |
请求正文模式(application/json)
用户权限的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 用户使用的角色 | 字符串 |
响应
2.12.4. deleteUserPermissions
删除用户的权限。
DELETE /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
username | 权限应用的用户的用户名 | 字符串 |
响应
2.12.5. getTeamPermissions
获取指定团队的权限。
GET /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 权限适用的团队名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.6. changeTeamPermissions
更新现有团队权限。
PUT /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 权限适用的团队名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
团队权限描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 团队使用的角色 | 字符串 |
响应
2.12.7. deleteTeamPermissions
删除指定团队的权限。
DELETE /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 权限适用的团队名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.8. listRepoTeamPermissions
列出所有团队权限。
GET /api/v1/repository/{repository}/permissions/team/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.9. listRepoUserPermissions
列出所有用户权限。
GET /api/v1/repository/{repository}/permissions/user/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.13. 原型
管理添加到软件仓库的默认权限。
2.13.1. updateOrganizationPrototypePermission
更新现有权限原型的角色。
PUT /api/v1/organization/{orgname}/prototypes/{prototypeid}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
prototypeid | 原型的 ID | 字符串 |
请求正文模式(application/json)
新原型角色描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应用到权限的角色 | 字符串 |
响应
2.13.2. deleteOrganizationPrototypePermission
删除现有权限原型。
DELETE /api/v1/organization/{orgname}/prototypes/{prototypeid}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
prototypeid | 原型的 ID | 字符串 |
响应
2.13.3. createOrganizationPrototypePermission
创建新权限原型。
POST /api/v1/organization/{orgname}/prototypes
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
请求正文模式(application/json)
新原型描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应用到委派的角色 | 字符串 |
|
activating_user | 创建规则应应用的用户的存储库 | 对象 |
|
delegate | 有关规则授予访问权限的用户或团队信息 | 对象 |
响应
2.13.4. getOrganizationPrototypePermissions
列出此组织的现有原型。
GET /api/v1/organization/{orgname}/prototypes
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
响应
2.14. 软件仓库
列出、创建和管理存储库。
2.14.1. createRepo
创建新存储库。
POST /api/v1/repository
授权: oauth2_implicit (repo:create)
请求正文模式(application/json)
新存储库的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
软件仓库 | 仓库名称 | 字符串 |
|
可见性 | 存储库将从哪个开始 | 字符串 |
|
namespace | 应该在其中创建存储库的命名空间。如果省略,则使用 caller 的用户名 | 字符串 |
|
description | 存储库的标记编码描述 | 字符串 |
|
repo_kind | 仓库的类型 |
响应
2.14.2. listRepos
在各种情况下,获取当前用户可见的存储库列表。
GET /api/v1/repository
授权: oauth2_implicit (存储库:read)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
| query |
repo_kind | 要返回的软件仓库类型 | 字符串 |
| query |
popularity | 是否包含存储库的流行指标。 | 布尔值 |
| query |
last_modified | 是否包括存储库最后一次修改的时间。 | 布尔值 |
| query |
public | 添加 virtue of public 对用户可见的任何仓库 | 布尔值 |
| query |
starred | 过滤返回到用户星形的存储库 | 布尔值 |
| query |
namespace | 过滤返回到这个命名空间的存储库 | 字符串 |
响应
2.14.3. changeRepoVisibility
更改存储库的可见性。
POST /api/v1/repository/{repository}/changevisibility
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的可见性。
| 名称 | 描述 | 模式 |
|---|---|---|
|
可见性 | 存储库将从哪个开始 | 字符串 |
响应
2.14.4. changeRepoState
更改存储库的状态。
PUT /api/v1/repository/{repository}/changestate
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的状态。
| 名称 | 描述 | 模式 |
|---|---|---|
|
state | 确定是否允许推送。 | 字符串 |
响应
2.14.5. getRepo
获取指定存储库。
GET /api/v1/repository/{repository}
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includeTags | 是否包含存储库标签 | 布尔值 |
| query |
includeStats | 是否包括操作统计信息 | 布尔值 |
响应
2.14.6. updateRepo
更新指定存储库中的描述。
PUT /api/v1/repository/{repository}
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
存储库中可更新的字段。
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 存储库的标记编码描述 | 字符串 |
响应
2.14.7. deleteRepository
删除存储库。
DELETE /api/v1/repository/{repository}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.15. repositorynotification
列出、创建和管理存储库事件/通知.
2.15.1. testRepoNotification
为这个存储库队列测试通知。
POST /api/v1/repository/{repository}/notification/{uuid}/test
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 通知的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.15.2. getRepoNotification
获取指定通知的信息。
GET /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 通知的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.15.3. deleteRepoNotification
删除指定的通知。
DELETE /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 通知的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.15.4. resetRepositoryNotificationFailures
将存储库通知重置为 0 个失败。
POST /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 通知的 UUID | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.15.5. createRepoNotification
POST /api/v1/repository/{repository}/notification/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
在仓库中创建通知的信息
| 名称 | 描述 | 模式 |
|---|---|---|
|
event | 通知将响应的事件 | 字符串 |
|
method | 通知方法(如电子邮件或 Web 回调) | 字符串 |
|
config | 特定通知方法的 JSON 配置信息 | 对象 |
|
eventConfig | 特定通知事件的 JSON 配置信息 | 对象 |
|
title | 通知的人类可读标题 | 字符串 |
响应
2.15.6. listRepoNotifications
列出指定存储库的通知。
GET /api/v1/repository/{repository}/notification/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.16. repotoken
管理存储库访问令牌(DEPRECATED)。
2.16.1. getTokens
获取指定的存储库令牌信息。
GET /api/v1/repository/{repository}/tokens/{code}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 代码 | 令牌代码 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.16.2. changeToken
更新指定存储库令牌的权限。
PUT /api/v1/repository/{repository}/tokens/{code}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 代码 | 令牌代码 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
令牌权限描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 用于令牌的角色 | 字符串 |
响应
2.16.3. deleteToken
删除存储库令牌。
DELETE /api/v1/repository/{repository}/tokens/{code}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 代码 | 令牌代码 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.16.4. createToken
创建新存储库令牌。
POST /api/v1/repository/{repository}/tokens/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
新令牌的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
friendlyName | 帮助识别令牌的友好名称 | 字符串 |
响应
2.16.5. listRepoTokens
列出指定存储库的令牌。
GET /api/v1/repository/{repository}/tokens/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.17. 机器人
管理用户和组织机器人帐户。
2.17.1. getUserRobots
列出用户的可用机器。
GET /api/v1/user/robots
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 如果指定,要返回的机器人数。 | 整数 |
| query |
Token | 如果为 false,则机器的令牌不会返回。 | 布尔值 |
| query |
权限 | 是否包括机器人具有权限的存储库和团队。 | 布尔值 |
响应
2.17.2. getOrgRobotPermissions
返回组织的机器机器的存储库权限列表。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.3. regenerateOrgRobotToken
为机构机器机器重新生成令牌。
POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.4. getUserRobotPermissions
返回用户机器机器的存储库权限列表。
GET /api/v1/user/robots/{robot_shortname}/permissions
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.5. regenerateUserRobotToken
为用户的机器重新生成令牌。
POST /api/v1/user/robots/{robot_shortname}/regenerate
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.6. getOrgRobot
使用指定名称返回组织的机器人。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.7. createOrgRobot
在组织中创建一个新机器人。
PUT /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
请求正文模式(application/json)
创建机器的可选数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 机器的可选文本描述 | 字符串 |
|
unstructured_metadata | 机器的可选非结构化元数据 | 对象 |
响应
2.17.8. deleteOrgRobot
删除现有的机构机器机器。
DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.9. getOrgRobots
列出组织的机器人。
GET /api/v1/organization/{orgname}/robots
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 如果指定,要返回的机器人数。 | 整数 |
| query |
Token | 如果为 false,则机器的令牌不会返回。 | 布尔值 |
| query |
权限 | 是否包括机器人具有权限的存储库和团队。 | 布尔值 |
响应
2.17.10. getUserRobot
使用指定名称返回用户机器人。
GET /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.17.11. createUserRobot
使用指定名称创建一个新用户机器。
PUT /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
请求正文模式(application/json)
创建机器的可选数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 机器的可选文本描述 | 字符串 |
|
unstructured_metadata | 机器的可选非结构化元数据 | 对象 |
响应
2.17.12. deleteUserRobot
删除现有的机器机器。
DELETE /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有用户或机构前缀 | 字符串 |
响应
2.18. search
对所有 registry 上下文执行搜索。
2.18.1. conductRepoSearch
获取与指定查询匹配的应用程序和存储库列表。
GET /api/v1/find/repositories
授权:
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includeUsage | 是否包括使用元数据 | 布尔值 |
| query |
Page | 该页面。 | 整数 |
| query |
query | 搜索查询。 | 字符串 |
响应
2.18.2. conductSearch
获取与指定查询匹配的实体和资源列表。
GET /api/v1/find/all
授权: oauth2_implicit (存储库:read)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
query | 搜索查询。 | 字符串 |
响应
2.18.3. getMatchingEntities
获取与指定前缀匹配的实体列表。
GET /api/v1/entities/{prefix}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
prefix | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includeOrgs | 是否包括机构名称。 | 布尔值 |
| query |
includeTeams | 是否包括团队名称。 | 布尔值 |
| query |
namespace | 查询机构实体时要使用的 namespace。 | 字符串 |
响应
2.19. secscan
列出和管理存储库漏洞和其他安全信息。
2.19.1. getRepoManifestSecurity
GET /api/v1/repository/{repository}/manifest/{manifestref}/security
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
manifestref | 清单摘要 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
安全漏洞 | 包括漏洞信息 | 布尔值 |
响应
2.20. 超级用户
超级用户 API.
2.20.1. createInstallUser
创建新用户。
POST /api/v1/superuser/users/
授权: oauth2_implicit (超级用户)
请求正文模式(application/json)
创建用户的数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
username | 所创建的用户的用户名 | 字符串 |
|
email | 正在创建的用户的电子邮件地址 | 字符串 |
响应
2.20.2. listAllUsers
返回系统中所有用户的列表。
GET /api/v1/superuser/users/
授权: oauth2_implicit (超级用户)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
禁用 | 如果为 false,则只有启用的用户才会返回。 | 布尔值 |
响应
2.20.3. listAllLogs
列出当前系统的使用情况日志。
GET /api/v1/superuser/logs
授权: oauth2_implicit (超级用户)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
| query |
Page | 日志页面号 | 整数 |
| query |
ENDTIME | 最新获得日志的时间(%m/%d/%Y %Z) | 字符串 |
| query |
starttime | 最早获得日志的时间(%m/%d/%Y %Z) | 字符串 |
响应
2.20.4. createServiceKey
POST /api/v1/superuser/keys
授权: oauth2_implicit (超级用户)
请求正文模式(application/json)
创建服务密钥的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
service | 服务使用此密钥进行身份验证 | 字符串 |
|
name | 服务密钥的友好名称 | 字符串 |
|
metadata | 这个密钥元数据的键/值对 | 对象 |
|
notes | 如果指定,这个键的额外备注 | 字符串 |
|
过期 | 过期日期作为 unix 时间戳 |
响应
2.20.5. listServiceKeys
GET /api/v1/superuser/keys
授权: oauth2_implicit (超级用户)
响应
2.20.6. changeUserQuotaSuperUser
PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.20.7. deleteUserQuotaSuperUser
DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
响应
2.20.8. createUserQuotaSuperUser
POST /api/v1/superuser/organization/{namespace}/quota
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.20.9. listUserQuotaSuperUser
GET /api/v1/superuser/organization/{namespace}/quota
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
响应
2.20.10. changeOrganizationQuotaSuperUser
PUT /api/v1/superuser/users/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.20.11. deleteOrganizationQuotaSuperUser
DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
响应
2.20.12. createOrganizationQuotaSuperUser
POST /api/v1/superuser/users/{namespace}/quota
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构的字节数 | 整数 |
响应
2.20.13. listOrganizationQuotaSuperUser
GET /api/v1/superuser/users/{namespace}/quota
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
响应
2.20.14. changeOrganization
更新指定用户的信息。
PUT /api/v1/superuser/organizations/{name}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
name | 受管机构的的名称 | 字符串 |
请求正文模式(application/json)
现有机构的更新描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
email | 机构联系电子邮件 | 字符串 |
|
invoice_email | 组织是否希望收到发票的电子邮件 | 布尔值 |
|
invoice_email_address | 要接收发票的电子邮件地址 | |
|
tag_expiration_s | 标签过期的秒数 | 整数 |
响应
2.20.15. deleteOrganization
删除指定的机构。
DELETE /api/v1/superuser/organizations/{name}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
name | 受管机构的的名称 | 字符串 |
响应
2.20.16. approveServiceKey
POST /api/v1/superuser/approvedkeys/{kid}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
请求正文模式(application/json)
批准服务密钥的信息
| 名称 | 描述 | 模式 |
|---|---|---|
|
notes | 可选批准备注 | 字符串 |
响应
2.20.17. getServiceKey
GET /api/v1/superuser/keys/{kid}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
响应
2.20.18. updateServiceKey
PUT /api/v1/superuser/keys/{kid}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
请求正文模式(application/json)
服务密钥更新描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 服务密钥的友好名称 | 字符串 |
|
metadata | 这个密钥元数据的键/值对 | 对象 |
|
过期 | 过期日期作为 unix 时间戳 |
响应
2.20.19. deleteServiceKey
DELETE /api/v1/superuser/keys/{kid}
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
响应
2.20.20. getRepoBuildStatusSuperUser
返回构建 uuid 指定的构建状态。
GET /api/v1/superuser/{build_uuid}/status
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.20.21. getRepoBuildSuperUser
返回有关构建的信息。
GET /api/v1/superuser/{build_uuid}/build
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.20.22. getRepoBuildLogsSuperUser
返回构建 uuid 指定的构建的构建日志。
GET /api/v1/superuser/{build_uuid}/logs
授权: oauth2_implicit (超级用户)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.21. tag
管理存储库的标签。
2.21.1. restoreTag
将存储库标签恢复到存储库中的上一个镜像。
POST /api/v1/repository/{repository}/tag/{tag}/restore
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 标签 | 标签的名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
将标签恢复到特定镜像
| 名称 | 描述 | 模式 |
|---|---|---|
|
manifest_digest | 如果指定,应使用的清单摘要 | 字符串 |
响应
2.21.2. changeTag
更改标签指向或创建新标签的镜像。
PUT /api/v1/repository/{repository}/tag/{tag}
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 标签 | 标签的名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
对特定标签进行更改
| 名称 | 描述 | 模式 |
|---|---|---|
|
manifest_digest | (如果指定)标签应指向的清单摘要 | |
|
过期 | (如果指定)镜像的过期时间 |
响应
2.21.3. deleteFullTag
删除指定的存储库标签。
DELETE /api/v1/repository/{repository}/tag/{tag}
授权: oauth2_implicit (存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
需要 标签 | 标签的名称 | 字符串 |
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.21.4. listRepoTags
GET /api/v1/repository/{repository}/tag/
授权: oauth2_implicit (存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
onlyActiveTags | 过滤到仅活跃的标签。 | 布尔值 |
| query |
Page | 结果的页面索引。默认 1. | 整数 |
| query |
limit | 限制为每个页面返回的结果数量。最大 100 个。 | 整数 |
| query |
specificTag | 将标签过滤到特定的标签。 | 字符串 |
响应
2.22. 团队
创建、列出和管理组织团队。
2.22.1. getOrganizationTeamPermissions
返回机构团队的存储库权限列表。
GET /api/v1/organization/{orgname}/team/{teamname}/permissions
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
响应
2.22.2. updateOrganizationTeamMember
为现有团队添加或邀请成员。
PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
| path |
memberName | 团队成员的用户名 | 字符串 |
响应
2.22.3. deleteOrganizationTeamMember
删除一个团队的成员。
If the user is merely invited to join the team, then the invite is removed instead.
DELETE /api/v1/organization/{orgname}/team/{teamname}/members/{membername}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
| path |
memberName | 团队成员的用户名 | 字符串 |
响应
2.22.4. getOrganizationTeamMembers
检索指定团队的成员列表。
GET /api/v1/organization/{orgname}/team/{teamname}/members
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includePending | 是否包括待处理的成员 | 布尔值 |
响应
2.22.5. inviteTeamMemberEmail
向现有团队邀请电子邮件地址。
PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | 名称 | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 | |
| path |
teamName | 字符串 | |
| path |
email | 字符串 |
响应
2.22.6. deleteTeamMemberEmailInvite
删除邀请电子邮件地址加入团队。
DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | 名称 | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 | |
| path |
teamName | 字符串 | |
| path |
email | 字符串 |
响应
2.22.7. updateOrganizationTeam
为指定团队更新机构范围的权限。
PUT /api/v1/organization/{orgname}/team/{teamname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
请求正文模式(application/json)
团队的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应用于团队的组织广泛权限 | 字符串 |
|
description | 团队的标记描述 | 字符串 |
响应
2.22.8. deleteOrganizationTeam
删除指定的团队。
DELETE /api/v1/organization/{orgname}/team/{teamname}
授权: oauth2_implicit (机构:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构的名称 | 字符串 |
| path |
teamName | 团队的名称 | 字符串 |
响应
2.23. Trigger
创建、列出和管理构建触发器。
2.23.1. activateBuildTrigger
激活指定的构建触发器。
POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/activate
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
请求正文模式(application/json)
| 名称 | 描述 | 模式 |
|---|---|---|
|
config | 任意 json。 | 对象 |
|
pull_robot | 用于拉取镜像的机器人名称。 | 字符串 |
响应
2.23.2. listTriggerRecentBuilds
列出由指定触发器启动的构建。
GET /api/v1/repository/{repository}/trigger/{trigger_uuid}/builds
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 要返回的最大构建数 | 整数 |
响应
2.23.3. manuallyStartBuildTrigger
从指定的触发器手动启动构建。
POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/start
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
请求正文模式(application/json)
激活构建触发器的可选 run 参数
| 名称 | 描述 | 模式 |
|---|---|---|
|
branch_name | (仅为SCM 指定,则要构建的分支的名称。 | 字符串 |
|
commit_sha | (仅自定义)如果指定,则使用 ref/SHA1 签出 git 存储库。 | 字符串 |
|
refs | (仅限SCM 指定,则需要构建 ref。 |
响应
2.23.4. getBuildTrigger
获取指定构建触发器的信息。
GET /api/v1/repository/{repository}/trigger/{trigger_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
响应
2.23.5. updateBuildTrigger
更新指定的构建触发器。
PUT /api/v1/repository/{repository}/trigger/{trigger_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
请求正文模式(application/json)
更新构建触发器的选项
| 名称 | 描述 | 模式 |
|---|---|---|
|
启用 | 是否启用构建触发器 | 布尔值 |
响应
2.23.6. deleteBuildTrigger
删除指定的构建触发器。
DELETE /api/v1/repository/{repository}/trigger/{trigger_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
响应
2.23.7. listBuildTriggers
列出指定存储库的触发器。
GET /api/v1/repository/{repository}/trigger/
授权: oauth2_implicit (repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.24. user
管理当前用户。
2.24.1. createStar
星级存储库。
POST /api/v1/user/starred
授权: oauth2_implicit (存储库:read)
请求正文模式(application/json)
| 名称 | 描述 | 模式 |
|---|---|---|
|
namespace | 仓库所属的命名空间 | 字符串 |
|
软件仓库 | 仓库名称 | 字符串 |
响应
2.24.2. listStarredRepos
列出所有星级存储库。
GET /api/v1/user/starred
授权: oauth2_implicit (用户:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面的页面令牌 | 字符串 |
响应
2.24.3. getLoggedInUser
获取经过身份验证的用户的用户信息。
GET /api/v1/user/
授权: oauth2_implicit (用户:read)
响应
2.24.4. deleteStar
从存储库删除星号。
DELETE /api/v1/user/starred/{repository}
授权: oauth2_implicit (用户:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
2.24.5. getUserInformation
获取指定用户的用户信息。
GET /api/v1/users/{username}
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
username | 字符串 |
响应
2.25. 定义
2.25.1. ApiError
| 名称 | 描述 | 模式 |
|---|---|---|
|
status | 响应的状态代码。 | 整数 |
|
type | 引用错误类型。 | 字符串 |
|
detail | 有关错误的具体实例的详情。 | 字符串 |
|
title | 用于标识错误类型的唯一错误代码。 | 字符串 |
|
error_message | 弃用; 详情别名 | 字符串 |
|
error_type | 弃用; 详情别名 | 字符串 |
2.25.2. UserView
| 名称 | 描述 | 模式 |
|---|---|---|
|
验证的 | 验证用户的电子邮件地址 | 布尔值 |
|
匿名 | 真(如果此用户数据代表一个 guest 用户) | 布尔值 |
|
email | 用户的电子邮件地址 | 字符串 |
|
avatar | 代表用户图标的 Avatar 数据 | 对象 |
|
机构 | 有关用户所属的机构的信息 |
对象数组 |
|
登录 | 用户通过身份验证的外部登录供应商列表 |
对象数组 |
|
can_create_repo | 用户是否有创建软件仓库的权限 | 布尔值 |
|
preferred_namespace | 如果为 true,则用户的命名空间是要显示的首选命名空间 | 布尔值 |
2.25.3. ViewMirrorConfig
| 名称 | 描述 | 模式 |
|---|---|---|
|
is_enabled | 用于启用或禁用同步。 | 布尔值 |
|
external_reference | 外部存储库的位置。 | 字符串 |
|
external_registry_username | 用于与外部 registry 进行身份验证的用户名。 | |
|
external_registry_password | 用于与外部 registry 进行身份验证的密码。 | |
|
sync_start_date | 决定下一次该存储库准备好进行同步的时间。 | 字符串 |
|
sync_interval | next_start_date 开始同步后的秒数。 | 整数 |
|
robot_username | 用于镜像推送的机器用户名。 | 字符串 |
|
root_rule | 用于决定应同步哪些标签的 glob-patterns 列表。 | 对象 |
|
external_registry_config | 对象 |
2.25.4. ApiErrorDescription
| 名称 | 描述 | 模式 |
|---|---|---|
|
type | 对错误类型资源的引用 | 字符串 |
|
title | 错误标题。可用于唯一地标识错误类型。 | 字符串 |
|
description | 有关此问题可能会有所帮助的错误的更详细描述。 | 字符串 |
第 3 章 API 配置示例
3.1. external_registry_config object reference
{
"is_enabled": True,
"external_reference": "quay.io/redhat/quay",
"sync_interval": 5000,
"sync_start_date": datetime(2020, 0o1, 0o2, 6, 30, 0),
"external_registry_username": "fakeUsername",
"external_registry_password": "fakePassword",
"external_registry_config": {
"verify_tls": True,
"unsigned_images": False,
"proxy": {
"http_proxy": "http://insecure.proxy.corp",
"https_proxy": "https://secure.proxy.corp",
"no_proxy": "mylocalhost",
},
},
}3.2. rule_rule 对象引用
{
"root_rule": {"rule_kind": "tag_glob_csv", "rule_value": ["latest", "foo", "bar"]},
}