15.3.7. 使用 Red Hat Quay API 为存储库创建自动修剪策略


您可以使用 Red Hat Quay API 端点来管理存储库自动运行策略。

先决条件

  • 您已创建了 OAuth 访问令牌。
  • 已登陆到 Red Hat Quay。

流程

  1. 输入以下 POST /api/v1/repository/{repository}/autoprunepolicy/ 命令,创建一个新策略来限制机构中允许的标签数:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    另外,您可以在创建日期后将标签设置为在指定时间过期:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "creation_date", "value": "7d"}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    输出示例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}

  2. 可选。您可以添加额外的策略,并在 tagPatterntagPatternMatches 字段中传递,以仅修剪与给定 regex 模式匹配的标签。例如:

    $ curl -X POST \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "<creation_date>",
        "value": "<7d>",
        "tagPattern": "<^test.>*",
        "tagPatternMatches": <false> 
    1
    
      }' \
      "https://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/"
    1
    tagPatternMatches 设置为 False 会导致所有与给定正则表达式模式匹配的标签都会被修剪。在本例中,除 ^test 以外的所有 标签都会被修剪。

    输出示例

    {"uuid": "b53d8d3f-2e73-40e7-96ff-736d372cd5ef"}

  3. 您可以使用 PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid} 命令为存储库更新您的策略,并传递 UUID。例如:

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "number_of_tags",
        "value": "5",
        "tagPattern": "^test.*",
        "tagPatternMatches": true
      }' \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/autoprunepolicy/<uuid>"

    此命令不返回输出。继续下一步,以检查您的自动修剪策略。

  4. 输入以下命令检查自动修剪策略:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    或者,您可以包含 UUID:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7

    输出示例

    {"policies": [{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7", "method": "number_of_tags", "value": 10}]}

  5. 您可以输入以下命令来删除自动修剪策略。请注意,删除策略需要 UUID。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7

    输出示例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部