Skip to main content

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

了解如何通过了解其用途、功能和限制来安全负责任地使用 GitHub Copilot代码评审 。

关于 GitHub Copilot代码评审

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

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

Copilot的审查可以通过自定义说明进行定制,这些说明是对编码风格和最佳实践的自然语言描述。 有关详细信息,请参阅“为GitHub Copilot添加存储库自定义说明”。

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

输入处理

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

语言模型分析

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

响应生成

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

输出格式设置

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

如果 Copilot 提供了代码建议,建议将呈现为建议的更改,可通过几次单击来应用该更改。

模型的用法

Copilot 代码评审 是一款专门构建的产品,它使用模型、提示和系统行为的精心优化组合,在各种代码库中提供一致的高质量反馈。 模型切换不受支持,因为更改模型可能会损害可靠性、用户体验和评审评论的质量。 每次使用此功能都会消耗 AI credits。 请参阅 个人基于使用情况的计费组织和企业的基于使用情况的计费

注意

Copilot 代码评审 可能使用组织的“Models”设置页上未启用的模型。 “模型”设置页仅可控制 副驾驶聊天。

由于 Copilot 代码评审 已正式发布,因此所有模型使用情况都将受到正式版条款的约束。 请参阅“管理组织中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 代码评审的详细信息,请参阅: