关于 gha
gha 是一项使用 gh CLI 调查 GitHub Actions 运行记录的技能,重点是定位实际失败原因、检查特定任务的历史记录并评估潜在修复。
主要功能
- 01分析工作流与任务日志
- 02检查失败任务的历史记录
- 03评估复发情况与成功率
- 04核实引入故障的提交
- 05搜索开放 PR 中的修复
适用场景
- 01查明 Actions 运行以退出码 1 结束的原因
- 02判断特定任务故障是否反复发生
- 03定位可能导致持续回归的提交
- 04检查开放 PR 是否已修复故障
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ykdojo/ claude-code-tips --skill gha安装后在 Claude Code 中输入/gha确认已加载。
详细介绍
调查此 GitHub Actions URL:$ARGUMENTS
使用 gh CLI 分析此工作流运行。调查内容应包括:
-
获取基本信息并确定实际故障:
- 哪个工作流/作业失败了?何时失败?对应哪个提交?
- 关键:仔细阅读完整日志,找出具体是什么导致退出代码为 1。
- 区分警告/非致命错误与实际故障。
- 查找“failing:”“fatal:”等模式,或决定何时以代码 1 退出的脚本逻辑。
- 如果同时看到“non-fatal”和“fatal”错误,请重点关注实际导致故障的内容。
-
检查不稳定性:检查完全相同的失败作业最近 10–20 次运行:
- 重要:如果某个工作流包含多个作业,必须检查具体失败作业的历史记录,而不是只检查工作流。
- 使用
gh run list --workflow=<workflow-name>获取运行 ID,然后使用gh run view <run-id> --json jobs检查具体作业的状态。 - 这是一次性故障,还是此特定作业反复出现的问题?
- 此作业近期的成功率是多少?
- 此作业最近一次通过是什么时候?
-
确定引入故障的提交(如果此特定作业存在反复失败的情况):
- 找出此特定作业首次失败的运行,以及最近一次通过的运行。
- 确定引入故障的提交。
- 进行验证:该提交之后的所有运行中,此作业是否都失败?该提交之前的所有运行中,此作业是否都通过?
- 如果验证属实,请高置信度地报告引入故障的提交。
-
根本原因:结合日志、历史记录和可能引入故障的提交,判断可能的原因。
- 聚焦于实际导致故障的因素(而非你看到的任意错误)。
- 根据日志和故障逻辑验证你的假设。
-
检查是否已有修复 PR:搜索可能已解决此问题的开放 PR:
- 使用
gh pr list --state open --search "<keywords>"搜索相关错误消息或文件名。 - 检查是否有开放 PR 修改了失败的文件/工作流。
- 如果存在修复 PR,请在报告中注明,并跳过建议部分。
- 使用
请撰写最终报告,包含:
- 故障摘要(具体是什么触发了退出代码 1)
- 不稳定性评估(一次性还是反复出现、成功率)
- 引入故障的提交(若已识别并验证)
- 根本原因分析(基于实际故障触发因素)
- 已有修复 PR(若找到,请包含 PR 编号和链接)
- 建议(若已有修复 PR,则跳过)
评论
支持 Markdown