概要
GitHub Copilotは、GitHubとOpenAIが共同開発したAI駆動のコード支援ツールである。
エディタ内でリアルタイムにコードの提案・補完・生成を行い、開発者の生産性を向上させる。
会話型インターフェース (Copilot Chat)、自律的なコード実装 (Agent Mode)、CLIサポート等、コーディング作業のあらゆる場面をカバーする機能を提供する。
特に強力なサポートを提供するプログラミング言語は以下の通りである。
- Python
- JavaScript / TypeScript
- Ruby
- Go
- C# / C++
対応IDEは以下の通りである。
- VS Code
- Visual Studio
- JetBrains IDE
- IntelliJ IDEA、PyCharm、WebStorm等
- Neovim
- Xcode
- Eclipse
プラン
プランの種類
GitHub Copilotは個人・組織の規模や用途に応じて複数のプランが提供されている。
| プラン | 月額料金 | 主な機能・制限 |
|---|---|---|
| Free | 無料 | コード補完: 2,000回/月 Copilot Chat: 50メッセージ/月 基本的なコード提案 |
| Pro | $10/ユーザ | コード補完: 無制限 Copilot Chat: 無制限 Code Review対応 |
| Pro+ | $39/ユーザ | Proの全機能 プレミアムリクエスト: 1,500回/月 Coding Agent対応 最新モデルへの優先アクセス |
| Business | $19/ユーザ | Pro相当の機能 組織管理機能 コンテンツ除外設定 プロンプト・提案の非保持 |
| Enterprise | $39/ユーザ | Businessの全機能 Coding Agent対応 カスタムモデル対応 高度なセキュリティ管理 |
学生向けプラン
GitHub Student Developer Packに登録している学生は、GitHub Copilotを無料で利用できる。
提供内容はProプランと同等であり、コード補完やCopilot Chatが無制限で使用可能である。
申請はGitHubの学生認証ページから行い、在学証明が必要となる。
コード補完
インラインコード提案
コード補完機能はエディタ内でリアルタイムに動作して、入力中のコードに対して続きを提案する。
提案はグレイテキスト (ゴースト表示) でインライン表示され、開発者はそのまま受け入れるか却下するかを選択できる。
提案の対象範囲は単一の記号から複数行にわたるブロックまで柔軟に対応する。
コメントや関数シグネチャを記述するだけで、実装コード全体が提案されることもある。
複数行補完
Copilotは関数、クラス、テストケース等、複数行に渡るコードブロック全体を一括で提案できる。
この機能は、以下に示すような場面で有効である。
- 関数のコメント (docstring) から実装コードを生成する。
- テストファイルでテストケースの雛型を一括生成する。
- 定型的なボイラープレートコードを自動補完する。
Next Edit Suggestions機能 (VS Code等でプレビュー提供) では、直前の編集内容をもとに、次に修正すべき箇所の提案も行う。
提案の操作
下表に、提案を操作するキーボードショートカットを示す。
| 操作 | キー | 説明 |
|---|---|---|
| 提案を受け入れる | [Tab]キー | 現在表示されている提案を全て適用する。 |
| 提案を却下する | [Esc]キー | 現在の提案を非表示にする。 |
| 次の提案へ切り替える | [Alt] + ]キー | 複数ある提案の中で次の候補を表示する。 |
| 前の提案へ切り替える | [Alt] + [キー | 複数ある提案の中で前の候補を表示する。 |
| 単語単位で受け入れる | [Ctrl] + [→]キー | 提案を1単語ずつ受け入れる。(VS Code) |
Copilot Chat
Copilot Chatとは
Copilot Chatは、コードについて自然言語で会話できるインターフェースである。
IDE内のチャットパネル、GitHub.com上のWebインターフェース、モバイルアプリから利用できる。
マルチモーダル対応により、テキストに加えて音声での入力も可能である。
コードスニペット、エラーメッセージ、スクリーンショットを貼り付けて質問することもできる。
チャットコンテキスト
Copilot Chatでは、チャット入力時に @ 記号を使用してコンテキストを指定できる。
@workspace- 現在開いているワークスペース全体をコンテキストとして参照する。
- プロジェクト全体に関わる質問や、複数ファイルにまたがる処理の相談に有効である。
@terminal- ターミナルの出力内容やエラーをコンテキストとして参照する。
- コマンドのエラー解決や、ビルドログの分析に使用する。
@github- GitHub上のIssue、PR、コミット情報をコンテキストとして参照する。
- リポジトリの履歴や議論の内容をもとにした回答が得られる。
また、#file, #folder, #symbol を使って特定のファイル・フォルダ・シンボルをピンポイントで参照することもできる。
スラッシュコマンド
チャット入力欄では、/ で始まるスラッシュコマンドを使用して特定の操作を素早く実行できる。
| コマンド | 説明 |
|---|---|
/explain |
選択したコードや指定したコードの動作・意図を自然言語で説明する。 |
/fix |
選択したコードのバグや問題点を検出して、修正案を提示する。 |
/tests |
選択したコードに対するユニットテストを生成する。 |
/doc |
選択したコードのドキュメントコメント (docstring等) を生成する。 |
/clear |
チャット履歴をクリアして新しい会話を開始する。 |
Agent Mode
Agent Modeとは
Agent Modeは2025年に導入された機能であり、Copilotが自律的にコードの実装、修正、検証を行うモードである。
従来のコード補完およびチャットが人間の指示に対して1ステップで応答するのに対して、Agent Modeは複数のステップを自律的に実行して複雑なタスクを完遂する。
複数ファイルにわたるコード変更、ターミナルコマンドの実行、エラーの自動修正ループ等を一連の処理として実施する。
動作フロー
Agent Modeは以下に示すフローで動作する。
- コンテキストの特定
- タスクに関連するファイルや依存関係を自動的に特定する。
- ファイルの読み取り
- 関連ファイルの内容を読み込み、現在の実装状況を把握する。
- コードの変更
- 必要な変更を複数ファイルに渡って実施する。
- ターミナルコマンドの実行
- ビルド、テスト、依存パッケージのインストール等のコマンドを実行する。
- エラーの監視
- 実行結果を監視して、エラーが発生した場合は原因を分析する。
- 自動修正
- 検出したエラーを自動的に修正して、再度検証を行う。
このループは、タスクが完了するまで繰り返し実行される。
対応IDE
Agent Modeが完全に対応しているIDEを以下に示す。
- VS Code (完全対応、推奨)
- Visual Studio
- JetBrains IDE (対応範囲は順次拡大中)
Copilot Coding Agent
Coding Agentとは
Copilot Coding Agentは、GitHubがホストするAIエージェントであり、GitHub Issue の内容をもとに実装を自動的に行う機能である。
開発者がIssueにCopilotをアサインするだけで、エージェントが実装、テスト、ドラフトPRの作成までを自動的に完了する。
この機能はPro+プランおよびEnterpriseプランで利用できる。
起動方法
Coding Agentを起動する手順は以下の通りである。
- GitHubリポジトリ上でIssueを開く。
- Issueの右サイドバーにある[Assignees]セクションを開く。
- アサイン先として[Copilot]を選択する。
- Copilotがタスクを受け付け、自動的に実装を開始する。
実装が完了すると、ドラフトPRが自動的に作成される。
開発者はドラフトPRを確認して、内容をレビューした上でマージ操作を行う。
セッションログ
Coding Agentが実行する全ての処理は、セッションログとして記録される。
- 実施したファイル変更の一覧
- 実行したターミナルコマンドとその出力
- 判断の根拠や思考プロセスの説明
開発者はセッションログをPR画面から参照でき、エージェントの動作を透明性高く追跡できる。
Copilot CLI
gh copilot suggest
gh copilot suggest コマンドは、自然言語で説明したタスクに対して、実行すべきシェルコマンドを提案する機能である。
基本的な使用方法を以下に示す。
gh copilot suggest "<タスクの説明>"
使用例を以下に示す。
# Dockerコンテナの一覧を確認するコマンドを提案させる例 gh copilot suggest "実行中のDockerコンテナを一覧表示したい" # ファイル圧縮のコマンドを提案させる例 gh copilot suggest "特定のディレクトリをtar.gzで圧縮したい"
gh copilot explain
gh copilot explain コマンドは、指定したシェルコマンドの動作・意味を自然言語で説明する機能である。
基本的な使用方法を以下に示す。
gh copilot explain "<コマンド>"
使用例を以下に示す。
# コマンドの意味を説明させる例 gh copilot explain "grep -rn 'pattern' ./src --include='*.ts'" # パイプラインの説明をさせる例 gh copilot explain "find . -name '*.log' | xargs rm -f"
エイリアス
頻繁に使用するコマンドのために、短縮エイリアスが提供されている。
| エイリアス | 展開されるコマンド | 説明 |
|---|---|---|
ghcs |
gh copilot suggest |
コマンド提案の短縮形 |
ghce |
gh copilot explain |
コマンド説明の短縮形 |
エイリアスはシェルの設定ファイルに追加 あるいは gh copilot alias コマンドで設定できる。
コードレビュー
Copilot Code Review
Copilot Code Reviewは、Pull Requestに対してAIが自動的にコードレビューを行う機能である。
人間のレビュアーが確認する前に、潜在的な問題点や改善点をコメントとして提示する。
対応プランはProプラン以上であり、BusinessおよびEnterpriseプランでも利用可能である。
レビュー対象
下表に、Copilot Code Reviewが検出する問題のカテゴリを示す。
| カテゴリ | 説明 |
|---|---|
| バグ | ロジックエラー、境界値問題、未処理の例外等、実行時に問題を引き起こす可能性のあるコードを検出する。 |
| セキュリティ | SQLインジェクション、XSS、ハードコードされた認証情報等、セキュリティ上の脆弱性を検出する。 |
| パフォーマンス | 非効率なループ、不要なデータベースクエリ、メモリリークの可能性があるコードを検出する。 |
| ベストプラクティス | コーディング規約への準拠、命名規則、重複コードの排除等を提案する。 |
自動レビュー設定
PRが作成されるたびに自動的にCopilotのレビューをリクエストする設定が可能である。
設定手順は以下の通りである。
- リポジトリの[Settings]を開く。
- [Branches]セクションで対象ブランチの保護ルールを選択または作成する。
- [Require reviewers]の設定で[Automatically request Copilot review]を有効にする。
この設定を有効にすると、PRが作成・更新されるたびにCopilotが自動的にレビューを実施する。
カスタマイズ
カスタム指示
リポジトリ固有のコーディング規約、スタイル、要件をCopilotに事前に指示するために、カスタム指示ファイルを作成できる。
- ファイルの配置場所
- .github/copilot-instructions.md
- リポジトリのルートに配置する。
- Markdown形式で記述する。
- Copilotがコード生成、チャット応答を行う時に自動的に参照される。
記述例を以下に示す。
# Copilot Instructions
## コーディング規約
- インデントはスペース3つを使用する
- 変数名はcamelCaseを使用する
- 関数には必ずJSDocコメントを記述する
## 使用技術スタック
- フロントエンド: React + TypeScript
- バックエンド: Node.js + Express
- データベース: PostgreSQL
パス固有指示
特定のファイルパターンに対してのみ適用される指示ファイルを作成できる。
ファイル名の形式は *.instructions.md であり、対象パスのパターンをファイル内で指定する。
---
applyTo: "src/components/**"
---
## Reactコンポーネント向け指示
- 関数コンポーネントのみを使用する
- Propsは必ずTypeScriptのinterfaceで型定義する
- コンポーネントファイル内にスタイルを記述しない
コンテンツ除外設定
特定のファイルおよびディレクトリをCopilotの参照対象から除外する設定が可能である。
Business / Enterpriseプランでは、リポジトリ管理者がコンテンツ除外設定を行える。
除外設定の主な用途は以下の通りである。
- 機密情報を含む設定ファイルの除外
- ライセンスの異なるサードパーティコードの除外
- テストデータや個人情報を含むファイルの除外
MCP統合
GitHub CopilotはModel Context Protocol (MCP) をサポートしており、外部ツールやデータソースとの統合が可能である。
MCPとは、AIアシスタントが外部のシステム、データベース、APIと標準化された方法で連携するためのプロトコルである。
MCPサーバの種類は以下の通りである。
- Local / STDIO
- ローカルマシン上で動作するMCPサーバ
- 標準入出力 (stdio) を通じてCopilotと通信する。
- HTTP / SSE
- HTTPエンドポイント または Server-Sent Events (SSE) 経由で通信するMCPサーバ
- リモートサービスや内部システムとの連携に使用する。
GitHub公式のMCP Serverも提供されており、GitHub上のIssue、PR、リポジトリ情報に直接アクセスできる。
MCPを活用することにより、Copilotはデータベース、社内API、独自のドキュメントシステム等を参照した回答を生成できるようになる。
セキュリティとプライバシー
データ保持ポリシー
下表に、GitHub Copilotのプランごとのデータ保持ポリシーを示す。
| プラン | プロンプトの保持 | 提案の保持 | 学習への使用 |
|---|---|---|---|
| Free / Pro / Pro+ | GitHubのポリシーに準拠 | GitHubのポリシーに準拠 | ユーザ設定による |
| Business | 保持しない | 保持しない | 使用しない |
| Enterprise | 保持しない | 保持しない | 使用しない |
BusinessおよびEnterpriseプランでは、入力したプロンプトと生成された提案はGitHubのサーバに保持されず、モデルの学習にも使用されない。
Public Code Filter
Public Code Filterは、公開リポジトリのコードと類似した内容の提案をブロックする機能である。
この機能を有効にすると、GitHubに公開されているコードと一定以上類似するコードブロックは提案されない。
設定はGitHubのCopilot設定ページから変更できる。
- 有効 (推奨)
- 公開コードとの類似提案を除外する。
- 無効
- 全ての提案を表示する。(デフォルト: 有効)
IP保護
GitHubはCopilot Enterpriseプランのユーザを対象に、著作権侵害に関するIP保護および免責保証を提供している。
主な保護内容は以下の通りである。
- Copilotが生成したコードによる著作権侵害訴訟に対する費用の補償
- プライベートリポジトリのコードはモデルの学習に使用されない。
- 個人ユーザの入力データは他のユーザへの提案に使用されない。
推奨事項
プロンプトの書き方
Copilotから精度の高い提案を得るためのプロンプト作成のポイントを以下に示す。
- 構造化して記述する、
- タスクの目的、入力、出力、制約を明確に分けて記述する。
- 箇条書きや番号付きリストを使用して、要件を整理する。
- 具体的な要件を記述する。
- "ファイルを処理する関数" ではなく "CSVファイルを読み込み、年齢列が18以上の行だけを返す関数" のように具体的に記述する。
- タスクを分割する。
- 複雑なタスクは複数の小さなタスクに分割して、段階的に実装を進める。
- コメントでプロンプトを記述する。
- コードファイル内にコメントとして要件を記述し、コード補完の精度を向上させる。
コンテキストの提供
Copilotはエディタで開いているファイルの内容をコンテキストとして参照する。
- 隣接タブの活用
- 関連するファイルを複数のタブで開いておくことで、Copilotが参照できるコンテキストが増加する。
- 型定義ファイル、インターフェース定義、関連モジュールを開いておくと提案精度が向上する。
- ファイル参照の活用
- Copilot Chatで
#fileを使用して、特定のファイルをピンポイントで参照する。 #folderでフォルダ全体を、#symbolで特定の関数やクラスを参照できる。
- Copilot Chatで
- ワークスペース参照
@workspaceを使用してプロジェクト全体をコンテキストに含めることにより、プロジェクト構造を踏まえた提案が得られる。