跳到主要内容

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

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

注意

关于 GitHub Copilot 代码审查

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

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

可以使用编码指南自定义 Copilot 的审查,编码指南是对编码风格和最佳实践的自然语言描述。更多信息,请参见“为 GitHub Copilot 代码审查配置编码指南”。

GitHub Copilot 代码审查仅支持英语。

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

输入处理

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

语言模型分析

然后,提示将通过 Copilot 语言模型(一个经过大量文本数据训练的神经网络)进行处理。语言模型会分析输入提示。

响应生成

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

输出格式化

Copilot 生成的响应会直接在 Visual Studio Code 中或作为 GitHub 上的拉取请求审查显示给用户,提供与特定文件的特定行链接的代码反馈。

如果 Copilot 提供了代码建议,则该建议将显示为建议更改,可以通过几次点击应用。

GitHub Copilot 代码审查的用例

GitHub Copilot 代码审查的目标是快速提供对开发人员代码的反馈。这可以使开发人员更快地准备好要合并的代码,并提高整体代码质量。

改进 GitHub Copilot 代码审查的性能

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

虽然 GitHub Copilot 代码审查可以成为提高代码质量的有力工具,但务必将其用作工具,而不是替代人工审查。

您应该始终审查和验证 Copilot 代码审查生成的反馈,并用仔细的人工审查来补充 Copilot 的反馈,以确保您的代码满足您的需求。

提供反馈

如果您遇到任何 Copilot 代码审查的问题或局限性,建议您使用 Copilot 评论上的点赞和点踩按钮提供反馈。这可以帮助 GitHub 改进工具并解决任何问题或局限性。

配置编码指南

您可以配置编码指南,以帮助 Copilot 了解您的编码风格和最佳实践。更多信息,请参见“为 GitHub Copilot 代码审查配置编码指南”。

GitHub Copilot 代码审查的局限性

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

范围有限

Copilot 代码审查仅支持特定的一组编程语言,并且仅旨在识别有限的、固定的代码质量问题集。为了确保识别并纠正所有相关问题,Copilot 代码审查应辅以仔细的人工代码审查。

错过的代码质量问题

Copilot 可能无法识别代码中存在的所有问题,尤其是在更改较大或复杂的情况下。为了确保识别并纠正所有相关问题,Copilot 代码审查应辅以仔细的人工代码审查。

误报

Copilot 代码审查存在“幻觉”的风险——也就是说,它可能会突出审查代码中不存在的问题,或者基于对代码的误解。在采取行动并进行更改之前,应仔细审查和考虑 Copilot 代码审查生成的注释。

不准确或不安全的代码

作为其注释的一部分,Copilot 代码审查可能会提供具体的代码建议。生成的代码似乎有效,但实际上可能在语义上或句法上不正确,或者可能无法正确解决注释中识别的问题。此外,Copilot 生成的代码可能包含安全漏洞或其他问题。您应该始终仔细审查和测试 Copilot 生成的代码。

潜在偏差

Copilot 的训练数据来自现有的代码库,这些代码库可能包含可以由工具延续的偏差和错误。此外,Copilot 代码审查可能偏向于某些编程语言或编码风格,这可能导致次优或不完整的反馈。

后续步骤

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