关于 gh-create-pr
gh-create-pr 是用于提交代码并创建或更新 GitHub 拉取请求的技能。它涵盖变更提交、推送、差异审查及按 Conventional Commits 格式生成标题和描述。
主要功能
- 01检查仓库状态与现有 PR
- 02按 Conventional Commits 提交变更
- 03推送分支并设置上游跟踪
- 04审阅分支差异
- 05生成并创建或更新 PR
适用场景
- 01将本地变更提交并发布为 PR
- 02为多次提交整理 PR 标题与说明
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bastani-inc/ atomic --skill gh-create-pr安装后在 Claude Code 中输入/gh-create-pr确认已加载。
详细介绍
创建拉取请求
提交更改、推送到远程仓库,并创建一个标题符合 Conventional Commits 风格且描述详尽的拉取请求:$ARGUMENTS
当前仓库状态
- Git 状态:!
git status --porcelain - 当前分支:!
git branch --show-current - 默认分支:!
git rev-parse --abbrev-ref origin/HEAD 2>/dev/null | sed 's|origin/||' || echo main - 已暂存的更改:!
git diff --cached --stat - 未暂存的更改:!
git diff --stat - 此分支上的近期提交:!
git log --oneline -10 - 此分支的现有 PR:!
gh pr view --json number,title,body 2>/dev/null || echo "No existing PR"
此命令的作用
- 暂存并提交更改,使用 Conventional Commits 格式(遵循 gh-commit 技能约定)
- 如果存在未暂存的更改,使用恰当的 Conventional Commits 消息将其暂存并提交
- 如果存在多个不同的逻辑更改,分别创建提交
- 始终在提交中注明 AI 辅助代码的作者身份
- 将分支推送到远程仓库
- 如果当前分支是默认分支(main/master),请先创建一个新的功能分支
- 使用
git push -u origin <branch>设置上游跟踪
- 分析分支相对于基准分支的所有更改
- 运行
git diff origin/<default-branch>...HEAD,检查全部更改范围 - 阅读相关的已修改文件,了解更改的上下文和影响
- 运行
- 生成 PR 标题,遵循 Conventional Commits 格式:
- 格式:
<type>[可选 scope]: <description> - 类型:
feat、fix、docs、style、refactor、perf、test、build、ci、chore、revert - 对于破坏性更改,在类型或 scope 后加上
!:feat(api)!: change response format - 标题简洁明了(少于 72 个字符)
- 对于包含多个提交的 PR,提炼出概括整体主题的更高层次标题
- 格式:
- 生成 PR 描述,采用下方 PR 描述模板中定义的结构
- 创建或更新拉取请求
- 如果此分支没有现有 PR:
gh pr create --title "TITLE" --body "DESCRIPTION" - 如果已有 PR:
gh pr edit <number> --title "TITLE" --body "DESCRIPTION"
- 如果此分支没有现有 PR:
PR 标题示例
feat(auth): add JWT token refresh endpoint
fix(ui): resolve layout shift on mobile navigation
docs: update API reference for v2 endpoints
refactor(db): migrate from raw SQL to query builder
feat(api)!: change pagination response format
chore(deps): bump TypeScript to 5.x
PR 描述模板
PR 正文使用以下结构。不适用的部分可以省略。
## Summary
[1-2 sentence overview of what this PR does and why]
## Changes
- [Key change 1]
- [Key change 2]
- [Key change 3]
## Breaking Changes
[Describe what breaks and required migration steps]
## Notes
[Additional context, testing instructions, or deployment considerations]
指南
- 尊重现有内容:如果 PR 标题已符合 Conventional Commits 格式,除非标题不准确,否则保持不变。如果 PR 已有有意义的描述,应在其基础上完善,而不是完全替换。
- 问题引用:如果分支名称包含问题编号(例如
feat/123-add-auth),请在描述中使用Closes #123或Refs #123引用。 - 全面分析:PR 标题应概括更改的整体意图,而不只是列出各个提交。
- 单提交 PR:PR 标题可以与提交消息一致。
- 多提交 PR:提炼出概括全部更改范围的更高层次标题。
- 在描述中使用 Markdown 格式,以提高可读性。
重要说明
- 默认情况下,会运行
prek.toml中定义的预提交检查,以确保代码质量- 重要:不要跳过预提交检查
- 始终在提交消息中注明 AI 辅助代码的作者身份
- 生成标题和描述前,始终检查 diff,确保内容准确
- 如果
ghCLI 尚未通过身份验证,请先提示用户运行gh auth login
评论
支持 Markdown