创建 Pull Request¶
输入: $ARGUMENTS — 可选。可能包含基础分支名或标志(例如:--draft)。
解析 $ARGUMENTS:
- 提取已识别的标志(--draft)
- 将剩余的非标志文本作为基础分支名处理
- 如果未指定,基础分支默认为 main
阶段 1 — VALIDATE¶
检查前提条件:
| 检查 | 条件 | 失败时的操作 |
|---|---|---|
| 不在基础分支上 | 当前分支 ≠ base | 停止: “请首先切换到功能分支。” |
| 工作目录干净 | 没有未提交的更改 | 警告: “存在未提交的更改。请提交或暂存。” |
| 存在领先提交 | git log origin/<base>..HEAD 非空 |
停止: “没有领先于 <base> 的提交。没有可创建 PR 的内容。” |
| 不存在现有 PR | gh pr list --head <branch> --json number 为空 |
停止: “PR 已存在: #gh pr view <number> --web 打开。” |
如果所有检查通过,则继续。
阶段 2 — DISCOVER¶
PR 模板¶
按顺序查找 PR 模板:
.github/PULL_REQUEST_TEMPLATE/目录 — 如果存在,列出文件并让用户选择(或使用 default.md).github/PULL_REQUEST_TEMPLATE.md.github/pull_request_template.mddocs/pull_request_template.md
如果找到,读取它并用于 PR 正文的结构。
提交分析¶
分析提交以确定以下内容:
- PR 标题: 使用带类型前缀的 conventional commit 格式 — feat: ...、fix: ... 等
- 如果存在多种类型,使用占主导的类型
- 如果是单个提交,直接使用该提交信息
- 变更摘要: 按类型/领域对提交进行分组
文件分析¶
将变更文件分类:源代码、测试、文档、配置、迁移。
计划工件¶
检查由 /plan-prd、/plan 或旧版 PRP 工作流创建的关联工件:
- .claude/prds/ — 此 PR 实现里程碑的 PRD
- .claude/plans/ — 此 PR 中执行的计划
- .claude/PRPs/prds/ — 旧版 PRP PRD
- .claude/PRPs/plans/ — 旧版 PRP 实现计划
- .claude/PRPs/reports/ — 旧版 PRP 实现报告
如果存在,在 PR 正文中引用。
阶段 3 — PUSH¶
如果由于分歧导致推送失败:
如果发生变基冲突,停止并通知用户。
阶段 4 — CREATE¶
有模板¶
如果在阶段 2 中找到 PR 模板,使用提交和文件分析填写每个部分。保留模板的所有部分 — 对于不适用的部分,不要删除,而是标记为 “N/A”。
无模板¶
使用此默认格式:
## Summary
<このPRが何をしてなぜかの1-2文の説明>
## Changes
<領域別にグループ化された変更の箇条書きリスト>
## Files Changed
<変更タイプ付きの変更ファイルのテーブルまたはリスト: Added/Modified/Deleted>
## Testing
<変更のテスト方法の説明、または"Needs testing">
## Related Issues
<Closes/Fixes/Relates to #Nでリンクされたイシュー、または"None">
创建 PR¶
gh pr create \
--title "<PRタイトル>" \
--base <base-branch> \
--body "<PR本文>"
# $ARGUMENTSから--draftフラグがパースされた場合は--draftを追加
阶段 5 — VERIFY¶
gh pr view --json number,url,title,state,baseRefName,headRefName,additions,deletions,changedFiles
gh pr checks --json name,status,conclusion 2>/dev/null || true
阶段 6 — OUTPUT¶
向用户报告:
PR #<number>: <title>
URL: <url>
Branch: <head> → <base>
Changes: +<additions> -<deletions> across <changedFiles> files
CI Checks: <ステータスサマリー or "pending" or "none configured">
Artifacts referenced:
- <PR本文でリンクされたPRD/計画>
Next steps:
- gh pr view <number> --web → ブラウザで開く
- /code-review <number> → PRをレビュー
- gh pr merge <number> → 準備ができたらマージ
边缘情况¶
- 没有
ghCLI: 停止: “需要 GitHub CLI (gh)。安装: https://cli.github.com/” - 未认证: 停止: “请先运行
gh auth login。” - 需要强制推送: 如果远程已分歧并执行了变基,使用
git push --force-with-lease(不要使用--force)。 - 多个 PR 模板: 如果
.github/PULL_REQUEST_TEMPLATE/中有多个文件,列出它们并让用户选择。 - 大型 PR(超过 20 个文件): 警告 PR 大小。如果变更可以逻辑分离,建议拆分。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC