Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →基于 Git 变更分析自动创建 PR。「创建 PR」「提交 PR」「开 pull request」「提交审查」等触发。
.claude/skills/wasabeef-git-pr-b29b09/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 252% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 58% | 0% |
> 不再推荐:请优先使用 /pr-create-smart 生成高质量的 PR 描述草稿,然后使用 gh/GUI 创建 PR。本命令属于“端到端自动创建 PR(保留模板、自动打标签、创建 Draft)”的旧方案,仅为兼容保留。
基于 Git 变更分析的自动 PR 创建,实现高效的 Pull Request 工作流程。
bash# 基于变更分析的自动 PR 创建 git add . && git commit -m "feat: 实现用户认证功能" "分析变更内容并使用适当的描述和标签创建 Draft PR" # 保留现有模板的更新 cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md "完全保留模板结构并补充变更内容" # 逐步提升质量 gh pr ready "质量确认完成后,更改为 Ready for Review"
bash# 1. 创建分支并提交 git checkout main && git pull git checkout -b feat-user-profile git add . && git commit -m "feat: 实现用户档案功能" git push -u origin feat-user-profile # 2. PR 创建 "请按以下步骤创建 PR: 1. 使用 git diff --cached 确认变更内容 2. 使用 .github/PULL_REQUEST_TEMPLATE.md 创建描述 3. 从变更内容选择最多 3 个适当的标签 4. 创建 Draft PR(保留 HTML 注释)" # 3. CI 确认后转为 Ready "CI 通过后将 PR 更改为 Ready for Review"
bash# 遵循准则的命名规则: {type}-{subject} git checkout main git pull git checkout -b feat-user-authentication # 确认分支 (显示当前分支名) git branch --show-current
bash# 暂存变更 git add . # 遵循准则的提交消息 git commit -m "feat: 实现用户认证 API"
bash# 首次推送 (设置 upstream) git push -u origin feat-user-authentication # 后续推送 git push
步骤 1: 分析变更内容
bash# 获取文件变更 (确认已暂存的变更) git diff --cached --name-only # 内容分析 (最多 1000 行) git diff --cached | head -1000
步骤 2: 自动生成描述
bash# 模板处理优先级 # 1. 现有 PR 描述 (完全保留) # 2. .github/PULL_REQUEST_TEMPLATE.md # 3. 默认模板 cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md # 保留 HTML 注释·分隔线,仅补充空白部分
步骤 3: 自动选择标签
bash# 获取可用标签 (非交互式) "从 .github/labels.yml 或 GitHub 仓库获取可用标签,根据变更内容自动选择适当的标签" # 通过模式匹配自动选择 (最多 3 个) # - 文档: *.md, docs/ → documentation|docs # - 测试: test, spec → test|testing # - Bug 修复: fix|bug → bug|fix # - 新功能: feat|feature → feature|enhancement
步骤 4: 通过 GitHub API 创建 PR(保留 HTML 注释)
bash# PR 创建 "使用以下信息创建 Draft PR: - 标题: 从提交消息自动生成 - 描述: 使用 .github/PULL_REQUEST_TEMPLATE.md 适当填写 - 标签: 从变更内容自动选择 (最多 3 个) - 基础分支: main - 完全保留 HTML 注释"
方法 B: GitHub MCP(备用)
javascript// 保留 HTML 注释的 PR 创建 mcp__github__create_pull_request({ owner: "organization", repo: "repository", base: "main", head: "feat-user-authentication", title: "feat: 实现用户认证", body: prBodyContent, // 包含 HTML 注释的完整内容 draft: true, maintainer_can_modify: true, });
*.md, README, docs/ → documentation|docs|doctest, spec → test|testing.github/, *.yml, Dockerfile → ci|build|infra|opspackage.json, pubspec.yaml → dependencies|depsfix|bug|error|crash|修复 → bug|fixfeat|feature|add|implement|新功能|实现 → feature|enhancement|featrefactor|clean|重构 → refactor|cleanup|cleanperformance|perf|optimize → performance|perfsecurity|secure → security.github/PULL_REQUEST_TEMPLATE.mdtext{type}-{subject} 示例: - feat-user-profile - fix-login-error - refactor-api-client
text{type}: {description} 示例: - feat: 实现用户认证 API - fix: 修复登录错误 - docs: 更新 README
.github/PULL_REQUEST_TEMPLATE.md 结构<!-- Copilot review rule --> 等<!-- ... -->--- 等结构重要: GitHub CLI (gh pr edit) 会自动转义 HTML 注释,在 Shell 处理中可能混入 EOF < /dev/null 等非法字符串。
根本解决方案:
bash# 变更后重新提交 git add . git commit -m "fix: 基于审查反馈的修正" git push
gh pr edit 会转义 HTML 注释,混入非法字符串--field 选项进行适当的转义处理.github/labels.yml 定义外的标签gh pr checks 确认状态gh pr readyOther measured skills in the registry, with their headline benchmark lift.