SuperAPI AI 工具集

ci-feedback-loop

测试与质量

查看项目

更新于 10-15 17:32

技能介绍

用途:把失败的 GitHub Actions 上下文(状态→失败作业→步骤日志→产物)拉取到本地会话,让智能体无需在 GitHub UI 间来回切换即可修复问题。适用于 PR 存在失败检查、用户要求调试 CI/查看流水线/修复 CI 失败测试、特性分支反复破坏特定作业,或需要失败运行附带的集群状态产物(kubectl dump、helm 日志、pod 描述)时。

主要能力:技能目录内的小型 Go CLI 封装 gh CLI 做编排,解析日志与产物,写入 debug/ci/<run_id>/(debug/** 已被 .gitignore 覆盖)。子命令有 locate、summarize、logs、artifacts,均可加 --help 查看参数。

使用方式:前置条件为 gh CLI 已认证(gh auth status)、PATH 中有 go ≥1.23、工作目录位于目标 git 仓库的特性分支。每个 shell 运行一次别名:ci_fb() { (cd "$(git rev-parse --show-toplevel)/.github/skills/ci-feedback-loop" && go run . "$@"); },之后在仓库任意位置使用 ci_fb <subcommand>。定位运行:ci_fb locate 列出最近 10 次运行(非阻塞),--latest 仅打印最新 RUN_ID,--wait 阻塞至所有进行中运行结束(默认超时 1800 秒,每 30 秒轮询),解析后输出单行 RUN_ID=<id>。汇总失败:ci_fb summarize <RUN_ID> 打印工作流元数据及失败/取消作业与失败步骤号。获取日志:ci_fb logs <RUN_ID> [--job <substring>] [--tail 200] [--context 80],下载完整日志归档到 debug/ci/<RUN_ID>/_run.zip 并解压到 logs/,对每个失败作业打印末尾若干行及首个错误上下文(正则 error|fail|fatal|panic)。下载产物:ci_fb artifacts <RUN_ID> 仅列出,加 --name cluster-dump 下载匹配项到 artifacts/<name>/。随后映射错误到来源、阅读源文件、做最小修复、本地验证,再 git add -u && git commit -m "fix(ci): <short description>" && git push,重复步骤直至流水线变绿。清理:rm -rf debug/ci。

限制与反模式:不要把完整日志倾倒进对话,应使用 summarize 与日志摘录;不要盲目下载全部产物,先列出再按 --name 选择;不要修完不复查运行;不要为让 CI 通过而编辑工作流 YAML 跳过检查,应修复根本问题。参考资料为 main.go(完整 CLI,cobra 子命令)与 go.mod。