用途:处理社区贡献者提交的 PR,先分诊再执行,不预先创建分支。触发方式包括“prepare this external PR”“review PR #N”,或在 pr/<owner>/<PR_NUMBER> 分支上调用。
主要能力:第一阶段只读分诊,用 gh pr view 获取 number、title、author、baseRefName、maintainerCanModify、mergeable、mergeStateStatus、additions、deletions、changedFiles、commits 等元数据,推导 canPushToHead、baseBranch、isDraft、mergeable、mergeReady、commitCount、messyHistory、sizeBucket 等信号,并给出 squash 建议,输出分诊报告。第二阶段只问两个问题:是否需要先加改动(决定路径 A/B/C),以及合并策略(--squash、--merge、--rebase)。第三阶段非交互执行并回显命令。
使用方式:路径 A 为审查后直接合并,使用 gh pr checkout 与 gh pr merge <PR_NUMBER> --<strategy>;路径 B 在 canPushToHead 为真时直接推送到贡献者分支,git push 后合并;路径 C 在无法推送或需隔离返工时创建 reviews/<slug>-pr-<PR_NUMBER> 暂存分支,重定向原 PR 基础分支,合并后再向原基础分支创建最终 PR 并评论原 PR。
限制与硬性规则:不得硬编码 main,必须读取 baseRefName;第一阶段不得创建 reviews/ 分支;不得对贡献者分支强推;草稿 PR 拒绝合并;mergeable 为 CONFLICTING 或 mergeStateStatus 非 CLEAN 时须先停止并上报。gh pr edit --base 可能打印 Projects (classic) 弃用警告,仅为提示,不影响基础分支变更。具体命令与参数以资料为准。