gh-create-pr について
gh-create-prは、変更をコミットし、GitHubのプルリクエストを作成または更新するスキルです。リポジトリの確認、ブランチのプッシュ、差分レビュー、Conventional Commits形式のタイトルと説明の作成を行います。
主な機能
- 01リポジトリの状態と既存PRの確認
- 02Conventional Commits形式での変更のコミット
- 03ブランチのプッシュと上流追跡の設定
- 04ブランチ差分のレビュー
- 05PRの作成または更新
活用シーン
- 01ローカルの変更をプルリクエストとして提出
- 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"
このコマンドの動作
- 変更をステージしてコミットする(gh-commit スキルの規約に従い、Conventional Commits 形式を使用)
- ステージされていない変更がある場合は、適切な Conventional Commits 形式のメッセージを付けてステージし、コミットします
- 論理的に異なる変更が複数ある場合は、それぞれ別々にコミットします
- コミットでは、AI によるコード作成の貢献を必ず明記します
- ブランチをリモートリポジトリにプッシュする
- 現在のブランチがデフォルトブランチ(main/master)の場合は、先に新しい機能ブランチを作成します
git push -u origin <branch>を使用して、上流ブランチを設定します
- ベースブランチとの差分に基づいて、ブランチ内のすべての変更を分析する
git diff origin/<default-branch>...HEADを実行し、変更の全体像を確認します- 変更された関連ファイルを読み、変更の背景と影響を把握します
- Conventional Commits 形式に従って PR タイトルを作成する:
- 形式:
<type>[optional scope]: <description> - タイプ:
feat、fix、docs、style、refactor、perf、test、build、ci、chore、revert - 破壊的変更の場合は、タイプまたはスコープの後に
!を付けます: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 に意味のある説明がある場合は、完全に置き換えるのではなく、内容を補足します。
- Issue の参照:ブランチ名に Issue 番号(例:
feat/123-add-auth)が含まれている場合は、説明にCloses #123またはRefs #123を記載します。 - 全体を考慮した分析:PR タイトルでは、個々のコミットを列挙するのではなく、変更全体の目的を表します。
- 単一コミットの PR:PR タイトルは、コミットメッセージと同じにできます。
- 複数コミットの PR:変更全体の範囲を表す、より包括的なタイトルを作成します。
- 説明を読みやすくするため、Markdown 形式を使用します。
重要な注意事項
- デフォルトでは、コード品質を確保するために、
prek.tomlで定義された pre-commit チェックが実行されます- 重要:pre-commit チェックをスキップしないでください
- コミットメッセージでは、AI によるコード作成の貢献を必ず明記します
- タイトルと説明を作成する前に、必ず差分を確認して内容が正確であることを確かめます
ghCLI が認証されていない場合は、まずgh auth loginを実行するようユーザーに促します
コメント
Markdown 対応