6.13. 使用 Red Hat Quay API 创建和配置软件仓库


可以使用 Red Hat Quay API 创建、检索、修改和删除存储库。

6.13.1. 使用 Red Hat Quay API 创建和配置软件仓库

可以使用 Red Hat Quay API 创建、检索、修改和删除存储库。

流程

  1. 输入以下命令使用 POST /api/v1/repository 端点创建存储库:

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "repository": "<new_repository_name>",
        "visibility": "<private>",
        "description": "<This is a description of the new repository>."
      }' \
      "https://quay-server.example.com/api/v1/repository"

    输出示例

    {"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}

  2. 您可以使用 GET /api/v1/repository 端点列出存储库。例如:

    $ curl -X GET \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"

    输出示例

    {"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}

  3. 通过 POST /api/v1/repository/{repository}/changevisibility 端点,可以将可见性从公共改为私有:

    $ curl -X POST \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "visibility": "private"
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPO_NAME>/changevisibility"

    输出示例

    {"success": true}

  4. 您可以检查 Red Hat Quay UI,或者您可以输入以下 GET /api/v1/repository/{repository} 命令来返回有关存储库的详情:

    $ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"

    输出示例

    {"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}
  5. 存储库描述可以使用 PUT /api/v1/repository/{repository} 端点更新:

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "description": "This is an updated description for the repository."
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPOSITORY>"

    输出示例

    {"success": true}

  6. 输入以下命令使用 DELETE /api/v1/repository/{repository} 端点删除存储库:

    $ curl -X DELETE   -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"

    此命令不会在 CLI 中返回输出。

6.13.2. 使用 API 创建通知

使用以下步骤添加通知。

先决条件

  • 您已创建了软件仓库。
  • 有存储库的管理特权。
  • 您已创建了 OAuth 访问令牌
  • 您已在 config.yaml 文件中设置了 BROWSER_API_CALLS_XHR_ONLY: false

流程

  1. 输入以下 POST /api/v1/repository/{repository}/notification 命令在存储库上创建通知:

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      --data '{
        "event": "<event>",
        "method": "<method>",
        "config": {
          "<config_key>": "<config_value>"
        },
        "eventConfig": {
          "<eventConfig_key>": "<eventConfig_value>"
        }
      }' \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/

    此命令不会在 CLI 中返回输出。相反,您可以输入以下 GET /api/v1/repository/{repository}/notification/{uuid} 命令来获取有关存储库通知的信息:

    {"uuid": "240662ea-597b-499d-98bb-2b57e73408d6", "title": null, "event": "repo_push", "method": "quay_notification", "config": {"target": {"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, "event_config": {}, "number_of_failures": 0}
  2. 您可以通过输入以下 POST /api/v1/repository/{repository}/notification/{uuid}/test 命令来测试存储库通知:

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/test

    输出示例

    {}

  3. 您可以通过输入以下 POST /api/v1/repository/{repository}/notification/{uuid} 命令重置存储库通知失败:

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
  4. 输入以下 DELETE /api/v1/repository/{repository}/notification/{uuid} 命令来删除存储库通知:

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>

    此命令不会在 CLI 中返回输出。相反,您可以输入以下 GET /api/v1/repository/{repository}/notification/ 命令来检索所有通知的列表:

    $ curl -X GET  -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification

    输出示例

    {"notifications": []}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.