GH PR 作成/更新
前提
- PR操作は
ghCLI を使う。 - 現在のリポジトリで作業する。
.github/pull_request_template.mdがあればその構成に従う。なければ「背景・対応内容・補足・レビューしてほしい点」を使う。
ワークフロー
ブランチの状態を確認
- pushされいてるか確認し、必要があればユーザーに確認する
必要情報の収集
- ユーザーが提示した情報(タイトル、ベースブランチ、ラベル、ドラフト指定など)は反映する。
- ベースブランチ指定がなければ
mainを使う。 - ベースブランチ指定がある場合(例:
topic/*、release/*)はそれに従う。 - ドラフト指定がなければドラフトにする。
PR本文の作成
- テンプレートがある場合、日本語で記入し構成は維持する。
- テンプレートがない場合、日本語セクションを作る。
- 背景
- 対応内容
- 補足
- レビューしてほしい点
- ユーザーの要望があればケース別の変更内容を含める。
- 本文はPR内の差分すべてから生成する。
- 実行したテストは箇条書きで記載する。
- Markdownの見出し(最低でも
##)を必ず含める。 - PR本文は
\nに依存せず、ヒアドキュメントで作り--body-file -に渡す。 gh pr create --body "..."/gh pr edit --body "..."のような直書きは使わない(バッククォート等のシェル展開事故を防ぐため)。
PR作成
--body-file -のヒアドキュメントを使う。cat <<'EOF' | gh pr create --draft --base <base> --head <current-branch> --title <title> --body-file -## 背景...EOF
- ラベル指定があれば
--label codexのように追加する。
PR更新
--body-file -のヒアドキュメントを使う。cat <<'EOF' | gh pr edit <number|url> --title <title> --body-file - --base <base> --add-label <label>## 背景...EOF
判断ルール
- 既存PRがある、または更新依頼の場合は
gh pr editを優先する。 - PRの有無が不明なら
gh pr view --json number,urlを実行し、結果に応じて判断する。 - 本文は簡潔・事実ベースで、無関係な変更は書かない。
例
- "これまでの内容でmainに向けてPRを作って"
- "ここまでの内容を元にPRを更新して"
- "今回行なった作業を元にPRを更新して"