SuperAPI AI 工具集

rhdh-plugin-catalog-index-status-and-update-flow

部署与运维

查看项目

更新于 10-21 20:22

技能介绍

用途

该技能用于将某个发布版本的下游插件目录索引更新到最新状态,并说明仍有哪些内容被阻塞。它只处理受支持的插件。该技能发布的索引为 quay.io/rhdh/plugin-catalog-index。

主要能力

  • 报告 Red Hat Developer Hub 插件目录索引在指定发布分支或 x.y.z 版本上的状态。
  • 在获得授权后更新下游 quay.io/rhdh/plugin-catalog-index。
  • 通过 scripts/catalog_index_status.py 输出 JSON,脚本不会提示、提交或推送。
  • 支持解析分支或版本:脚本会从该分支上的 redhat-developer/rhdh package.json 读取版本,并在 release-X.Y 目录分支存在时使用它,否则使用 main。
  • 生成状态报告,并区分 respin 行、sync 行和 report-only 行。

使用方式

  1. 先运行 check-login。若登录被拒绝,技能停止。加载 references/konflux-wait.md,等待用户具备 oc 会话。
  2. 当用户未指定 x.y.z 或分支(main、release-2.1)时,询问其中之一。然后运行:

python3 scripts/catalog_index_status.py resolve --branch <branch> --version <x.y.z> --catalog-root <worktree>

传入用户提供的部分即可。

  1. 使用 gitlab.cee.redhat.com:rhidp/rhdh-plugin-catalog 在解析出的分支上的 git worktree。若磁盘上没有该仓库则克隆。保持用户当前检出位置不变。

  2. 生成报告:

python3 scripts/catalog_index_status.py report
--catalog-root <worktree>
--downstream <worktree>/docs/catalog-status.md
--branch <branch>
--version <x.y.z>

加载 references/status-pages.md 以根据 JSON 采取行动。

  1. 对 respin 行:从 worktree 运行每条命令。这会提交 .tekton/ PipelineRuns,但不会推送。
  2. 对 sync 行:显示 syncCommand 并停止。运行 sync-midstream.sh 属于后续会话。
  3. 对 report-only 行:将其包含在摘要中。它们不会启动 Konflux 构建。

推送

在 git push 目录分支之前调用 /mutation-gate。说明分支名称,显示 git status 和 git diff --cached,并说明已推送的 PipelineRun 提交无法撤销,因为 Konflux 会启动构建。用户检查状态的请求并不代表批准推送。

获得授权推送后,打开 konfluxUrl 并运行 references/konflux-wait.md 中的 wait-runs。然后用 skopeo inspect docker://<ref> 确认请求的标签。若仍缺失、失败或超时:报告 Konflux 链接、Quay 链接,以及当工作区落后时的 syncCommand。

当 respin 和 sync 均为空时,在使用 resolve 得到的 indexFlags 和 --nopush 运行 ./build/ci/update-index.sh 之前先询问。对于 --allow-fallback-tag 和 --allow-version-regression 需单独询问,默认否。该提交只能通过另一次 /mutation-gate 批准后推送。/mutation-gate 返回已批准的操作列表;只运行该列表。

完成条件

用户获得该分支的 JSON 报告;除非有门禁批准推送,否则任何本地提交均未推送;PipelineRun 原因为 Succeeded 或带有日志路径的明确失败;下游索引命令要么被跳过,要么在第二次批准前以 --nopush 运行。

适用场景

适用于 Red Hat Developer Hub 插件目录索引的状态检查与更新流程,特别是需要针对某个发布分支或版本确认索引状态、执行 respin 或 sync 操作、并在授权后推送 PipelineRun 提交的场景。

限制

  • 仅支持受支持的插件。
  • 脚本不会主动提示、提交或推送。
  • 推送前必须经过 /mutation-gate 授权。
  • 运行 sync-midstream.sh 属于后续会话。
  • 用户检查状态的请求不构成推送批准。
  • 关于收费、价格、平台、效果等具体信息暂未提供。