PR Code Review
GitHubのPull Requestに対して包括的なコードレビューを実施し、レビュー結果をマークダウンファイルとして出力するスキル。
ワークフロー概要
- •PR情報の取得: ghコマンドでPRの詳細とdiffを取得
- •コード分析: 複数の観点からコードを分析
- •レビュー作成: 構造化されたレビューレポートを生成
- •ファイル出力: レビュー結果をマークダウンファイルとして保存
Step 1: PR情報の取得
PR URLまたはPR番号から情報を取得する。
bash
# PR詳細の取得 gh pr view <PR番号> --repo <owner/repo> # PRのdiffを取得 gh pr diff <PR番号> --repo <owner/repo> # PRのファイル一覧を取得 gh pr view <PR番号> --repo <owner/repo> --json files
ユーザーがPR URLを指定した場合:
URLからowner/repoとPR番号を抽出する(例: https://github.com/owner/repo/pull/123)。
ユーザーがPR番号のみを指定した場合: 現在のディレクトリのリモートリポジトリを使用するか、リポジトリ名を確認する。
Step 2: コードレビュー観点
以下の観点からコードをレビューする。詳細はreferences/review-guidelines.mdを参照。
2.1 セキュリティ
- •入力値バリデーション
- •インジェクション脆弱性(SQL、XSS、コマンド)
- •認証・認可の実装
- •機密情報の取り扱い
2.2 パフォーマンス
- •N+1クエリ問題
- •不要なループや計算
- •メモリ効率
- •非同期処理の適切な使用
2.3 可読性・保守性
- •命名規則の一貫性
- •関数・クラスの責務分離
- •コメントの適切さ
- •コードの重複
2.4 エラーハンドリング
- •例外処理の適切さ
- •エラーメッセージの明確さ
- •リソースのクリーンアップ
2.5 テスト
- •テストカバレッジ
- •エッジケースの考慮
- •テストの可読性
2.6 言語・フレームワーク固有のベストプラクティス
- •言語のイディオム
- •フレームワークの規約
- •型安全性
Step 3: レビューレポート作成
以下のテンプレートに従ってレビューレポートを作成する。
markdown
# PR Code Review Report ## PR情報 - **PR**: #[番号] [タイトル] - **リポジトリ**: [owner/repo] - **作成者**: [author] - **レビュー日時**: [YYYY-MM-DD HH:MM] ## サマリー [PRの概要と全体的な評価を1-2段落で記述] ### 評価 | カテゴリ | 評価 | |---------|------| | セキュリティ | ✅ 良好 / ⚠️ 要確認 / ❌ 要修正 | | パフォーマンス | ✅ 良好 / ⚠️ 要確認 / ❌ 要修正 | | 可読性・保守性 | ✅ 良好 / ⚠️ 要確認 / ❌ 要修正 | | エラーハンドリング | ✅ 良好 / ⚠️ 要確認 / ❌ 要修正 | | テスト | ✅ 良好 / ⚠️ 要確認 / ❌ 要修正 | ## 指摘事項 ### 🔴 要修正(Critical) [マージ前に修正が必要な問題] #### [問題タイトル] - **ファイル**: `path/to/file.ext:行番号` - **問題**: [具体的な問題の説明] - **提案**: [修正案] ```[言語] // 修正前 [問題のあるコード] // 修正後(提案) [修正案のコード]
🟡 要確認(Warning)
[確認・検討が必要な問題]
🟢 提案(Suggestion)
[あれば良い改善点]
良い点
[PRの良い点を箇条書きで記述]
質問・確認事項
[実装意図の確認が必要な点を箇条書きで記述]
code
## Step 4: ファイル出力 レビュー結果を以下のパスに保存する。
./pr-review-[PR番号]-[YYYYMMDD-HHMM].md
code
**例**: `./pr-review-123-20240115-1430.md` ## 使用例 **ユーザーリクエスト例:** - 「このPRをレビューして: https://github.com/owner/repo/pull/123」 - 「PR #45 のコードレビューをお願い」 - 「owner/repo の PR 78 をレビュー」 **実行手順:** 1. ghコマンドでPR情報とdiffを取得 2. 変更されたファイルを分析 3. 各観点からレビューを実施 4. レビューレポートをマークダウンファイルとして出力 5. レビュー結果のサマリーをユーザーに報告 ## 注意事項 - レビュー結果はGitHubにコメントせず、ローカルファイルに保存する - 大きなPRの場合は、重要な変更に焦点を当てる - コードの文脈を理解するため、必要に応じて関連ファイルも読む - 指摘は具体的かつ建設的に行う