SuperAPI AI 工具集

fix-failing-pipelines

部署与运维

查看项目

更新于 10-15 09:45

技能介绍

用途

该技能用于检查指定仓库 staging 分支上的 GitHub Actions 工作流,识别最近一次运行为失败的工作流,并自动派发 /babysitter:yolo 进行修复。它面向需要快速定位并修复 CI 流水线失败的场景。

主要能力

  • 使用 gh CLI 列出 staging 分支上最近的 50 条工作流运行记录。
  • 按 workflowName 分组,仅保留每个工作流最近一次运行。
  • 筛选出最近一次已完成运行结论为 failure 的工作流,跳过成功、已取消或仍在进行中的运行。
  • 对失败运行获取失败作业与失败步骤详情,并抓取失败日志尾部内容以了解错误。
  • 向用户展示失败工作流列表,包括工作流名称、运行 ID 与链接、失败作业与步骤名称、错误摘要。
  • 对每个失败工作流调用 babysitter:yolo,附带失败上下文,要求调查根因、修复并直接提交到 staging 分支。
  • 多个失败工作流按顺序逐个处理,每次修复后给出摘要。
  • 推送修复后检查是否触发新运行,并报告其状态。
  • 若修复后新运行仍失败,则迭代修复直至成功。

使用方式

该技能通过 gh CLI 与 babysitter:yolo 协作完成。主要步骤包括:

  1. 获取每个工作流最近一次运行: gh run list --repo a5c-ai/babysitter --branch staging --limit 50 --json databaseId,workflowName,status,conclusion,createdAt,headBranch

  2. 识别失败:仅选择最近一次已完成运行结论为 failure 的工作流。

  3. 获取失败详情: gh run view <run_id> --repo a5c-ai/babysitter --json jobs --jq '.jobs[] | select(.conclusion == "failure") | {name, conclusion, steps: [.steps[] | select(.conclusion == "failure") | .name]}' gh run view <run_id> --repo a5c-ai/babysitter --log-failed 2>&1 | tail -100

  4. 展示失败列表。

  5. 通过 babysitter 修复,调用示例: /babysitter:yolo fix the failing "<workflow_name>" pipeline on staging. The most recent run (<run_id>) failed in job "<job_name>" at step "<step_name>". Error details: <brief_error_summary>. Investigate the failure, fix the root cause, and push a fix to the staging branch. Do not create a new branch -- commit directly to staging.

  6. 验证修复: gh run list --repo a5c-ai/babysitter --branch staging --workflow "<workflow_file>" --limit 1 --json databaseId,status,conclusion

  7. 汇总结果。

适用场景

  • 需要批量检查 staging 分支 CI 状态并修复失败流水线。
  • 希望以非交互方式自动完成流水线修复,无需人工介入或断点。
  • 需要将修复直接提交到 staging 分支,不创建特性分支或 PR。

限制与注意事项

  • 仅关注每个工作流最近一次运行;已被成功运行取代的旧失败不处理。
  • 进行中的运行会被跳过;已取消的运行不视为失败。
  • gh CLI 必须已认证,若认证失败需提示用户运行 gh auth login。
  • 每个修复交由 /babysitter:yolo 非交互执行。
  • 修复直接提交到 staging 分支,不创建特性分支或 PR。
  • 整个流程应无用户交互或断点。
  • 若修复后新运行仍失败,需迭代修复直至成功。