Skip to main content

负责任地使用 GitHub 代码质量工具

通过了解其用途、功能和局限性,负责任地使用 GitHub Code Quality。

注意

GitHub Code Quality 当前正处于 公共预览版 阶段,并可能会发生变化。 在 公共预览版期间,Code Quality 不会计费,尽管 Code Quality 扫描将使用 GitHub Actions 分钟。

关于 GitHub Code Quality

GitHub Code Quality 会提供可操作的反馈,并为拉取请求和默认分支中的任何发现结果提供自动修复建议,帮助用户提高代码的可靠性、可维护性和整体项目运行状况。

启用 Code Quality 时,将运行两种类型的分析:

  •           **CodeQL 质量查询**通过 code scanning 分析运行,识别代码在可维护性、可靠性或风格方面的问题。 这会在针对默认分支的所有拉取请求中的已更改代码上运行。 它还会在整个默认分支上定期运行。
    
  •           **基于大型语言模型 (LLM) 的分析**可提供有关潜在质量问题的额外见解,超出 CodeQL 等确定性引擎的覆盖范围。 这会在最近推送到默认分支的已更改文件上自动运行。 这些发现结果会显示在存储库“安全”选项卡下 Code Quality 的 **AI 发现** 仪表板中。
    

当任一类型的分析检测到质量问题时,Copilot Autofix 会建议相关修复方案,开发人员可以查看并应用该方案。

在拉取请求上,Code Quality 结果会以 github-code-quality 机器人留下的评论形式显示,尽可能包含建议的自动修复方案。

针对最近推送的基于 LLM 的分析

每次推送到默认分支后,LLM 都会分析最近更改的文件,了解可维护性、可靠性和其他质量问题。 Code Quality 检查你的代码,并使用自然语言处理和机器学习相结合的方式提供反馈。

输入处理

代码更改与其他相关的上下文信息相结合,形成提示,并将该提示发送到大型语言模型。

语言模型分析

然后,该提示会传递给 Copilot 语言模型,这是一个经过大量文本数据训练的神经网络。 语言模型分析输入提示。

响应生成

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

输出格式设置

Code Quality 生成的响应会直接呈现给用户,并提供与特定文件特定行相关的代码反馈。 如果 Code Quality 提供了代码建议,该建议会作为建议的更改呈现,只需单击几下即可应用。

GitHub Copilot Autofix 的建议

在拉取请求上,code scanning 分析发现的 Code Quality 结果会向 LLM 发送输入。 如果 LLM 可以生成潜在修复方案,github-code-quality 机器人会直接在拉取请求中发布带有建议更改的评论。

此外,用户可以为默认分支中的结果请求生成自动修复方案。

有关 GitHub Copilot Autofix 的建议生成过程的详细信息,请参阅 负责任地使用 Copilot Autofix 进行代码扫描

GitHub Code Quality 的用例

GitHub Code Quality 的目标是:

  • 跨整个存储库揭示代码质量问题,以便开发人员和存储库管理员可以快速识别、优先处理和报告风险区域。
  • 通过为默认分支扫描发现的结果以及最近推送到默认分支的发现结果提供 Copilot Autofix 建议,加快修复工作。
  • 快速提供关于开发人员代码的具有指导意义的反馈。 在拉取请求上,Code Quality 结合最佳做法信息、代码库详细信息和发现结果,向开发人员建议潜在修复方案。

优化 GitHub Code Quality 的性能

如果在拉取请求上遇到建议修复方案相关的任何问题或局限性,建议你通过单击 github-code-quality 机器人评论上的点赞和点踩按钮提供反馈。 这有助于 GitHub 改进该工具并解决任何问题或限制。

GitHub Code Quality 的限制

Code Quality 的 LLM 驱动分析限制

Code Quality 的基于 LLM 的分析使用与 GitHub Copilot 代码评审 相同的基础语言模型和分析引擎。 因此,分析代码质量时,它有着类似的限制。 关键考虑因素包括:

  • 不完整的检测
  • 误报
  • 代码建议准确性
  • 潜在偏见

有关这些限制的详细信息,请参阅 负责任地使用 GitHub Copilot 代码评审

你应始终查看 GitHub Code Quality 基于 LLM 的分析呈现的发现结果,以验证其准确性和对代码库的适用性。

Copilot Autofix 的限制

针对 Code Quality 发现结果的 Copilot Autofix 并非在所有情况下都能为每个发现结果生成修复方案。 该功能会尽力运行,无法保证每次都能 100% 成功。

当查看来自 Copilot Autofix 的建议时,必须始终考虑 AI 的局限性,并在接受更改之前根据需要编辑更改。 应用 Copilot Autofix 建议之前,你应始终仔细查看并验证该建议。

有关 Copilot Autofix 的局限性、Copilot Autofix 建议的质量以及减轻其局限性的最佳方式,请参阅 负责任地使用 Copilot Autofix 进行代码扫描

提供反馈

你可以在社区讨论中提供关于GitHub Code Quality的反馈。

后续步骤

了解 GitHub Code Quality 如何在默认分支上工作,以呈现代码质量问题,并帮助你快速了解存储库的代码运行状况。 请参阅“GitHub 代码质量快速入门”。