Skip to main content

GitHub Copilot の候補に一致するパブリック コードの検索

GitHub Copilot に公開されているコードと一致する候補を許可すると、Copilot は見つかった一致するコードへの参照を表示します。

この記事のこのバージョンは、Copilot in JetBrains IDE 向けです。 他のプラットフォーム上の Copilot については、上の適切なタブをクリックしてください。

制限事項

現在、一致するコードへの参照は、JetBrains IDE、Visual Studio Code 内と GitHub Web サイト上でのみ使用できます。

前提条件

一致するコードへの参照は、Copilot が一般公開されているコードに一致する候補を許可するように構成されている場合にのみ生成されます。 これは、個人または organization の設定で構成されます。 詳細については、「個人のサブスクライバーとしての Copilot ポリシーの管理」または 「organization 内での Copilot のポリシーの管理」を参照してください。

GitHub Copilot でのコード参照について

パブリック コードに一致する提案を許可した場合、GitHub Copilot は、提案が一致するコードの詳細を提供できます。 これは次の場合に発生します。

  • エディターでコード補完候補を受け入れる場合。
  • Copilot Chat の応答に一致するコードが含まれている場合。

この機能は、コード参照と呼ばれます。

Copilot コード補完のコード参照

パブリック GitHub リポジトリ内のコードと一致するコード補完の提案を受け入れると、エントリが JetBrains ログに追加されます。 ログ エントリには、一致するコードを含むファイルの URL と、そのコードに適用されるライセンスの名前 (見つかった場合) が含まれます。 そのため、これらの参照をレビューし、今後の対応を判断できます。 たとえば、使用する属性や、プロジェクトからこのコードを削除するかどうかを決定できます。

Note

  • コード補完に対するコード参照は、受け入れられた Copilot の候補に一致する場合にのみ発生します。 記述したコード、および変更した Copilot 候補は、パブリック コードへの一致に対してチェックされません。
  • 通常、パブリック コードへの一致は Copilot 候補の 1% 未満で発生するため、多くの候補でコード参照が表示されるわけではありません。

Copilot Chat のコード参照

Copilot Chat から、パブリック GitHub リポジトリ内のコードと一致するコードを含む回答が提示された場合、回答の最後に、その一致するコードの詳細を表示するリンクと共にエディターに示されます。

コード参照で一致するコードを検索する方法

Copilot のコード参照は、コードの候補に加えて、候補が受け入れられた場合はその周囲のいくつかのコードを取得し、それを GitHub.com 上のすべてのパブリック リポジトリのインデックスと比較することで、一致を検索します。 プライベート GitHub リポジトリ内のコード、または GitHub 以外のコードは、検索プロセスには含まれません。 検索インデックスは数か月ごとに更新されます。 その結果、新しくコミットされたコードと、インデックスが作成される前に削除されたパブリック リポジトリのコードは、検索に含まれない場合があります。 同じ理由から、インデックスの作成後に削除または移動されたコードへの一致を検索が返す場合があります。

コード補完のコード参照を表示する

JetBrains IDE のログ ファイルでコード参照を表示できます。

  1. JetBrains IDE で、[Help] > [Show Log in Finder/Explorer] を選びます。

    ログ ファイルはファイル マネージャーに表示されます。 たとえば、IntelliJ IDEA の場合、ログ ファイルは idea.log という名前です。

  2. JetBrains IDE でログ ファイルを開きます。

  3. 「[Public Code References]」を検索します。

ログ エントリの例

2025-02-26 09:22:12,045 [5581906] INFO - #copilot - [Public Code References] Text found matching public code in file:///Users/mona-lisa/git-repos/test-repo/fizzbuzz.js [Ln 1, Col 10] near fizzBuzz() ...:
  1) [NOASSERTION] https://github.com/nixsticks/todos/blob/ae427a721c7784da64a619ba17f60637fe1cc819/Loops/fizzbuzz/fizzbuzz.js
  2) [GPL-3.0] https://github.com/voloslg/algocasts/blob/34b423517486f908ca167b390d3b8bd05653829f/exercises/fizzbuzz/index.js

ログ エントリには次の詳細が含まれます。

  • 候補を受け入れた日付と時刻。
  • 一致するコードが見つかったことを通知する "Public Code References" メッセージ。
  • 提案が追加されたファイルへのパス。
  • 提案が追加された行と列の番号。
  • 以下のような一致の一覧:
    • 一致するコードのライセンスの種類。ライセンスが見つからなかった場合は NOASSERTION
    • 一致するコードが見つかった GitHub.com 上のファイルの URL。

コード参照機能の確認

コード参照が機能していることを確認するには、一般的に使用されるコードを追加するように Copilot にプロンプトを入力し、IDE のログ ファイルの出力をチェックします。

  1. 前のセクションで説明したように、JetBrains IDE のログ ファイルを表示します。

  2. fizz-buzz.js というファイルを作成し、JetBrains エディターで開きます。

  3. エディターで、次のように入力します。

    function fizzBuzz()
    

    閉じかっこの後にはスペースを付けます。

    GitHub Copilot は、関数を完了するためのコードを提案する必要があります。 通常、提案は fizz buzz アルゴリズムの一般的な実装です。これは、GitHub Web サイトで公開されているコードと一致します。

  4. Tab を押して候補を受け入れます。

  5. ログ ファイルに "[Public Code Reference]" エントリが追加されたかどうかをチェックします。

Copilot Chat のコード参照を表示する

Copilot Chat の応答に一致するコードが含まれている場合、これは応答の最後に次のテキストで示されます。

n ライセンスの種類で見つかった類似コード - 一致を表示する

  1. [一致を表示する] をクリックして、一致したコードの詳細を新しいエディター タブに表示します。

    一致するコードの例ごとに、エディターに次の情報が表示されます。

    • 一致するコードのライセンスの種類 (既知の場合)。
    • 一致するコードが見つかった GitHub.com 上のファイルの URL。
    • 一致するコードを示すコード スニペット。
  2. エディターで、URL を Ctrl+クリック (Windows/Linux) または Command+クリック (Mac) して、GitHub.com のファイル全体を表示します。