JINSテックブログ
🌊

GitHub Coding Agentを使ってコードレビューを効率化してみた

に公開

この記事は、JINS Advent Calendar 2025 の 14日目 の記事です。

はじめに

コードレビューって大変ですよね。

フロントエンド/バックエンドに関係なく、
コーディング規約のチェック、アーキテクチャ設計の妥当性確認、エラーハンドリングの見落としがないか…
確認すべきポイントは本当に多岐にわたります。
しかも、レビューの段階で不具合や設計上の問題を見逃してしまうと、
「あのレビューで気づけなかったのか?」 と責任がレビュアーに向きがちです。

そのプレッシャーから、
「これで本当に問題ないだろうか…」と眠れない夜を経験したエンジニアも少なくないはずです。

私たちのチームでは、GitHub Coding Agentを活用することで、コードレビューの効率を大幅に向上させることができました。

レビュアーの抱える悩み

悩みとしては下記の通りでした。

  • レビュー量が膨大

    • mainブランチへのマージ前に必ず複数人のレビューが必要
    • 1日に5〜10件のPRが積み上がることも
  • PR説明が不足していると、レビューが困難

    • 何を変更したのか?
    • なぜその変更が必要なのか?
    • どんな影響があるのか?
  • 設計思想やアーキテクチャ逸脱の指摘が負担

    • 「このAPIはBFF経由で呼ぶべきでは?」
    • 「認証トークンの保存方法が間違っています」
    • こうした指摘を毎回するのは大変
  • 命名規則・スタイル統一が難しい

    • カラム名 / API名 / コンポーネント名など、命名に一貫性がない
    • Lintを導入しても、どうしても漏れる
    • レビューのたびに細かい指摘をするのは心理的負担
  • ビジネスルールの正当性を判断しづらい

    • 処理ロジックが仕様と合っているか確認するのに時間がかかる
    • ドメイン知識が必要で、レビュアーを選ぶ

【結論】CodingAgentでどこまで解決できる?

結論から言うと、技術的なレビューはほぼ自動化でき、ビジネスロジックのレビューには人間が必要です。
CodingAgentを使えば、自動でPRの要約を作成してくれるので、レビュイー側の負担も減らすことが可能です。

悩み Copilotで解決できる? 理由
レビュー量が膨大&PR説明が不足しているとレビュー困難 PR要約・差分抽出でレビュワー負担を大幅軽減
PR説明が不足しているとレビュー困難 PR要約、背景推測、説明文生成が可能
設計思想やアーキテクチャ逸脱の指摘が負担 構造的指摘は可能だが完全自動化は不可
命名規則・スタイル統一が難しい 命名改善・Lint補完を自動提案
ビジネスルールの正当性判断が難しい ドメイン知識が必要。仕様文書も完璧でないため。

GitHub Coding Agentとは

GitHub Coding Agentは、Github上で複雑なタスクを自律的に実行できる機能です。通常のGitHub Copilotのコード補完機能とは異なり、複数のファイルをまたいだ分析やプロジェクト全体の理解が可能です。

Coding Agentの特徴

  1. マルチステップタスクの実行
    • ファイル検索、読み込み、分析を自動実行
    • コードベース全体の理解
  2. 指示書(Instructions)の活用
    • .github/instructions/ ディレクトリに配置
    • プロジェクト固有のルールを定義
  3. コンテキスト認識
    • ワークスペース全体を理解
    • 関連ファイルを自動的に参照

導入手順

Step 1: GitHub Coding Agentの有効化

Organization > Copilot > Policies で有効化します。

Step 2: プロジェクト構造の整理

コードレビューの指示は .github/copilot-instructions.md に記載します。

Copilot Agentはこのファイルを自動的に読み込み、プロジェクト固有のルールに基づいてレビューを実施します。

注意点としては、この指示書をリポジトリに適用するにはmainブランチ(defaultブランチ)に適用する必要があります。

.github/
├── copilot-instructions.md             # コードレビュー指示の中心ファイル
└── instructions/
    ├── api-communication.instructions.md
    ├── authentication-security.instructions.md
    ├── component-design.instructions.md
    ├── development-checklist.instructions.md
    ├── development-guidelines.instructions.md
    ├── naming-conventions.instructions.md
    ├── prohibited-practices.instructions.md
    ├── project-structure.instructions.md
    ├── styling-guidelines.instructions.md
    ├── system-architecture.instructions.md
    └── technology-stack.instructions.md

Step 3: レビュー指示書の作成

.github/copilot-instructions.md の例は下記の通りです。
デフォルトではPR要約など英語で実行されますが、「必ず日本語でレビューコメントを記述してください」と書いておくと日本語で要約してくれます。

## GitHub Copilot Review Instructions
- **レビューコメント**: 必ず日本語でレビューコメントを記述してください
- **指摘事項**: セキュリティ、パフォーマンス、コード品質に関する指摘は日本語で説明
- **改善提案**: コードの改善提案は具体的な日本語のコメントで提供

## 🚫 禁止事項 (Prohibited Practices)

1. **セキュリティ**:
   - ローカルストレージへのトークン保存
   - BFFサーバの直接公開
   - 認証なしでの保護されたAPI呼び出し

2. **アーキテクチャ**:
   - WebサーバからのDB直接アクセス
   - Next.jsサーバサイドからのBFF呼び出し

3. **コード品質**:
   - `any`型の濫用
   - console.logの本番環境残存
   - 未処理のPromise

4. **画像・UIコンポーネント**:
   - `<img>`要素の直接使用(next/imageのImageコンポーネント使用必須)
   - Material-UI(MUI)の使用(Radix UI使用必須)

使い方

Copilotをレビュアーに追加

まずはレビュアーに追加します。

追加後、一定時間経過後にPRのサマリーを表示してくれます。

さらにコードに指摘をしてくれます。

Copilotに修正させる

@copilotでメンション付きでコメントすると、現在のプルリクに対してサブプルリクエストを作成して、修正くれます。
Implement Suggestionをクリックすると@copilotで自動コメントを作成してくれます。

試しにImplement Suggestion押してサブプルリクエストを作成してみましょう。

サブプルリクが作成されました。エディターで編集することなく、コードを修正できるはとても便利ですね!

さいごに

今回紹介した内容はまだ運用初期段階ですが、Coding Agentの可能性は非常に大きいと感じています。
これからも試行錯誤しながら、より効率的で品質の高い開発体制をつくっていきたいと思います。
同じような課題を感じているチームの参考になれば幸いです。

JINSテックブログ
JINSテックブログ

Discussion