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 为 3.y.z 发行版本使用 api/v1 端点。
本指南描述了 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/
显示 Quay.io API 端点的 API Explorer。您将无法看到在 Quay.io 上未启用的 Red Hat Quay 功能的超级用户 API 端点或端点(如存储库镜像)。
从 API Explorer,您可以获得并有时会更改以下信息:
- 账单、订阅和计划
- 存储库构建和构建触发器
- 错误消息和全局信息
- 仓库镜像、清单、权限、通知、漏洞和镜像签名
- 使用日志
- 机构、成员和 OAuth 应用程序
- 用户和机器人帐户
- and more…
选择打开端点来查看端点的每一个部分的 Model Schema。打开端点,输入所有必要的参数(如存储库名称或镜像),然后选择 尝试退出! 按钮来查询或更改与 Quay.io 端点关联的设置。
1.2. 创建 OAuth 访问令牌
要创建 OAuth 访问令牌,以便您可以访问机构的 API:
- 登录 Red Hat Quay 并选择您的机构(或创建一个新的机构)。
- 点击左侧导航栏中的 Applications 图标。
- 选择 Create New Application 并在出现提示时为新应用程序提供名称。
- 选择新应用。
- 从左侧导航中选择 Generate Token。
- 选择设置令牌范围的复选框,然后选择 Generate Access Token。
- 查看允许并选择授权应用程序的权限来批准它。
- 复制新生成的令牌,以用于访问 API。
1.3. 从网页浏览器访问 Quay API
通过启用 Swagger,您可以通过网页浏览器访问您自己的 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 标头来调用,"如果从浏览器中调用,请将下面这一行添加到集群中的所有节点上的 config.yaml 中,再重启 Red Hat Quay:
BROWSER_API_CALLS_XHR_ONLY: false
1.4. 从命令行访问 Red Hat Quay API
您可以通过 Red Hat Quay 集群的 API,使用 curl 命令 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 book 所述:
- 使用配置编辑器 UI 或者
-
直接使用配置 API 来验证(并下载)更新的配置捆绑包,直接编辑
config.yaml文件
为超级用户名称创建用户帐户:
获取授权令牌(如上所述),并使用
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 参数应指向包含 Dockerfile 和其他构建所需文件的 tar 或 zip 存档。file_id 参数是我们较旧的构建系统外。它无法再使用。如果 Dockerfile 位于子目录中,也需要指定它。
该存档应公开访问。OAuth 应用应具有 "Administer Organization" 范围,因为只有机构管理员可以访问机器人的帐户令牌。否则,某人可以通过简单地授予构建对机器人(没有访问权限本身)来获取机器人权限,并使用它来获取镜像内容。如果出现错误,请检查 json 块返回的,并确保归档位置、拉取机器机器和其他参数正确传递。点单个构建页面右上角的"下载日志"检查日志以了解更详细的消息。
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 Application Programming Interface(API)
此 API 允许您执行处理 Red Hat Quay 存储库、用户和组织所需的许多操作。
2.1. 授权
oauth2_implicit
范围
以下范围用于控制对 API 端点的访问:
| 影响范围 | 描述 |
|---|---|
| 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
Authorizations: oauth2_implicit(user:admin)
请求正文模式(application/json)
新令牌的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
friendlyName | 帮助识别令牌的友好名称 | 字符串 |
响应
2.2.2. listAppTokens
列出用户的应用特定令牌。
GET /api/v1/user/apptoken
Authorizations: oauth2_implicit(user:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
过期 | 如果为 true,则只会很快返回这些令牌 | 布尔值 |
响应
2.2.3. getAppToken
为该用户返回特定的应用令牌。
GET /api/v1/user/apptoken/{token_uuid}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
token_uuid | 应用程序特定令牌的 uuid | 字符串 |
响应
2.2.4. revokeAppToken
为用户撤销特定的应用令牌。
DELETE /api/v1/user/apptoken/{token_uuid}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
token_uuid | 应用程序特定令牌的 uuid | 字符串 |
响应
2.3. build
创建、列出、取消并获取存储库构建的状态/日志。
2.3.1. getRepoBuildStatus
返回构建 uuids 指定的构建的状态。
GET /api/v1/repository/{repository}/build/{build_uuid}/status
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.3.2. getRepoBuildLogs
返回构建 uuid 指定构建的构建日志。
GET /api/v1/repository/{repository}/build/{build_uuid}/logs
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.3.3. getRepoBuild
返回有关构建的信息。
GET /api/v1/repository/{repository}/build/{build_uuid}
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.3.4. cancelRepoBuild
取消存储库构建。
DELETE /api/v1/repository/{repository}/build/{build_uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.3.5. requestRepoBuild
请求从指定的输入来构建和推送存储库。
POST /api/v1/repository/{repository}/build/
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
新存储库构建的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
file_id | 构建 spec 上传时生成的文件 id | 字符串 |
|
archive_url | 要构建的 .tar.gz 的 URL。必须以 "http" 或 "https" 开始。 | 字符串 |
|
子目录 | Dockerfile 可在其中找到 Dockerfile 的子目录。您只能指定这个或 dockerfile_path | 字符串 |
|
dockerfile_path | 到 dockerfile 的路径。您只能指定这个或子目录。 | 字符串 |
|
上下文 | 传递 dockerfile 的上下文。这是可选的。 | 字符串 |
|
pull_robot | 用作拉取凭证的 Quay 机器人帐户的用户名 | 字符串 |
|
docker_tags | 构建镜像要推送到的标签。如果没有指定,则使用"latest"。 |
字符串数组 |
响应
2.3.6. getRepoBuilds
获取存储库构建列表。
GET /api/v1/repository/{repository}/build/
Authorizations: 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
Authorizations: oauth2_implicit(super:user)
请求正文模式(application/json)
创建新信息
| 名称 | 描述 | 模式 |
|---|---|---|
|
message | 单个消息 | 对象 |
响应
2.6.2. getGlobalMessages
返回超级用户信息。
GET /api/v1/messages
授权:
响应
2.6.3. deleteGlobalMessage
删除消息。
DELETE /api/v1/message/{uuid}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
UUID | 字符串 |
响应
2.7. logs
访问机构或存储库的使用情况日志。
2.7.1. getAggregateUserLogs
返回当前用户的聚合日志。
GET /api/v1/user/aggregatelogs
Authorizations: oauth2_implicit(user:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
执行程序 | 过滤日志的用户名。 | 字符串 |
| query |
ENDTIME | 日志的最新时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
| query |
starttime | 日志的早期时间。格式: UTC 中的"%m/%d/%Y" | 字符串 |
响应
2.7.2. exportUserLogs
返回当前用户的聚合日志。
POST /api/v1/user/exportlogs
Authorizations: oauth2_implicit(user: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
Authorizations: oauth2_implicit(user: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
Authorizations: oauth2_implicit(org: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
Authorizations: oauth2_implicit(org: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
Authorizations: oauth2_implicit(org: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
Authorizations: 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
Authorizations: 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
Authorizations: 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}
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
| path |
labelid | 标签的 ID | 字符串 |
响应
2.8.2. deleteManifestLabel
从清单中删除现有标签。
DELETE /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
| path |
labelid | 标签的 ID | 字符串 |
响应
2.8.3. addManifestLabel
将新标签添加到标签清单中。
POST /api/v1/repository/{repository}/manifest/{manifestref}/labels
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
请求正文模式(application/json)
为清单添加标签
| 名称 | 描述 | 模式 |
|---|---|---|
|
key | 标签的密钥 | 字符串 |
|
value | 标签的值 | 字符串 |
|
media_type | 此标签的介质类型 |
响应
2.8.4. listManifestLabels
GET /api/v1/repository/{repository}/manifest/{manifestref}/labels
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
过滤 | 如果指定,则仅返回与给定前缀匹配的标签 | 字符串 |
响应
2.8.5. getRepoManifest
GET /api/v1/repository/{repository}/manifest/{manifestref}
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
响应
2.9. mirror
2.9.1. syncCancel
为给定存储库的镜像配置更新 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-cancel
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.9.2. syncNow
为给定存储库的镜像配置更新 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-now
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.9.3. getRepoMirrorConfig
返回给定存储库的 Mirror 配置。
GET /api/v1/repository/{repository}/mirror
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
| HTTP 代码 | 描述 | 模式 |
|---|---|---|
| 200 | 成功调用 | |
| 400 | 错误请求 | |
| 401 | 必需的会话 | |
| 403 | 未授权访问 | |
| 404 | 未找到 |
2.9.4. changeRepoMirrorConfig
允许用户修改存储库的镜像配置。
PUT /api/v1/repository/{repository}/mirror
Authorizations: 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
Authorizations: 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
Authorizations: oauth2_implicit(user: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}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | 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}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.5. createOrganizationQuotaLimit
POST /api/v1/organization/{orgname}/quota/{quota_id}/limit
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | 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}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
limit_id | 字符串 |
响应
2.10.8. listUserQuotaLimit
GET /api/v1/user/quota/{quota_id}/limit
Authorizations: oauth2_implicit(user: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}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构允许的字节数 | 整数 |
响应
2.10.11. deleteOrganizationQuota
DELETE /api/v1/organization/{orgname}/quota/{quota_id}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.10.12. createOrganizationQuota
创建新机构配额。
POST /api/v1/organization/{orgname}/quota
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | 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}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
quota_id | 字符串 |
响应
2.11. 机构
管理组织、成员和 OAuth 应用程序。
2.11.1. createOrganization
创建新机构。
POST /api/v1/organization/
Authorizations: oauth2_implicit(user:admin)
请求正文模式(application/json)
新组织的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 机构用户名 | 字符串 |
|
email | 机构联系电子邮件 | 字符串 |
|
recaptcha_response | (may be disabled)recaptcha 响应代码进行验证 | 字符串 |
响应
2.11.2. validateProxyCacheConfig
POST /api/v1/organization/{orgname}/validateproxycache
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 字符串 |
请求正文模式(application/json)
机构的代理缓存配置
| 名称 | 描述 | 模式 |
|---|---|---|
|
upstream_registry | 要缓存的上游 registry 的名称 | 字符串 |
响应
2.11.3. getOrganizationCollaborators
列出指定机构外协作器。
GET /api/v1/organization/{orgname}/collaborators
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
响应
2.11.4. getOrganizationApplication
使用指定的 client_id 在指定的机构下检索应用程序。
GET /api/v1/organization/{orgname}/applications/{client_id}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.11.5. updateOrganizationApplication
更新此机构下的应用程序。
PUT /api/v1/organization/{orgname}/applications/{client_id}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
更新应用程序的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 应用程序的名称 | 字符串 |
|
redirect_uri | 应用程序的 OAuth 重定向的 URI | 字符串 |
|
application_uri | 应用程序主页的 URI | 字符串 |
|
description | 应用程序的人类可读描述 | 字符串 |
|
avatar_email | 用于应用程序的 avatar 的电子邮件地址 | 字符串 |
响应
2.11.6. deleteOrganizationApplication
删除此机构下的应用程序。
DELETE /api/v1/organization/{orgname}/applications/{client_id}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
client_id | OAuth 客户端 ID | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.11.7. createOrganizationApplication
在此组织下创建新应用。
POST /api/v1/organization/{orgname}/applications
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新机构应用程序的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 应用程序的名称 | 字符串 |
|
redirect_uri | 应用程序的 OAuth 重定向的 URI | 字符串 |
|
application_uri | 应用程序主页的 URI | 字符串 |
|
description | 应用程序的人类可读描述 | 字符串 |
|
avatar_email | 用于应用程序的 avatar 的电子邮件地址 | 字符串 |
响应
2.11.8. getOrganizationApplications
列出指定机构的应用程序。
GET /api/v1/organization/{orgname}/applications
Authorizations: oauth2_implicit(org: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}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
memberName | 机构成员的用户名 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.11.13. removeOrganizationMember
从组织中删除成员,撤销其所有存储库功能,并从机构中的所有团队中删除它。
DELETE /api/v1/organization/{orgname}/members/{membername}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
memberName | 机构成员的用户名 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.11.14. getOrganizationMembers
列出指定机构的人类。
GET /api/v1/organization/{orgname}/members
Authorizations: oauth2_implicit(org: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}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
现有机构的更新描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
email | 机构联系电子邮件 | 字符串 |
|
invoice_email | 无论组织是否需要接收发票的电子邮件 | 布尔值 |
|
invoice_email_address | 接收发票的电子邮件地址 | |
|
tag_expiration_s | 标签过期的秒数 | 整数 |
响应
2.11.17. deleteAdminedOrganization
删除指定的机构。
DELETE /api/v1/organization/{orgname}
Authorizations: oauth2_implicit(org: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
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
username | 权限应用到的用户的用户名 | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.2. getUserPermissions
获取指定用户的权限。
GET /api/v1/repository/{repository}/permissions/user/{username}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
username | 权限应用到的用户的用户名 | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.3. changeUserPermissions
更新现有存储库的估算。
PUT /api/v1/repository/{repository}/permissions/user/{username}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
username | 权限应用到的用户的用户名 | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
用户权限的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 用户使用的角色 | 字符串 |
响应
2.12.4. deleteUserPermissions
删除用户的权限。
DELETE /api/v1/repository/{repository}/permissions/user/{username}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
username | 权限应用到的用户的用户名 | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.5. getTeamPermissions
获取指定团队的权限。
GET /api/v1/repository/{repository}/permissions/team/{teamname}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
teamName | 权限应用到的团队的名称 | 字符串 |
响应
2.12.6. changeTeamPermissions
更新现有团队权限。
PUT /api/v1/repository/{repository}/permissions/team/{teamname}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
teamName | 权限应用到的团队的名称 | 字符串 |
请求正文模式(application/json)
团队权限的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 团队使用的角色 | 字符串 |
响应
2.12.7. deleteTeamPermissions
删除指定团队的权限。
DELETE /api/v1/repository/{repository}/permissions/team/{teamname}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
teamName | 权限应用到的团队的名称 | 字符串 |
响应
2.12.8. listRepoTeamPermissions
列出所有团队权限。
GET /api/v1/repository/{repository}/permissions/team/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.12.9. listRepoUserPermissions
列出所有用户权限。
GET /api/v1/repository/{repository}/permissions/user/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.13. prototype
管理添加到存储库的默认权限。
2.13.1. updateOrganizationPrototypePermission
更新现有权限原型的角色。
PUT /api/v1/organization/{orgname}/prototypes/{prototypeid}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
prototypeid | 原型的 ID | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新原型角色的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应该应用到该权限的角色 | 字符串 |
响应
2.13.2. deleteOrganizationPrototypePermission
删除现有的权限原型。
DELETE /api/v1/organization/{orgname}/prototypes/{prototypeid}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
prototypeid | 原型的 ID | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.13.3. createOrganizationPrototypePermission
创建新权限原型。
POST /api/v1/organization/{orgname}/prototypes
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新原型描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应该应用到委托的角色 | 字符串 |
|
activating_user | 创建用户的存储库,应应用该规则 | 对象 |
|
delegate | 有关规则授予访问权限的用户或团队的信息 | 对象 |
响应
2.13.4. getOrganizationPrototypePermissions
列出此机构的现有原型。
GET /api/v1/organization/{orgname}/prototypes
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
响应
2.14. 软件仓库
列出、创建和管理存储库。
2.14.1. createRepo
创建新存储库。
POST /api/v1/repository
Authorizations: oauth2_implicit(repo:create)
请求正文模式(application/json)
新仓库的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
软件仓库 | 仓库名称 | 字符串 |
|
可见性 | 存储库以什么方式启动 | 字符串 |
|
namespace | 创建存储库的命名空间。如果省略,则使用调用者的用户名 | 字符串 |
|
description | 对存储库进行标记编码的描述 | 字符串 |
|
repo_kind | 仓库的类型 |
响应
2.14.2. listRepos
在各种情况下,获取当前用户可见的存储库列表。
GET /api/v1/repository
Authorizations: oauth2_implicit(存储库:read)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面页面的页面令牌 | 字符串 |
| query |
repo_kind | 要返回的仓库种类 | 字符串 |
| query |
| 是否包含存储库的流行度指标。 | 布尔值 |
| query |
last_modified | 是否包含存储库最后一次修改的时间。 | 布尔值 |
| query |
public | 添加 virtue 是公开的用户可见的所有软件仓库 | 布尔值 |
| query |
starred | 过滤返回到用户星级的存储库 | 布尔值 |
| query |
namespace | 过滤返回到此命名空间的存储库 | 字符串 |
响应
2.14.3. changeRepoVisibility
更改存储库的可见性。
POST /api/v1/repository/{repository}/changevisibility
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的可见性。
| 名称 | 描述 | 模式 |
|---|---|---|
|
可见性 | 存储库以什么方式启动 | 字符串 |
响应
2.14.4. changeRepoState
更改存储库的状态。
PUT /api/v1/repository/{repository}/changestate
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的状态。
| 名称 | 描述 | 模式 |
|---|---|---|
|
state | 确定是否允许推送。 | 字符串 |
响应
2.14.5. getRepo
获取指定的存储库。
GET /api/v1/repository/{repository}
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includeTags | 是否包含存储库标签 | 布尔值 |
| query |
includeStats | 是否包含操作统计 | 布尔值 |
响应
2.14.6. updateRepo
更新指定仓库中的描述。
PUT /api/v1/repository/{repository}
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
可以在存储库中更新的字段。
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 对存储库进行标记编码的描述 | 字符串 |
响应
2.14.7. deleteRepository
删除存储库。
DELETE /api/v1/repository/{repository}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.15. repositorynotification
列出、创建和管理存储库事件/通知。
2.15.1. testRepoNotification
为这个存储库队列测试通知。
POST /api/v1/repository/{repository}/notification/{uuid}/test
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
UUID | 通知的 UUID | 字符串 |
响应
2.15.2. getRepoNotification
获取指定通知的信息。
GET /api/v1/repository/{repository}/notification/{uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
UUID | 通知的 UUID | 字符串 |
响应
2.15.3. deleteRepoNotification
删除指定的通知。
DELETE /api/v1/repository/{repository}/notification/{uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
UUID | 通知的 UUID | 字符串 |
响应
2.15.4. resetRepositoryNotificationFailures
将存储库通知重置为 0 个失败。
POST /api/v1/repository/{repository}/notification/{uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
UUID | 通知的 UUID | 字符串 |
响应
2.15.5. createRepoNotification
POST /api/v1/repository/{repository}/notification/
Authorizations: 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/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.16. repotoken
管理存储库访问令牌(DEPRECATED)。
2.16.1. getTokens
获取指定的存储库令牌信息。
GET /api/v1/repository/{repository}/tokens/{code}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 代码 | 令牌代码 | 字符串 |
响应
2.16.2. changeToken
更新指定存储库令牌的权限。
PUT /api/v1/repository/{repository}/tokens/{code}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 代码 | 令牌代码 | 字符串 |
请求正文模式(application/json)
令牌权限的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 用于令牌的角色 | 字符串 |
响应
2.16.3. deleteToken
删除存储库令牌。
DELETE /api/v1/repository/{repository}/tokens/{code}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 代码 | 令牌代码 | 字符串 |
响应
2.16.4. createToken
创建新的存储库令牌。
POST /api/v1/repository/{repository}/tokens/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
新令牌的描述。
| 名称 | 描述 | 模式 |
|---|---|---|
|
friendlyName | 帮助识别令牌的友好名称 | 字符串 |
响应
2.16.5. listRepoTokens
列出指定存储库的令牌。
GET /api/v1/repository/{repository}/tokens/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.17. robot
管理用户和机构机器人帐户。
2.17.1. getUserRobots
列出用户的可用机器人。
GET /api/v1/user/robots
Authorizations: oauth2_implicit(user:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 如果指定,则要返回的机器机器数量。 | 整数 |
| query |
Token | 如果为 false,则机器人的令牌不会返回。 | 布尔值 |
| query |
权限 | 是否要包含机器机器有权限的存储库和团队。 | 布尔值 |
响应
2.17.2. getOrgRobotPermissions
返回机构机器人的存储库权限列表。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.17.3. regenerateOrgRobotToken
为机构机器人重新生成令牌。
POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.17.4. getUserRobotPermissions
返回用户机器人的存储库权限列表。
GET /api/v1/user/robots/{robot_shortname}/permissions
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
响应
2.17.5. regenerateUserRobotToken
重新生成用户机器人的令牌。
POST /api/v1/user/robots/{robot_shortname}/regenerate
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
响应
2.17.6. getOrgRobot
返回具有指定名称的组织机器人。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.17.7. createOrgRobot
在 组织中创建新机器人。
PUT /api/v1/organization/{orgname}/robots/{robot_shortname}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
创建机器机器的可选数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 机器人的可选文本描述 | 字符串 |
|
unstructured_metadata | 机器人的可选非结构化元数据 | 对象 |
响应
2.17.8. deleteOrgRobot
删除现有的机构机器人。
DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.17.9. getOrgRobots
列出机构的机器人。
GET /api/v1/organization/{orgname}/robots
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
OrgName | 机构名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 如果指定,则要返回的机器机器数量。 | 整数 |
| query |
Token | 如果为 false,则机器人的令牌不会返回。 | 布尔值 |
| query |
权限 | 是否包括机器人有权限的仓库和团队。 | 布尔值 |
响应
2.17.10. getUserRobot
返回用户机器人具有指定名称。
GET /api/v1/user/robots/{robot_shortname}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
响应
2.17.11. createUserRobot
使用指定名称创建一个新用户机器机器。
PUT /api/v1/user/robots/{robot_shortname}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
请求正文模式(application/json)
创建机器机器的可选数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
description | 机器人的可选文本描述 | 字符串 |
|
unstructured_metadata | 机器人的可选非结构化元数据 | 对象 |
响应
2.17.12. deleteUserRobot
删除现有的机器人。
DELETE /api/v1/user/robots/{robot_shortname}
Authorizations: oauth2_implicit(user:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
robot_shortname | 机器机器的短名称,没有任何用户或机构前缀 | 字符串 |
响应
2.18. search
对所有注册表上下文执行搜索。
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
Authorizations: 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 | 查询组织实体时使用的命名空间。 | 字符串 |
响应
2.19. secscan
列出和管理存储库漏洞和其他安全信息。
2.19.1. getRepoManifestSecurity
GET /api/v1/repository/{repository}/manifest/{manifestref}/security
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
manifestref | 清单摘要 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
安全漏洞 | 包括漏洞信息 | 布尔值 |
响应
2.20. 超级用户
超级用户 API.
2.20.1. createInstallUser
创建新用户。
POST /api/v1/superuser/users/
Authorizations: oauth2_implicit(super:user)
请求正文模式(application/json)
创建用户的数据
| 名称 | 描述 | 模式 |
|---|---|---|
|
username | 创建用户的用户名 | 字符串 |
|
email | 创建用户的电子邮件地址 | 字符串 |
响应
2.20.2. listAllUsers
返回系统中所有用户的列表。
GET /api/v1/superuser/users/
Authorizations: oauth2_implicit(super:user)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面页面的页面令牌 | 字符串 |
| query |
limit | 限制为每个页面返回的结果数。最大 100 个. | 整数 |
| query |
禁用 | 如果为 false,则只返回启用的用户。 | 布尔值 |
响应
2.20.3. listAllLogs
列出当前系统的使用日志。
GET /api/v1/superuser/logs
Authorizations: oauth2_implicit(super:user)
查询参数
| 类型 | 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
Authorizations: oauth2_implicit(super:user)
请求正文模式(application/json)
创建服务密钥的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
service | 使用这个密钥进行身份验证的服务 | 字符串 |
|
name | 服务密钥的友好名称 | 字符串 |
|
metadata | 此键元数据的键/值对 | 对象 |
|
notes | 如果指定,则密钥的额外备注 | 字符串 |
|
过期 | 作为 unix 时间戳的过期日期 |
响应
2.20.5. listServiceKeys
GET /api/v1/superuser/keys
Authorizations: oauth2_implicit(super:user)
响应
2.20.6. changeUserQuotaSuperUser
PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构允许的字节数 | 整数 |
响应
2.20.7. deleteUserQuotaSuperUser
DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
响应
2.20.8. createUserQuotaSuperUser
POST /api/v1/superuser/organization/{namespace}/quota
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构允许的字节数 | 整数 |
响应
2.20.9. listUserQuotaSuperUser
GET /api/v1/superuser/organization/{namespace}/quota
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
响应
2.20.10. changeOrganizationQuotaSuperUser
PUT /api/v1/superuser/users/{namespace}/quota/{quota_id}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构允许的字节数 | 整数 |
响应
2.20.11. deleteOrganizationQuotaSuperUser
DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 | |
| path |
quota_id | 字符串 |
响应
2.20.12. createOrganizationQuotaSuperUser
POST /api/v1/superuser/users/{namespace}/quota
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
limit_bytes | 允许机构允许的字节数 | 整数 |
响应
2.20.13. listOrganizationQuotaSuperUser
GET /api/v1/superuser/users/{namespace}/quota
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
namespace | 字符串 |
响应
2.20.14. changeOrganization
更新指定用户的信息。
PUT /api/v1/superuser/organizations/{name}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
name | 管理有 organizaton 的名称 | 字符串 |
请求正文模式(application/json)
现有机构的更新描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
email | 机构联系电子邮件 | 字符串 |
|
invoice_email | 无论组织是否需要接收发票的电子邮件 | 布尔值 |
|
invoice_email_address | 接收发票的电子邮件地址 | |
|
tag_expiration_s | 标签过期的秒数 | 整数 |
响应
2.20.15. deleteOrganization
删除指定的机构。
DELETE /api/v1/superuser/organizations/{name}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
name | 管理有 organizaton 的名称 | 字符串 |
响应
2.20.16. approveServiceKey
POST /api/v1/superuser/approvedkeys/{kid}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
请求正文模式(application/json)
批准服务密钥的信息
| 名称 | 描述 | 模式 |
|---|---|---|
|
notes | 可选批准备注 | 字符串 |
响应
2.20.17. deleteServiceKey
DELETE /api/v1/superuser/keys/{kid}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
响应
2.20.18. updateServiceKey
PUT /api/v1/superuser/keys/{kid}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
请求正文模式(application/json)
服务密钥更新的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
name | 服务密钥的友好名称 | 字符串 |
|
metadata | 此键元数据的键/值对 | 对象 |
|
过期 | 作为 unix 时间戳的过期日期 |
响应
2.20.19. getServiceKey
GET /api/v1/superuser/keys/{kid}
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
kid | 服务密钥的唯一标识符 | 字符串 |
响应
2.20.20. getRepoBuildStatusSuperUser
返回构建 uuids 指定的构建的状态。
GET /api/v1/superuser/{build_uuid}/status
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.20.21. getRepoBuildSuperUser
返回有关构建的信息。
GET /api/v1/superuser/{build_uuid}/build
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.20.22. getRepoBuildLogsSuperUser
返回构建 uuid 指定构建的构建日志。
GET /api/v1/superuser/{build_uuid}/logs
Authorizations: oauth2_implicit(super:user)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
build_uuid | 构建的 UUID | 字符串 |
响应
2.21. tag
管理存储库的标签。
2.21.1. restoreTag
将存储库标签还原回存储库中的以前的镜像。
POST /api/v1/repository/{repository}/tag/{tag}/restore
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 标签 | 标签的名称 | 字符串 |
请求正文模式(application/json)
将标签恢复到特定镜像
| 名称 | 描述 | 模式 |
|---|---|---|
|
manifest_digest | 如果指定,应使用的清单摘要 | 字符串 |
响应
2.21.2. changeTag
更改标签指向或创建新标签的镜像。
PUT /api/v1/repository/{repository}/tag/{tag}
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 标签 | 标签的名称 | 字符串 |
请求正文模式(application/json)
更改特定标签
| 名称 | 描述 | 模式 |
|---|---|---|
|
manifest_digest | (如果指定)标签应指向的清单摘要 | |
|
过期 | (如果指定)镜像的过期时间 |
响应
2.21.3. deleteFullTag
删除指定的存储库标签。
DELETE /api/v1/repository/{repository}/tag/{tag}
Authorizations: oauth2_implicit(存储库:write)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
| path |
需要 标签 | 标签的名称 | 字符串 |
响应
2.21.4. listRepoTags
GET /api/v1/repository/{repository}/tag/
Authorizations: oauth2_implicit(存储库:read)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
onlyActiveTags | 将 过滤为仅活跃的标签。 | 布尔值 |
| query |
Page | 结果页面索引。默认 1。 | 整数 |
| query |
limit | 限制为每个页面返回的结果数。最大 100 个. | 整数 |
| query |
filter_tag_name | 语法:<op>:<name> 根据操作过滤标签名称。<op> 可以是 'like' 或 'eq'。 | 字符串 |
| query |
specificTag | 过滤标签到特定标签。 | 字符串 |
响应
2.22. Team
创建、列出和管理组织团队。
2.22.1. getOrganizationTeamPermissions
返回机构团队的存储库权限列表。
GET /api/v1/organization/{orgname}/team/{teamname}/permissions
授权:
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.22.2. updateOrganizationTeamMember
为现有团队添加或邀请一个成员。
PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
memberName | 团队成员的用户名 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
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}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
memberName | 团队成员的用户名 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.22.4. getOrganizationTeamMembers
检索指定团队的成员列表。
GET /api/v1/organization/{orgname}/team/{teamname}/members
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
includePending | 是否包含待处理成员 | 布尔值 |
响应
2.22.5. inviteTeamMemberEmail
向现有团队邀请电子邮件地址。
PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | 名称 | 描述 | 模式 |
|---|---|---|---|
| path |
email | 字符串 | |
| path |
teamName | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.22.6. deleteTeamMemberEmailInvite
删除邀请电子邮件地址加入团队。
DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | 名称 | 描述 | 模式 |
|---|---|---|---|
| path |
email | 字符串 | |
| path |
teamName | 字符串 | |
| path |
OrgName | 字符串 |
响应
2.22.7. updateOrganizationTeam
更新指定团队的机构范围内权限。
PUT /api/v1/organization/{orgname}/team/{teamname}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
团队的描述
| 名称 | 描述 | 模式 |
|---|---|---|
|
角色 | 应该应用到团队的机构广泛权限 | 字符串 |
|
description | 团队的 markdown 描述 | 字符串 |
响应
2.22.8. deleteOrganizationTeam
删除指定的团队。
DELETE /api/v1/organization/{orgname}/team/{teamname}
Authorizations: oauth2_implicit(org:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
teamName | 团队的名称 | 字符串 |
| path |
OrgName | 机构名称 | 字符串 |
响应
2.23. trigger
创建、列出和管理构建触发器。
2.23.1. activateBuildTrigger
激活指定的构建触发器。
POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/activate
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
| 名称 | 描述 | 模式 |
|---|---|---|
|
config | 任意 json. | 对象 |
|
pull_robot | 用于拉取镜像的机器机器的名称。 | 字符串 |
响应
2.23.2. listTriggerRecentBuilds
列出由指定触发器启动的构建。
GET /api/v1/repository/{repository}/trigger/{trigger_uuid}/builds
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
limit | 要返回的最大构建数 | 整数 |
响应
2.23.3. manuallyStartBuildTrigger
从指定的触发器手动启动构建。
POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/start
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
用于激活构建触发器的可选运行参数
| 名称 | 描述 | 模式 |
|---|---|---|
|
branch_name | (仅限 SCM),如果指定,要构建的分支名称。 | 字符串 |
|
commit_sha | (仅自定义)如果指定,则用于签出 git 存储库的 ref/SHA1。 | 字符串 |
|
refs | (仅限 SCM)如果指定,则要构建的 ref。 |
响应
2.23.4. getBuildTrigger
获取指定构建触发器的信息。
GET /api/v1/repository/{repository}/trigger/{trigger_uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.23.5. updateBuildTrigger
更新指定的构建触发器。
PUT /api/v1/repository/{repository}/trigger/{trigger_uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更新构建触发器的选项
| 名称 | 描述 | 模式 |
|---|---|---|
|
启用 | 是否启用构建触发器 | 布尔值 |
响应
2.23.6. deleteBuildTrigger
删除指定的构建触发器。
DELETE /api/v1/repository/{repository}/trigger/{trigger_uuid}
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
trigger_uuid | 构建触发器的 UUID | 字符串 |
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.23.7. listBuildTriggers
列出指定存储库的触发器。
GET /api/v1/repository/{repository}/trigger/
Authorizations: oauth2_implicit(repo:admin)
路径参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| path |
软件仓库 | 仓库的完整路径。例如 namespace/name | 字符串 |
响应
2.24. user
管理当前用户。
2.24.1. createStar
星级存储库。
POST /api/v1/user/starred
Authorizations: oauth2_implicit(存储库:read)
请求正文模式(application/json)
| 名称 | 描述 | 模式 |
|---|---|---|
|
namespace | 仓库所属的命名空间 | 字符串 |
|
软件仓库 | 仓库名称 | 字符串 |
响应
2.24.2. listStarredRepos
列出所有星级存储库。
GET /api/v1/user/starred
Authorizations: oauth2_implicit(user:admin)
查询参数
| 类型 | Name | 描述 | 模式 |
|---|---|---|---|
| query |
next_page | 下一页面页面的页面令牌 | 字符串 |
响应
2.24.3. getLoggedInUser
获取经过身份验证的用户的用户信息。
GET /api/v1/user/
Authorizations: oauth2_implicit(用户:read)
响应
2.24.4. deleteStar
从存储库中删除星级。
DELETE /api/v1/user/starred/{repository}
Authorizations: oauth2_implicit(user: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
| 名称 | 描述 | 模式 |
|---|---|---|
|
验证的 | 是否验证用户的电子邮件地址 | 布尔值 |
|
匿名 | 如果这个用户数据代表客户机用户,则为 true | 布尔值 |
|
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"]},
}