SuperAPI AI 工具集

dd-unblock-pr

通用与其它

查看项目

更新于 10-16 05:05

技能介绍

用途:调查失败的 PR CI 流水线或检查 PR 健康度,将每个 CI 失败归因为 flaky(不稳定)、infra(基础设施/既有问题)或 regression(本 PR 引入的回归),并给出针对性行动建议。

依赖:需要 dd-pup 技能(已安装并认证 pup CLI),以及 dd-triage-flaky-test 技能用于 flaky 失败的深入调查。

输入:PR 分支名;仓库标识(小写、无协议 URL,如 github.com/org/repo),未提供时可用 git remote get-url origin 推导。

主要流程:先用 pup cicd events search 与 pup cicd tests search 并行获取流水线作业级失败和测试失败,并用 pup code-coverage branch-summary 获取覆盖率(仓库名需全小写)。随后对每个失败作业做 blame guard:用 pup cicd events aggregate 检查该作业在默认分支是否已失败、是否在多个分支上失败。分类优先级为:若作业事件带 @error_classification.domain/type 则以其为主;测试失败且命中 flaky_test_state:active 则判为 flaky;否则按默认分支与跨分支失败情况判定 infra、regression 或 unknown。最后输出 Triage Brief(每个失败作业含分类、证据、置信度、建议)与 PR Health(覆盖率、质量、安全三行,后两者在 pup 中始终为 No data available)。

行动建议:regression 提示用户检查代码改动;flaky 加载 dd-triage-flaky-test 深入处理;infra 先判断是否瞬时失败,瞬时且为 GitHub Actions 时可用 gh run rerun <run_id> --failed 重跑,其他平台引导到对应 UI;unknown 建议查看原始日志。

限制:代码质量与安全违规计数在 pup 中不可用;blast radius 查询慢或超时时可跳过,仅依赖默认分支检查;分类可能为 unknown。