Skip to content

GitHub Copilot のプライバシーとデータ保護 ​

GitHub Copilot は、提案を作るために、編集中のコードや周囲のファイルを参考にします。では、Copilot に読ませたくないファイルがある場合や、自分のデータを AI の学習に使われたくない場合は、どうすればよいのでしょうか。このページでは、そのための設定を整理します。

この記事で分かること ​

  • 個人のアカウントでできる、プライバシーに関する設定
  • コンテンツの除外(Copilot に読ませないファイルを指定する設定)の、効果と設定のしかた
  • コンテンツの除外が使える機能と、効かない場面
  • 設定がうまく働かないときの確認のしかた

試験範囲では、「プライバシー、コンテンツの除外、セーフガードを構成する」(比重 10〜15%)の分野にあたります。コンテンツの除外は、「GitHub Copilot の機能を使用する」(比重 25〜30%)の分野にも含まれています。

教材と現在の公式情報について

このページは、Microsoft Learn の教材(2024 年)と、GitHub の公式ドキュメント(2026 年 10 月に確認)の両方をもとにしています。両者に違いがある箇所は、その違いを本文に明記しています。Copilot は変更の多い製品なので、実際に設定するときは、最新の公式ドキュメントで確認してください。

用語の整理 ​

用語意味
コンテンツの除外(content exclusion)指定したファイルを、Copilot が参照しないようにする設定
リポジトリ(repository)プロジェクトのファイルと、その変更の履歴をまとめて保管する場所
組織(organization)会社やチームで、GitHub を共有して使うための単位
エンタープライズ(enterprise)複数の組織を、まとめて管理する単位
シート(seat)Copilot を使うための、1 人分の利用枠。組織が、メンバーに割り当てる
セマンティック情報(semantic information)コードの意味に関する情報。変数や関数の型、定義の内容など
シンボリックリンク(symbolic link、symlink)別の場所にあるファイルやフォルダーを指し示す、特殊なファイル
fnmatchファイル名を、* などの記号を使ったパターンで指定する書き方

データを守るための設定は 2 種類ある ​

Copilot のデータに関する設定は、誰が設定するかによって、大きく 2 つに分けられます。

種類設定する人主な内容使えるプラン
個人の設定利用者本人自分のデータを AI の学習に使わせるかどうか、など個人向けのプラン(Free、Pro、Pro+、Max)
コンテンツの除外リポジトリの管理者、組織の所有者、エンタープライズの所有者Copilot に参照させないファイルの指定企業向けのプラン(Business、Enterprise)

データの保持期間や、保持されたデータの使われ方は、「GitHub Copilot の仕組みとデータフロー」で説明しています。

個人の設定 ​

個人向けのプランの利用者は、GitHub の画面右上のプロフィール画像から「Copilot settings」を開いて、次の設定を変更できます。

設定の名前内容選べる値
Allow GitHub to use my data for AI model training自分のやり取り(入力、出力、コードの一部、関連するコンテキスト)を、AI モデルの学習と改善に使わせるかどうかDisabled を選ぶと、使われなくなる
Suggestions matching public code公開されているコードと一致する提案を、表示するかどうかAllow(表示する)、Block(表示しない)
Copilot access to BingCopilot Chat が、質問に関連する情報をインターネットで検索できるようにするかどうかEnabled、Disabled。既定は Disabled

AI モデルの学習への利用 ​

  • 対象は、Free、Pro、Pro+、Max のプランです。公式ドキュメントでは、2026 年 4 月 24 日から、やり取りが AI モデルの学習と改善に使われることがある、と説明されています。
  • 使われたくない場合は、設定を Disabled にします。
  • 企業向けのプラン(Business、Enterprise)の利用者のデータは、学習には使われません。そのため、これらのプランでは、この設定そのものが表示されません。

公開されているコードと一致する提案 ​

  • Block を選ぶと、Copilot は、提案と、その前後の約 150 文字のコードを、GitHub で公開されているコードと照合します。一致するか、ほぼ一致する提案は、表示されません。
  • Allow を選ぶと、一致する提案も表示されます。その場合、一致の詳細を確認して、該当するリポジトリを開けます。
  • 組織からシートを割り当てられている利用者は、この設定を自分では変更できません。組織またはエンタープライズの設定が、そのまま適用されます。

この設定と、生成されたコードの権利については、「生成コードの著作権と安全対策」で詳しく扱っています。

コンテンツの除外とは ​

コンテンツの除外は、指定したファイルを、Copilot が参照しないようにする設定です。パスワードなどの秘密の情報を含むファイルや、社外に出せない重要なコードを、Copilot に読ませないために使います。

除外すると起きること ​

現在の公式ドキュメントでは、除外したファイルについて、次の 4 つが起きると説明されています。

#起きること
1除外したファイルの中では、コード補完(インラインの提案)が表示されない
2除外したファイルの内容が、ほかのファイルでのコード補完の参考にされない
3除外したファイルの内容が、Copilot Chat の応答の参考にされない
4除外したファイルは、Copilot によるコードレビューの対象にならない

教材(2024 年)には、1〜3 の 3 つが挙げられています。4 は、現在の公式ドキュメントで加わっている内容です。

除外には、引き換えがある ​

ファイルを除外すると、安全性は高まります。その一方で、Copilot が使えるコンテキストが減り、提案の質が下がることがあります。

たとえば、重要な設定ファイルを除外すると、その設定に依存するコードについて、Copilot は的確な提案をしにくくなります。どのファイルを除外するかは、安全性と使いやすさのバランスを考えて、慎重に決める必要があります。

誰が設定できるか ​

コンテンツの除外は、リポジトリ、組織、エンタープライズの設定画面からだけ指定できます。個人の設定画面からは指定できません。

設定する人設定できる範囲影響を受ける人
リポジトリの管理者自分のリポジトリそのリポジトリで作業する、エンタープライズ内の Copilot の利用者
組織の所有者組織その組織から Copilot のシートを割り当てられている利用者
エンタープライズの所有者エンタープライズエンタープライズ内の、すべての Copilot の利用者

教材(2024 年)には、リポジトリの管理者と、組織の所有者の 2 つが挙げられています。現在の公式ドキュメントでは、エンタープライズの所有者も設定できます。

設定のしかた ​

リポジトリで設定する ​

  1. GitHub で、リポジトリのメインページを開く
  2. 「Settings」を開く
  3. サイドバーの「Code, planning, and automation」にある「Copilot」を選び、「Content exclusion」を選ぶ
  4. 「Paths to exclude in this repository」の入力欄に、除外するファイルのパスを書く

パスは、1 行に 1 つずつ書きます。# で始まる行は、コメント(説明のための行)になります。

yaml
# このリポジトリの /src/some-dir/kernel.rs というファイルを除外する
- "/src/some-dir/kernel.rs"

# このリポジトリのどこにあっても、secrets.json という名前のファイルを除外する
- "secrets.json"

# 名前が secret で始まるファイルを、すべて除外する
- "secret*"

# 名前が .cfg で終わるファイルを、すべて除外する
- "*.cfg"

# /scripts ディレクトリと、その下にあるファイルを、すべて除外する
- "/scripts/**"

パターンは fnmatch の書き方で指定します。大文字と小文字は区別されません。

書き方意味
/ で始まるパスリポジトリの最上位からの場所を指定する
/ で始まらない名前リポジトリのどこにあっても、その名前のファイルを対象にする
*任意の文字の並び。*.cfg は、.cfg で終わるすべてのファイル
**任意の深さのディレクトリ。/scripts/** は、/scripts の下のすべて

リポジトリが、上位の組織から除外の設定を引き継いでいる場合は、画面の上部に、その内容が灰色の枠で表示されます。引き継いだ設定は、リポジトリの画面では変更できません。

組織で設定する ​

  1. GitHub の画面右上のプロフィール画像から、「Organizations」を開く
  2. 組織を選び、「Settings」を開く
  3. 左のサイドバーで「Copilot」を選び、「Content exclusion」を選ぶ
  4. 「Repositories and paths to exclude」の入力欄に、除外の内容を書く

組織の設定では、どのリポジトリの、どのパスを除外するかを書きます。Git で管理されていない場所にあるファイルも、除外できます。

yaml
# すべての場所(Git で管理されていない場所も含む)で、.env ファイルを除外する
"*":
  - "**/.env"

# この組織の octo-repo というリポジトリで
octo-repo:
  # /src/some-dir/kernel.rs というファイルを除外する
  - "/src/some-dir/kernel.rs"

# GitHub 上の primer/react というリポジトリで
https://github.com/primer/react.git:
  # secrets.json という名前のファイルを、どこにあっても除外する
  - "secrets.json"
書き方意味
"*":すべての場所を対象にする
リポジトリの名前や URL のあとに :そのリポジトリを対象にする。続く行に、字下げして、除外するパスを書く

エンタープライズで設定する ​

エンタープライズの所有者は、エンタープライズの画面の「AI controls」から「Copilot」「Content exclusion」を開いて、設定します。書き方は、組織の場合と同じです。

使える機能と、使えない機能 ​

コンテンツの除外は、すべての機能で働くわけではありません。現在の公式ドキュメントに載っている、企業向けのプランでの対応状況です。

ツールコード補完チャットとエージェント
Visual Studio対応対応
Visual Studio Code対応チャット:対応。エディット:非対応。エージェント:非対応
JetBrains の IDE対応対応
Vim / Neovim対応—
Xcode対応非対応
Eclipse対応非対応
Azure Data Studio非対応—
GitHub の Web サイト—対応
GitHub Mobile—対応

GitHub の Web サイトでの、Copilot によるコードレビューにも、コンテンツの除外が適用されます。

次の点に注意が必要です。

  • エディットモードとエージェントモードでは、働かない。 Visual Studio Code などのエディターで、Copilot Chat のエディットモードとエージェントモード(Copilot が複数の作業を自律的に進めるモード)を使う場合、コンテンツの除外は、現時点では対応していません。
  • GitHub の Web サイトと GitHub Mobile では、試験提供の段階。 パブリックプレビュー(一般提供の前の試験的な提供)で、今後変わる可能性があります。

GitHub Copilot CLI の対応状況について

GitHub Copilot CLI については、公式ドキュメントの中で説明が食い違っています。考え方を説明するページの表では「対応」とされ、設定の手順を説明するページの注記では「対応していない」とされています。どちらが現在の正しい状態なのかは、確認できていません。CLI でコンテンツの除外に頼る場合は、実際に動作を確かめてください。

コンテンツの除外の制限 ​

対応している機能を使っていても、除外したファイルの情報が、Copilot に伝わることがあります。

現在の公式ドキュメントに挙げられている制限 ​

制限内容
セマンティック情報IDE が間接的に情報を提供する場合、Copilot が、除外したファイルのセマンティック情報を使うことがある。例:コードで使われている記号の型の情報、マウスを重ねたときに表示される定義、ビルドの設定などのプロジェクト全体の属性
シンボリックリンクシンボリックリンクには、コンテンツの除外が適用されない
リモートのファイルシステムリモートのファイルシステム上にあるリポジトリには、コンテンツの除外が適用されない

教材(2024 年)に挙げられている制限 ​

制限内容
IDE の制限一部の IDE では、Copilot Chat などの特定の機能を使っているときに、コンテンツの除外が適用されないことがある。例として、Visual Studio Code と Visual Studio で、質問に @github というチャット参加者を使った場合が挙げられている
セマンティック情報現在の公式ドキュメントと同じ趣旨
ポリシーの範囲コンテンツの除外の設定は、その設定を行った組織のメンバーにだけ適用される。そのファイルを見られるほかの人は、そのファイルを参照したコード補完や Copilot Chat の応答を、引き続き受け取れる

「ポリシーの範囲」は、見落としやすい点です。コンテンツの除外は、ファイルへのアクセスそのものを禁止する仕組みではありません。対象の利用者について、Copilot がそのファイルを参照しないようにする仕組みです。

反映されるまでの時間と、確認のしかた ​

反映されるまでの時間 ​

コンテンツの除外を追加したり変更したりしたあと、すでに設定を読み込んでいる IDE に反映されるまで、最大 30 分かかります。すぐに反映させたい場合は、IDE に設定を読み込み直させます。

IDE読み込み直す方法
Visual Studio Codeコマンドパレットを開き、「reload」と入力して、「Developer: Reload Window」を選ぶ
JetBrains の IDE、Visual Studioアプリケーションを閉じて、開き直す
Vim / Neovimファイルを開くたびに、設定が自動で取得される

除外が働いているかの確認 ​

  1. 除外していないファイルを開いて、コードを編集する。提案が表示されることを確かめる
  2. 除外したファイルを開いて、同じように編集する。提案が表示されないことを確かめる
  3. Copilot Chat で、除外したファイルだけを開いた状態で、「このファイルを説明して」と尋ねる。除外されていれば、Copilot Chat はそのファイルを使えず、応答の参照先にも表示されない

教材(2024 年)では、ステータスバー(エディターの下端の表示欄)の Copilot のアイコンで確認する方法も紹介されています。ファイルにコンテンツの除外が適用されていると、アイコンに斜めの線が入ります。アイコンにマウスを重ねると、組織と上位のリポジトリのどちらが、そのファイルで Copilot を無効にしたのかが表示されます。

設定のために GitHub に送られる情報 ​

コンテンツの除外を設定すると、Copilot の拡張機能などは、現在のリポジトリの URL を GitHub のサーバーに送ります。サーバーは、その URL をもとに、適用する設定を返します。公式ドキュメントでは、この URL はどこにも記録されない、と説明されています。

うまく働かないときの確認 ​

教材(2024 年)で挙げられている、よくある問題と対処です。

コードの提案が表示されない ​

確認すること内容
インターネットへの接続Copilot は、接続がないと動作しない
拡張機能のバージョン古いバージョンでは、Copilot のサーバーとうまく通信できないことがある。最新版に更新する
IDE の対応状況使っている IDE が、Copilot に対応しているかを確認する
コンテンツの除外の設定そのファイルが除外されていると、提案は表示されない。設定が意図どおりかを確認する

コンテンツの除外が、期待どおりに働かない ​

原因対処
反映が遅れている変更の反映には、最大 30 分かかる。すぐに反映させるには、IDE に設定を読み込み直させる
適用される範囲が足りない設定は、その設定を行った組織のメンバーにだけ適用される。関係する人が、対象に含まれているかを確認する
IDE や機能の制限機能によっては、コンテンツの除外が適用されない。制限を踏まえて、使い方を調整する

提案の内容が、期待に合わない ​

対処内容
明確なコンテキストを与える内容の分かるコメントを書き、意味の伝わる変数名を使う
Copilot のコマンドを使うIDE によっては、特定の操作で提案を呼び出せる
プロンプトの長さを調整するより詳しいプロンプトにすると、良い提案が得られることがある。長さを変えて試す

プロンプトの工夫については、「プロンプトエンジニアリングの基本」で説明しています。

教材と、現在の公式情報の違い ​

項目教材(2024 年)現在の公式ドキュメント
除外すると起きること3 つ(補完が出ない、ほかのファイルの補完に使われない、Chat の応答に使われない)4 つ(左の 3 つに加えて、Copilot によるコードレビューの対象にならない)
設定できる人リポジトリの管理者、組織の所有者リポジトリの管理者、組織の所有者、エンタープライズの所有者
機能による制限の例@github というチャット参加者を使った場合に、適用されないエディットモードとエージェントモードで、対応していない
そのほかの制限セマンティック情報、ポリシーの範囲セマンティック情報、シンボリックリンク、リモートのファイルシステム
リポジトリの設定画面での入力欄の名前Repositories and paths to excludePaths to exclude in this repository

訳語の違いに注意 ​

日本語版の教材は機械翻訳です。英語とセットで覚えておくと安心です。

英語日本語版の教材での表記
Content exclusionコンテンツの除外、コンテンツ除外
Repository administratorリポジトリ管理者
Organization owner組織の所有者
Semantic informationセマンティック情報
Policy scopeポリシーの範囲
Code completionコードの入力候補、コード補完

まとめ ​

  • データを守るための設定には、利用者本人が行う「個人の設定」と、管理者が行う「コンテンツの除外」がある。
  • 個人向けのプランでは、「Allow GitHub to use my data for AI model training」を Disabled にすると、自分のデータが学習に使われなくなる。企業向けのプランでは、もともと学習に使われない。
  • コンテンツの除外を設定すると、対象のファイルでは補完が表示されず、その内容は、ほかのファイルの補完にも、Copilot Chat の応答にも使われない。
  • コンテンツの除外は、企業向けのプランで使える。リポジトリの管理者、組織の所有者、エンタープライズの所有者が設定する。
  • 除外には限界がある。エディットモードとエージェントモードでは働かない。セマンティック情報、シンボリックリンク、リモートのファイルシステムにも注意する。
  • 変更の反映には、最大 30 分かかる。すぐに反映させるには、IDE に設定を読み込み直させる。
  • 除外すると、Copilot が使えるコンテキストが減り、提案の質が下がることがある。

確認問題 ​

このページの内容から作った、自作の問題です。実際の試験問題ではありません。選択肢を選んで「答えを確認する」を押すと、正解と解説が表示されます。

問 1. あるファイルに、コンテンツの除外(content exclusion)を設定しました。このとき起きることとして、当てはまらないものはどれですか。 (当てはまらないものを 1 つ選んでください)
問 2. コンテンツの除外を設定できる人として、適切なものはどれですか。 (2 つ選んでください)
問 3. コンテンツの除外を使えるプランは、どれですか。 (1 つ選んでください)
問 4. リポジトリのコンテンツの除外の設定で、/scripts ディレクトリと、その下にあるすべてのファイルを除外したい場合、パスの書き方として適切なものはどれですか。 (1 つ選んでください)
問 5. 現在の公式ドキュメントで、コンテンツの除外が適用されないものとして挙げられているのは、どれですか。 (2 つ選んでください)
問 6. コンテンツの除外の設定を変更しました。すでに設定を読み込んでいる IDE に反映されるまでの時間について、適切な説明はどれですか。 (1 つ選んでください)
問 7. コンテンツの除外の制限のうち、「セマンティック情報(semantic information)」に関する説明として、適切なものはどれですか。 (1 つ選んでください)
問 8. 個人向けのプラン(Free、Pro など)の利用者が、自分のやり取りを AI モデルの学習に使われないようにするには、どうすればよいですか。 (1 つ選んでください)
問 9. エディターで、Copilot のコードの提案が表示されなくなりました。確認することとして、適切でないものはどれですか。 (適切でないものを 1 つ選んでください)

参考資料と確認の記録 ​

項目内容
最終確認日2026 年 10 月 11 日
検証の状況GitHub の公式ドキュメント(3 ページ)と、Microsoft Learn の教材(英語版と日本語版)の「コンテンツの除外を管理する」「よくある問題の解決」の単元と照合した。設定の画面を実際に操作しての確認は、行っていない
公式の情報の中で食い違いがあり、確認できていない内容GitHub Copilot CLI がコンテンツの除外に対応しているかどうか(公式ドキュメントのページによって説明が違う)
教材にだけ書かれていて、現在も当てはまるかを確認していない内容@github というチャット参加者を使った場合の制限。ステータスバーのアイコンに斜めの線が入ること
変わる可能性がある内容対応している機能の一覧、設定画面の項目の名前、試験提供の機能の扱い
このページで扱っていない内容エディターの設定は、別のページ(05)で扱う予定。公開されているコードとの一致と、生成されたコードの権利は、別のページ(14)で扱っている