用途
该技能用于将某个发布版本的下游插件目录索引更新到最新状态,并说明仍有哪些内容被阻塞。它只处理受支持的插件。该技能发布的索引为 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 行。
使用方式
- 先运行 check-login。若登录被拒绝,技能停止。加载 references/konflux-wait.md,等待用户具备 oc 会话。
- 当用户未指定 x.y.z 或分支(main、release-2.1)时,询问其中之一。然后运行:
python3 scripts/catalog_index_status.py resolve --branch <branch> --version <x.y.z> --catalog-root <worktree>
传入用户提供的部分即可。
-
使用 gitlab.cee.redhat.com:rhidp/rhdh-plugin-catalog 在解析出的分支上的 git worktree。若磁盘上没有该仓库则克隆。保持用户当前检出位置不变。
-
生成报告:
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 采取行动。
- 对 respin 行:从 worktree 运行每条命令。这会提交 .tekton/ PipelineRuns,但不会推送。
- 对 sync 行:显示 syncCommand 并停止。运行 sync-midstream.sh 属于后续会话。
- 对 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 属于后续会话。
- 用户检查状态的请求不构成推送批准。
- 关于收费、价格、平台、效果等具体信息暂未提供。