mcpField
G
gh-create-pr

gh-create-pr

github.com/bastani-inc开发870170 次安装今天更新
代码仓库

关于 gh-create-pr

gh-create-pr 是用于提交代码并创建或更新 GitHub 拉取请求的技能。它涵盖变更提交、推送、差异审查及按 Conventional Commits 格式生成标题和描述。

主要功能

  1. 01检查仓库状态与现有 PR
  2. 02按 Conventional Commits 提交变更
  3. 03推送分支并设置上游跟踪
  4. 04审阅分支差异
  5. 05生成并创建或更新 PR

适用场景

  1. 01将本地变更提交并发布为 PR
  2. 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"

此命令的作用

  1. 暂存并提交更改,使用 Conventional Commits 格式(遵循 gh-commit 技能约定)
    • 如果存在未暂存的更改,使用恰当的 Conventional Commits 消息将其暂存并提交
    • 如果存在多个不同的逻辑更改,分别创建提交
    • 始终在提交中注明 AI 辅助代码的作者身份
  2. 将分支推送到远程仓库
    • 如果当前分支是默认分支(main/master),请先创建一个新的功能分支
    • 使用 git push -u origin <branch> 设置上游跟踪
  3. 分析分支相对于基准分支的所有更改
    • 运行 git diff origin/<default-branch>...HEAD,检查全部更改范围
    • 阅读相关的已修改文件,了解更改的上下文和影响
  4. 生成 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,提炼出概括整体主题的更高层次标题
  5. 生成 PR 描述,采用下方 PR 描述模板中定义的结构
  6. 创建或更新拉取请求
    • 如果此分支没有现有 PR:gh pr create --title "TITLE" --body "DESCRIPTION"
    • 如果已有 PR:gh pr edit <number> --title "TITLE" --body "DESCRIPTION"

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,确保内容准确
  • 如果 gh CLI 尚未通过身份验证,请先提示用户运行 gh auth login

评论

支持 Markdown