跳至主要内容

查找与 GitHub Copilot 建议匹配的公共代码

如果您允许 GitHub Copilot 生成与公开可用代码匹配的建议,您可以在 GitHub.com 上查看匹配代码的引用。

注意:GitHub Copilot 代码引用处于公开测试阶段,可能会发生变化。

关于 GitHub Copilot 中的代码引用

您可以选择允许 GitHub Copilot 建议与 GitHub.com 上公开可用代码匹配的代码补全。有关更多信息,请参阅“作为个人订阅者管理 Copilot 策略”。

如果您已允许与公共代码匹配的建议,GitHub Copilot 可以在您接受此类建议时为您提供有关匹配代码的详细信息。此功能称为代码引用。它目前仅在 Visual Studio Code 中可用。

当您接受与公共 GitHub 存储库中的代码匹配的代码补全建议时,GitHub Copilot 日志中会添加一个条目。日志条目包含指向 GitHub.com 上页面的链接,您可以在该页面上查看对公共 GitHub 存储库中类似代码的引用。

链接的网页包含对找到匹配代码的存储库的任何已识别许可证的详细信息。在查看了引用后,您可以决定如何继续。例如,您可以决定使用什么归属,或者是否要从您的项目中删除此代码。

注意:

  • 代码引用目前不适用于您使用 GitHub Copilot Chat 添加到代码中的代码补全建议。
  • 代码引用目前仅查找已接受的 Copilot 建议的匹配项。不会检查您编写的代码或您修改的 Copilot 建议与公共代码的匹配项。
  • 通常,与公共代码的匹配项占 Copilot 建议的不到百分之一,因此您不应该期望在您接受的许多建议中看到代码引用。

代码引用如何查找匹配的代码

Copilot 代码引用通过获取代码建议加上一些周围的代码,并将其与 GitHub.com 上所有公共存储库的索引进行比较来搜索匹配项。私有 GitHub 存储库中的代码或 GitHub 之外的代码不包含在搜索过程中。搜索索引每隔几个月刷新一次。因此,新提交的代码以及在创建索引之前删除的公共存储库中的代码可能不包含在搜索中。出于同样的原因,搜索可能会返回与自创建索引以来已删除或移动的代码的匹配项。

在 Visual Studio Code 中使用代码引用

要使用代码引用功能,您必须允许匹配公共代码的建议。有关更多信息,请参阅“作为个人订阅者管理 Copilot 策略”。

您可以从 Visual Studio Code 中的 GitHub Copilot 日志之一访问代码引用。

  1. 在 Visual Studio Code 中,通过从菜单栏中选择 **视图** > **输出** 来打开 **输出** 窗口。

  2. 在 **输出** 窗口右侧的下拉菜单中,选择 **GitHub Copilot 日志**。

    Screenshot of the Output window with "GitHub Copilot Log" selected from the dropdown menu.

  3. 在 Visual Studio Code 中使用 GitHub Copilot 时,保持 **GitHub Copilot 日志** 视图显示。

    当您接受与公共 GitHub 存储库中的代码匹配的代码补全建议时,日志中会添加一个条目。

    日志条目包含以下详细信息

    • 您接受建议的日期和时间。
    • 添加建议的文件名。
    • 一条消息告诉您找到了类似的代码,以及许可证的数量和类型。
    • 指向 GitHub.com 上页面的链接。
    • 在文件中添加建议的位置。
    • 建议并添加的代码部分的片段。

    Screenshot of the Output window showing a code referencing log entry.

    **注意:** 关闭编辑器时,GitHub Copilot 日志将被刷新。

  4. 在日志条目中,Ctrl+单击(Windows/Linux)或 Command+单击(Mac)链接以在 GitHub.com 上查看代码引用。

    该页面列出了找到的匹配项,显示了相关文件的摘录。您可以单击文件名以查看整个文件。

    Screenshot of code references listed on GitHub.com.

    匹配项可能在多个存储库中找到,这些存储库具有不同的、有时是冲突的许可证。您可以使用页面左侧的复选框仅显示与特定许可证相关的匹配项。

    您应该查看存储库中的所有许可证信息,以验证它是否适用于匹配的代码,因为存储库可能包含多个许可证,并且这些许可证可能存在人为错误和非人为错误。

    **注意:** 显示完整详细信息的网页将保留三个月。

验证代码引用功能

您可以通过提示 Copilot 添加一些常用的代码并检查 Copilot 日志中的输出,来验证代码引用是否正常工作。

  1. 在 Visual Studio Code 中,创建一个名为 fizz-buzz.js 的文件。

  2. 从菜单栏中选择**视图** > **输出**,打开**输出**窗口。

  3. 在 **输出** 窗口右侧的下拉菜单中,选择 **GitHub Copilot 日志**。

  4. 在编辑器中,输入

    function fizzBuzz()
    

    GitHub Copilot 应该会建议代码来完成函数。

  5. Tab 键接受建议。

    如果代码引用找到了与公共代码的匹配项,则会在**GitHub Copilot 日志**视图中添加日志条目。