GitHub Copilot コードレビューのベストプラクティス

codingbeginner

# GitHub Copilot を使ったコードレビューのベストプラクティス

私は半年以上にわたり、コードレビューにGitHub Copilotを使用してきましたが、PRレビューのアプローチが一変したと自信を持って言えます。多くの開発者はCopilotをコード作成に使うことを知っていますが、そのコードレビュー機能は隠れたスーパーパワーです。このチュートリアルでは、数え切れないプルリクエストを通じて磨き上げたワークフローとテクニックを紹介します。

## 前提条件

始める前に、以下の準備が整っていることを確認してください:

- IDE(VS Code、JetBrains、Neovim)でGitHub Copilotが有効化されていること

- GitHub Copilotのサブスクリプション(個人、ビジネス、エンタープライズ)

- Gitとプルリクエストの基本的な知識

- Node.js 18+ または Python 3.8+(使用する例のため)

## ステップ1:コードレビュー環境のセットアップ

まず、最適なレビュー性能のためにCopilotを設定します。以下の設定が最も効果的だとわかりました:

```json

// VS Codeのsettings.json内

{

"github.copilot.enable": {

"*": true,

"plaintext": true

},

"github.copilot.editor.enableAutoCompletions": false,

"github.copilot.inlineSuggest.enable": true

}

```

**プロのヒント:** レビューモードでは自動補完を無効にして、気が散るのを防ぎましょう。意図的に提案をトリガーします。

リポジトリに `.github/copilot-instructions.md` ファイルを作成して、レビューのコンテキストを設定します:

```markdown

# コードレビューガイドライン

- セキュリティの脆弱性に焦点を当てる

- パフォーマンスのボトルネックをチェックする

- エラーハンドリングが包括的であることを確認する

- エッジケースのテストカバレッジを検証する

```

![スクリーンショット:VS CodeのCopilot設定画面](images/tutorials/how-to-use-github-copilot-for-code-review-step-1.webp)

## ステップ2:プルリクエストをローカルでレビューする

Copilotをコードレビューに活用する最も強力な方法は、PRをローカルでチェックアウトすることです。私のワークフローは以下の通りです:

```bash

# PRブランチを取得

git fetch origin pull/123/head:review-branch-123

git checkout review-branch-123

# Copilotが有効なIDEでファイルを開く

code .

```

ここで、コードを直線的に読む代わりに、Copilotを使って特定のセクションを分析します:

1. **レビューしたいコードブロックを選択**

2. **`Ctrl+I`**(Macの場合は`Cmd+I`)を押してCopilot Chatを開く

3. **以下のプロンプトテンプレートを使用:**

```

このコードをレビュー:

- 潜在的なバグや論理エラー

- セキュリティの脆弱性(SQLインジェクション、XSSなど)

- パフォーマンスの改善点

- コードスタイルの一貫性

- 処理されていないエッジケース

```

![スクリーンショット:Copilot Chatで選択したコードをレビュー中](images/tutorials/how-to-use-github-copilot-for-code-review-step-2.webp)

**実際の例:** このExpress.jsルートハンドラーをレビューしました:

```javascript

app.get('/api/users/:id', async (req, res) => {

const user = await User.findById(req.params.id);

res.json(user);

});

```

Copilotのレビューで見つかった問題:

- エラーハンドリングの欠如(try-catchがない)

- `:id`に対する入力バリデーションがない

- `User`モデルがロードされていない場合の競合状態の可能性

**よくある落とし穴:** Copilotにファイル全体を一度にレビューさせないでください。より焦点を絞ったフィードバックを得るために、論理的なチャンク(50~100行)に分割しましょう。

## ステップ3:Copilotで差分ビューを分析する

GitHubの差分ビューで変更をレビューする際は、以下のテクニックを使用します:

1. **PRのFiles Changedタブを開く**

2. **特定のファイルの差分全体をコピー**

3. **以下のプロンプトとともにCopilot Chatに貼り付け:**

```

このコード差分を分析。焦点を当てる点:

- バグを引き起こす可能性のある変更行

- 新しい依存関係やインポート

- 他の機能を壊す可能性のある削除コード

- 変更に対するテストカバレッジ

- 後方互換性の問題

```