用途:在本地已检出 PR 分支的情况下,使用 gh CLI 诊断并修复某 PR 的 CI 失败。
主要能力:定位当前分支的 PR、查看与筛选失败的 CI 检查、下载失败作业日志、判断失败是否由本 PR 引起,并区分代码问题与基础设施/偶发失败。
使用方式:先获取分支与 PR(git branch --show-current、gh pr view --json number,title,url,statusCheckRollup);再查看检查状态(gh pr checks --json name,state,link,bucket 及筛选 bucket == "fail",可用 --watch --fail-fast 等待);随后查看失败作业(gh run view <RUN_ID> --json jobs)并获取日志,可用 --log-failed、下载产物(gh run download <RUN_ID> -n "<artifact-name>" -D /tmp/ci-logs)或经 API 保存日志后搜索(gh api repos/microsoft/vscode/actions/jobs/<JOB_ID>/logs > "$TMPDIR/ci-job-log.txt",配合 grep -n '##[error]')。判断为基础设施/偶发失败时不要改代码,可用 gh run rerun <RUN_ID> --failed 重跑,并与 main 分支最近运行对比。
适用场景:集成测试、构建/编译、lint 等失败排查,日志产物中 exthost.log、terminal.log、main.log 为关键文件。
限制:--log-failed 需整个 run 完成,否则阻塞或报错;日志可能很大或为空;部分命令依赖 GitHub 仓库与权限;并非所有失败均由代码引起。