レビュアーが活用できるPR説明文を作成する
目的:レビュアーが2分で何を確認すべきかを判断でき、将来の読者が変更の理由を理解できるようにする。
情報収集
- ベースブランチを見つけ、
git log --oneline <base>..HEADとgit diff --stat <base>...HEADを実行し、差分を読み取る。 - 理由を探す:コミットやブランチ名に含まれる関連Issueやチケット番号、ユーザーのリクエスト、差分に追加されたコメント。理由がこれらのいずれにもない場合はユーザーに確認し、動機をでっち上げてはいけない。
- テストされた内容を確認する:差分内のテストファイル、ユーザーが実行したコマンド。テストが実行されていない場合は、その旨を明記する。
.github/pull_request_template.mdまたはPULL_REQUEST_TEMPLATEが存在するか確認する。存在する場合は、以下の構造を使わずにそのテンプレートを埋める。
構造
<Title: 命令形、70文字以内、ファイル名ではなく振る舞いの変更を表す>
## Why
<問題やリクエストを1〜3文で。Issueがあればリンクする。>
## What changed
- <領域ごとにグループ化した振る舞いレベルの箇条書き。ファイル一覧ではない。>
## How to review
- <ファイルまたは領域から始める。残りはそれに続く。>
- リスクのある部分:<最も間違いやすい箇所とその理由>。
- 意図的に変更していない部分:<レビュアーが期待しても見つからないもの>。
## Testing
- <実行した正確なコマンドと結果。>
- <手動の手順と確認した内容。該当する場合は「未テスト:...」と記載。>
## Rollout / risk
<移行、設定、フィーチャーフラグ、互換性、ロールバック方法。「なし」は本当に該当する場合のみ。>
ルール
- 差分が実際に行っていることを説明し、あなたが望むことを説明してはいけない。下書き後に差分を再読し、裏付けのない主張は削除すること。
- すべてのファイルを列挙しない。振る舞いの変更、新しい設定、新しい依存関係、削除されたコードは列挙すること。
- 余計な言葉は使わない(「このPRは...を目的としています」など)。リポジトリで使用されていない限り、絵文字は使わない。
- スクリーンショットや出力例:どこにあると役立つかを示す。見ていないスクリーンショットを説明してはいけない。
- タイトルと本文はコピーできるようにコードブロックで出力する。明示的に依頼がない限り
gh pr createを実行しない。