現在のブランチの変更内容を分析し、日本語でPRを作成してください。
手順
Step 1: 状態確認
- •
git statusで未コミットの変更がないか確認(あればコミットを促す) - •
git log --oneline main..HEADでブランチの全コミットを確認 - •
git diff main...HEAD --statでmainとの差分の概要を確認 - •コミットが0件の場合はその旨を伝えて終了
Step 1.5: 差分が大きい場合の対策
git diff main...HEAD --stat の結果、変更ファイルが10個以上または差分が500行以上の場合は、コンテキストの圧迫を避けるため以下の方法で差分を確認する:
- •
git diff main...HEADの全文を一度に読まず、--statとコミットメッセージから全体像を把握する - •必要に応じてファイル単位で
git diff main...HEAD -- <path>を使い、重要な変更のみ詳細を確認する - •各コミットメッセージ(
git log main..HEAD --format="%h %s")を主な情報源として活用する
差分が小さい場合は git diff main...HEAD で全体を確認して問題ない。
Step 2: 秘密情報の検出(PR作成前に必ず実行)
git diff main...HEAD に以下が含まれていないか検査する。1つでも検出した場合はPR作成を中断し、該当箇所をユーザーに報告する:
- •APIキー・トークンのパターン(
sk-,ghp_,AKIA, 32文字以上の英数字文字列など) - •ハードコードされた秘密情報(パスワード、接続文字列など)
- •
.envファイルの追加・変更
Step 3: 関連issueの確認
gh issue list や現在のブランチ名から関連issueを推測する。関連issueが見つかった場合はbodyに含める。見つからない場合はユーザーに確認する(なければスキップ可)。
Step 4: 破壊的変更の検出
差分に以下のような破壊的変更が含まれていないか確認する:
- •APIエンドポイントの削除・パス変更
- •リクエスト/レスポンスのフィールド削除・型変更
- •公開インターフェース・構造体のシグネチャ変更
- •DB マイグレーション(カラム削除・型変更)
- •環境変数の追加・削除・リネーム
破壊的変更がある場合はbodyの「破壊的変更」セクションに記載する。
Step 5: PRタイトルとbodyの生成
全コミットと差分を分析し、以下の形式でPR内容を生成する:
タイトル:
- •70文字以内
- •プレフィックスは英語の慣例に従う:
feat:,fix:,docs:,refactor:,test:,chore:,ci: - •形式:
<prefix>: <日本語の説明>
body:
text
## 概要 <PRの内容と理由の簡潔な説明(1-3文)> ## 変更内容 - <主な変更点の箇条書き> ## 破壊的変更 - <破壊的変更がある場合のみ記載。影響範囲と移行方法を明記する> ## 関連issue - closes #<issue番号>(または refs #<issue番号>) ## テスト - <変更のテスト方法(ユニットテスト、手動テスト等)> ## レビューポイント - <レビュアーが注目すべき観点(任意、必要な場合のみ)>
- •「破壊的変更」セクションは該当がなければ省略する
- •「関連issue」セクションは該当がなければ省略する
- •「レビューポイント」セクションは必要な場合のみ記載する
Step 6: 通常PRかドラフトPRかの確認
ユーザーに通常のPRとドラフトPRのどちらで作成するかを確認する。以下の場合はドラフトPRを提案する:
- •WIP(作業途中)のブランチである
- •コミットメッセージに
wipやWIPが含まれる - •ユーザーがレビュー前に確認したい旨を伝えている
Step 7: 内容の確認
生成したPRタイトルとbodyをユーザーに表示し、確認を得る。
Step 8: PR作成
ユーザーの承認後、以下を実行する:
- •リモートにブランチをpush(未pushの場合)
- •
gh pr createでPRを作成(ドラフトの場合は--draftフラグを付与) - •作成されたPRのURLを表示
注意事項
- •ベースブランチは
mainをデフォルトとする(ユーザーが別途指定した場合はそれに従う) - •未コミットの変更がある場合はPR作成前にコミットを促す
- •必ずユーザーの確認を取ってからPRを作成する