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 发现** 仪表板中的 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** 选项卡下。
    

当任一类型的分析检测到质量问题时, Copilot 自动修复 建议开发人员可以查看并应用相关的修补程序。

在拉取请求中,Code Quality 结果显示为 github-code-quality 机器人留下的评论,其中尽可能包括建议的自动修复。

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

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

输入处理

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

语言模型分析

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

响应生成

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

输出格式设置

由 Code Quality 生成的响应将直接呈现给用户,并提供链接到特定文件的特定行的代码反馈。 如果 Code Quality 提供了代码建议,建议将呈现为建议的更改,可通过几次单击来应用该更改。

          GitHub Copilot自动修复 建议

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

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

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

用例 GitHub Code Quality

GitHub Code Quality 的目标是:

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

提高GitHub Code Quality的性能

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

局限性GitHub Code Quality

          Code Quality 的 LLM 驱动分析的局限性

          Code Quality的 LLM 驱动的分析使用与GitHub Copilot代码评审相同的基础语言模型和分析引擎。 因此,分析代码质量时,它有着类似的限制。 关键考虑因素包括:
  • 不完整的检测
  • 误报
  • 代码建议准确性
  • 潜在偏见

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

应始终查看由 GitHub Code QualityLLM 提供支持的分析显示的结果,以验证它们对代码库的准确性和适用性。

局限性Copilot 自动修复

          Code Quality 的 Copilot 自动修复 发现无法为每种情况下的每个发现生成修复。 该功能会尽力运行,无法保证每次都能 100% 成功。

在审核来自 Copilot 自动修复 的建议时,必须始终考虑 AI 的限制,并在接受建议前根据需要修改。 在应用建议之前,应始终仔细查看和验证 Copilot 自动修复 建议。

有关Copilot 自动修复的限制、Copilot 自动修复建议的质量以及缓解其限制的最佳方法的详细信息,请参阅负责任地使用 Copilot Autofix 进行代码扫描

提供反馈

社区讨论中,你可以提供对的反馈。

后续步骤

查看默认分支上的工作原理 GitHub Code Quality ,以显示代码质量问题,并帮助你一目了然地了解存储库的代码运行状况。 请参阅“GitHub 代码质量快速入门”。