GitHub Copilot 改变了代码编写方式,但也可能生成与公共仓库相似的代码。2022年,GitHub 曾推出自动屏蔽匹配公共代码建议的功能,但触发率低于1%。有时开发者仍需查看这些片段,以便在许可限制内使用或引用相关库。
为此,GitHub 今日推出 GitHub Copilot 代码引用功能(私有测试版)。开启后,Copilot 不再自动屏蔽匹配代码,而是在侧边栏展示,由开发者自行决定处理方式。未来该功能将扩展至 Copilot Chat。
GitHub 于去年11月预览此功能,历经数月打磨才正式发布。
从“粗暴屏蔽”到“自主选择”
GitHub CEO Thomas Dohmke 表示,此前 Microsoft、GitHub 及多数企业客户使用的屏蔽功能过于粗暴,缺乏自主控制权。它阻碍了开发者探索开源库、提交 Pull Requests,甚至可能导致无意中复述已有内容。
Dohmke 指出,排序等常见算法常存在于多处。现在开发者可灵活选择:拒绝代码、直接使用(若许可允许),或让 Copilot 重写以消除匹配。
目前尚不支持按特定许可证筛选匹配结果,团队正收集反馈以评估是否添加该功能。Dohmke 强调:“让用户先了解匹配情况,再做出正确决策,这弥补了原有方案的不足。”
触发机制与性能优化
当 Copilot 可用上下文较少时(如编码初期),代码引用功能更易触发;若能看到大量现有代码上下文,生成匹配建议的概率则显著降低。
核心引擎为极速搜索引擎,延迟控制在 10-20 毫秒以内,可快速定位匹配代码及许可证。当前结果按发现顺序列出,后续预计将支持按仓库许可证、提交日期等排序。

