Skip to main content

负责任地使用 GitHub Copilot 代码评审

通过了解其目的、功能和限制,了解如何安全、负责任地使用 GitHub Copilot code review。

Note

关于 GitHub Copilot code review

GitHub Copilot code review是一项由 AI 提供支持的功能,用于评审代码并提供反馈。

当用户向 Copilot 请求代码评审时,Copilot 会扫描代码更改以及其他相关上下文,并提供代码反馈。 在相应反馈中,还可能提供具体的建议代码更改。

Copilot 的评审可以通过编码准则进行自定义,这些准则是编码风格和最佳做法的自然语言描述。 有关详细信息,请参阅“Configuring coding guidelines for GitHub Copilot code review”。

GitHub Copilot code review仅支持英语。

GitHub Copilot code review会检查代码,并使用自然语言处理和机器学习的组合提供反馈。 此过程可以细分为多个步骤。

输入处理

代码更改与其他相关的上下文信息(例如 GitHub 上的拉取请求的标题和正文)以及编码准则相结合形成提示,该提示将发送到大型语言模型。

语言模型分析

然后,该提示通过 Copilot 语言模型传递,该模型是一个神经网络,已基于大量文本数据进行了训练。 语言模型分析输入提示。

响应生成

语言模型根据其对输入提示的分析生成响应。 此响应可以采用自然语言建议和代码建议的形式。

输出格式设置

Copilot 生成的响应直接在 Visual Studio Code 中呈现给用户,或在 GitHub 上以拉取请求审查的形式呈现给用户,并提供链接到特定文件的特定行的代码反馈。

如果 Copilot 提供了代码建议,该建议将呈现为建议的更改,只需单击几下即可应用。

GitHub Copilot code review的用例

GitHub Copilot code review的目标是快速提供关于开发人员代码的反馈。 这可以使开发人员以更快的速度准备合并代码,并提升整体代码质量。

提升 GitHub Copilot code review的性能

使用 Copilot code review来补充人工评审,而不是将其取代

虽然 GitHub Copilot code review是一种可提升代码质量的强大工具,但请务必将其用作工具,而不是用于取代人工评审。

应始终评审并验证 Copilot code review生成的反馈,并通过仔细的人工评审来补充 Copilot 的反馈,以确保代码符合要求。

提供反馈

如果遇到 Copilot code review方面的任何问题或限制,建议使用 Copilot 注释上的向上和向下的大拇指按钮来提供反馈。 这可以帮助 GitHub 改进该工具并解决任何问题或限制。

配置编码准则

可以配置编码准则来帮助 Copilot 了解你的编码风格和最佳做法。 有关详细信息,请参阅“Configuring coding guidelines for GitHub Copilot code review”。

GitHub Copilot code review的限制

根据代码库和编程语言等因素,在使用 GitHub Copilot code review时,可能会体验到不同级别的性能。 以下信息旨在帮助你了解系统限制以及有关性能的关键概念,因为它们适用于 GitHub Copilot code review。

作用域受限

Copilot code review仅支持一组特定的编程语言,并且仅用于识别有限的、固定的一组代码质量问题。 为了确保识别并更正所有相关问题,应通过仔细的人工代码评审来补充 Copilot code review。

遗漏的代码质量问题

Copilot 可能无法识别代码中存在的所有问题,尤其是在更改较大或复杂的情况下。 为了确保识别并更正所有相关问题,应通过仔细的人工代码评审来补充 Copilot code review。

误报

Copilot code review存在“幻觉”风险,也就是说,它可能会突出显示已评审代码中不存在或基于代码误解的问题。 在采取操作和进行更改之前,应仔细评审和考虑 Copilot code review生成的注释。

不准确或不安全的代码

在注释的内容中,Copilot code review可能会提供具体的代码建议。 生成的代码可能看起来有效,但实际上可能语义或语法不正确,或者可能无法正确解决注释中识别的问题。 此外,Copilot 生成的代码可能包含安全漏洞或其他问题。 应始终仔细评审和测试 Copilot 生成的代码。

潜在偏见

Copilot 的训练数据取自现有代码存储库,其中可能包含工具可能会延续的偏见和错误。 此外,Copilot code review可能偏向于某些编程语言或编码风格,这可能导致反馈欠佳或不完整。

后续步骤

有关如何使用 Copilot code review的详细信息,请参阅: