Skip to main content

关于代码扫描的自动修复

自动修复会自动为 code scanning 警报生成修补程序,帮助你修正现有漏洞。

谁可以使用此功能?

Copilot Autofix的code scanning可用于以下存储库类型:

  • 公共存储库位于 GitHub.com
  • GitHub Team 上的组织拥有的存储库,GitHub Code Security 已启用

此外,智能体自动修复还需要 Copilot cloud agent 在存储库中可用。

Autofix 提供有针对性的建议来帮助解决 code scanning 警报,以便避免引入新的安全漏洞。 潜在修复由大型语言模型 (LLM) 使用来自代码库和 code scanning 分析的数据自动生成。

自动修复的工作原理

Autofix 会将某个code scanning告警的描述和位置转化为可能修复该告警的代码更改。 它与 OpenAI 中的大型语言模型进行交互,该模型 GPT-5.3-Codex 具有足够的生成功能,可在代码中生成建议的修复,并为这些修补程序生成解释性文本。

修复告警的方式有两种:智能体自动修复和 Copilot Autofix。 如果存储库中提供了 Copilot cloud agent,分配警报时将使用代理式自动修复,而不是 Copilot Autofix。

智能体自动修复

注意

此功能目前以公共预览版提供,可能会更改。

将 code scanning 警报分配给 Copilot,使其为你处理该警报。 分派警报会开启一次代理会话:Copilot cloud agent 会调用工具来探索受影响文件之外的代码库,生成修复,验证修复(例如,通过重新运行 CodeQL),并反复迭代,直到创建一个包含这些更改的拉取请求。 请参阅“解决代码扫描警报”。

请记住以下几点:

  • 代理式自动修复要求仓库中可用 Copilot cloud agent 和 Copilot Autofix。 如果 Copilot cloud agent 不可用,则分配提醒时会改为使用 Copilot Autofix。
  • 每个代理式自动修复会话均按 Copilot cloud agent 会话计费,并消耗 AI credits。 请参阅“关于 GitHub Copilot 云代理”。
  • Copilot 在生成修复时,会遵循为存储库或组织配置的任何自定义说明。
  • 智能体自动修复按“尽力而为”原则运行。 Copilot 使用代码扫描查询套件重新运行 CodeQL 来验证修复,因此无法确认修复程序是否解决了自定义查询或安全扩展查询套件生成的警报。 来自第三方工具的警报,其修复质量也无法得到保证。

使用 Copilot Autofix 获取建议的修复方案

Copilot Autofix 会为警报生成一个修复建议,由你自行审查并应用。

您无需订阅 GitHub Copilot 即可使用 GitHub Copilot Autofix,且不会消耗 AI credits。 Copilot Autofix 可用于所有 GitHub.com公共存储库,以及拥有许可证 GitHub Code Security的组织和企业拥有的内部或专用存储库。

Copilot Autofix 默认允许并为每个使用 CodeQL 的存储库启用,无论它对 code scanning 使用的是默认设置还是高级设置。 没有单独启用 Copilot Autofix 的步骤:启用 code scanning 和 CodeQL 即可。 请参阅“配置代码扫描的默认设置”。

企业、组织和存储库级别的管理员可以选择禁用 Copilot Autofix。 如果 Copilot Autofix 在您的层级被禁用,您可以按照禁用 Copilot Autofix 的相同步骤重新启用它,并选择允许 的选项。 若要了解如何在每个级别进行管理 Copilot Autofix ,请参阅 禁用代码扫描安全警报的自动修复