SuperAPI AI 工具集

ci-fixer

部署与运维

查看项目

更新于 10-15 08:23

技能介绍

用途

CI Fixer 是一个用于诊断、修复并监控 GitHub PR 上 CI 失败的技能。当用户希望修复 CI 失败、解决失败的测试、修复 PR 上的 lint 错误等场景时使用。该技能会持续工作,直到所有必需检查通过。

主要能力

  • 分析 PR:获取 PR 编号,运行 gh pr checks 识别失败项。
  • 诊断:使用 gh run view [RUN_ID] --log-failed 获取错误详情。
  • 修复:根据失败类型应用针对性修复(见下方修复策略)。
  • 本地验证:推送前在本地运行测试/linter。
  • 提交与推送:暂存更改,使用清晰信息提交并推送。
  • 监控:等待 3 分钟,检查 gh pr checks,重复直到全部通过。

使用方式

核心命令

检查 CI 状态:

gh pr checks [PR_NUMBER]
gh pr checks [PR_NUMBER] --json name,state,conclusion

获取失败日志:

gh run view [RUN_ID] --log-failed

检查失败任务(若全部通过/跳过则返回空):

gh pr checks [PR_NUMBER] --json name,state,conclusion | jq '.[] | select(.state == "completed" and .conclusion != "success" and .conclusion != "skipped")'

状态含义:

  • conclusion: "success" 或 "skipped" = 正常
  • conclusion: "failure" = 需要修复
  • state: "pending"/"queued"/"in_progress" = 仍在运行,等待

修复策略

  • Linting:先运行自动修复(npx eslint --fix、npx prettier --write、./vendor/bin/phpcbf)。
  • 测试:阅读测试与实现,判断哪一方有误,适当修复,并在本地验证。
  • 类型:检查 TypeScript(npx tsc --noEmit)或 PHPStan 输出,修复注解/不匹配。
  • 构建:检查日志中的缺失依赖、语法错误、导入问题。

重要规则

  • 推送前始终在本地验证修复。
  • 使用清晰信息进行原子提交。
  • 不要盲目自动修复;审查更改。
  • 如果修复存在歧义或可能破坏功能,询问用户。
  • 保持持久:继续监控/修复循环,直到所有检查通过或用户取消。

适用场景

适用于需要修复 GitHub PR 上 CI 失败、解决失败测试、修复 lint 错误、处理类型或构建问题的开发者。

限制

该技能依赖 gh 命令行工具和 GitHub PR 环境。关于收费、价格、平台支持范围等更多信息暂未提供。