用途
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 环境。关于收费、价格、平台支持范围等更多信息暂未提供。