跳至主要内容

GitHub Copilot 代码审查的负责任使用

通过了解其目的、功能和限制,学习如何安全、负责任地使用 GitHub Copilot 代码审查。

关于 GitHub Copilot 代码审查

GitHub Copilot 代码审查是一项 AI 驱动的功能,可审查代码并提供反馈。

当用户向 Copilot 请求代码审查时,Copilot 会扫描代码更改以及其他相关上下文,并对代码提供反馈。作为反馈的一部分,它还可能提供具体的代码修改建议。

Copilot 的审查可以通过自定义指令进行定制,这些指令是对编码风格和最佳实践的自然语言描述。更多信息,请参阅 为 GitHub Copilot 添加仓库自定义指令

GitHub Copilot 代码审查会检查您的代码,并结合自然语言处理和机器学习提供反馈。此过程可以分为若干步骤。

输入处理

代码更改与其他相关的上下文信息(例如 GitHub 上的拉取请求标题和正文)以及已定义的任何自定义指令一起组合,形成提示词(prompt),该提示词随后发送给大型语言模型。

语言模型分析

提示词随后通过 Copilot 语言模型进行处理,该模型是一个在大量文本数据上训练的神经网络。语言模型会分析输入的提示词。

响应生成

语言模型基于对提示词的分析生成响应。该响应可以采用自然语言建议和代码建议的形式。

输出格式化

Copilot 生成的响应会直接在支持的编辑器中呈现给用户,或作为 GitHub 上的拉取请求审查展示,提供与特定文件特定行关联的代码反馈。

当 Copilot 提供代码建议时,该建议会以建议更改的形式呈现,用户只需点击几下即可应用。

模型使用

Copilot 代码审查是专为此目的打造的产品,使用精心调校的模型、提示词和系统行为组合,以在广泛的代码库中提供一致、高质量的反馈。不支持模型切换,因为更换模型可能会影响可靠性、用户体验以及审查评论的质量。此功能的每一次使用都会消耗一次高级请求。参见 GitHub Copilot 中的请求

注意

Copilot 代码审查可能会使用在您组织的“模型”设置页面未启用的模型。“模型”设置页面仅控制 Copilot Chat。

由于 Copilot 代码审查已正式发布,所有模型使用均受正式发布条款的约束。参见 在组织中管理 GitHub Copilot 的策略和功能

GitHub Copilot 代码审查的使用案例

GitHub Copilot 代码审查的目标是快速为开发者的代码提供反馈。这可以帮助开发者更快准备代码合并,并提升整体代码质量。

提升 GitHub Copilot 代码审查的性能

使用 Copilot 代码审查来补充人工审查,而不是取代人工审查

虽然 GitHub Copilot 代码审查可以成为提升代码质量的强大工具,但重要的是将其视为辅助工具,而非取代人工审查。

您应始终审查并核实 Copilot 代码审查生成的反馈,并在此基础上进行细致的人为审查,以确保代码满足您的要求。

提供反馈

如果您在使用 Copilot 代码审查时遇到任何问题或限制,建议通过 Copilot 评论中的点赞或点踩按钮提供反馈。这有助于 GitHub 改进该工具并解决相关顾虑或限制。

自定义指令

您可以配置自定义指令,以帮助 Copilot 理解您的编码风格和最佳实践。更多信息,请参阅 为 GitHub Copilot 添加仓库自定义指令

GitHub Copilot 代码审查的限制

根据代码库和编程语言等因素,使用 GitHub Copilot 代码审查时可能会遇到不同的性能表现。以下信息旨在帮助您了解系统限制以及与 GitHub Copilot 代码审查相关的性能关键概念。

遗漏的代码质量问题

Copilot 可能无法识别代码中所有存在的问题,尤其是当更改规模大或复杂时。为确保所有相关问题都被识别并纠正,Copilot 代码审查应与细致的人为代码审查相结合。

误报

Copilot 代码审查存在“幻觉”风险——即它可能标记代码中并不存在的问题,或基于对代码的误解进行提示。在采取行动或进行更改前,应仔细审查并考虑 Copilot 代码审查生成的评论。

不准确或不安全的代码

作为评论的一部分,Copilot 代码审查可能提供具体的代码建议。生成的代码看似有效,但实际可能在语义或语法上不正确,或未能正确解决评论中指出的问题。此外,Copilot 生成的代码可能包含安全漏洞或其他问题。您应始终仔细审查并测试 Copilot 生成的代码。

潜在偏见

Copilot 的训练数据来源于已有的代码仓库,这些仓库可能包含偏见和错误,工具可能会将其延续。此外,Copilot 代码审查可能偏向某些编程语言或编码风格,从而导致反馈不够理想或不完整。

后续步骤

有关如何使用 Copilot 代码审查的详细信息,请参阅

© . This site is unofficial and not affiliated with GitHub, Inc.