Autofix 提供有针对性的建议来帮助解决 code scanning 警报,以便避免引入新的安全漏洞。 潜在修复由大型语言模型(LLM)通过利用来自代码库和code scanning分析的数据自动生成。
自动修复的工作原理
Autofix 会将某个code scanning告警的描述和位置转化为可能修复该告警的代码更改。 它与 OpenAI 中的大型语言模型进行交互,该模型 GPT-5.3-Codex 具有足够的生成功能,可在代码中生成建议的修复,并为这些修补程序生成解释性文本。
修复告警有两种方式:智能体自动修复和 Copilot自动修复。 如果存储库中提供了 Copilot云代理,分配警报时将使用代理式自动修复,而不是 Copilot自动修复。
代理式自动修复
注意
此功能目前以公共预览版提供,可能会更改。
将 code scanning 警报分配给 Copilot,使其为你处理该警报。 分派警报会开启一次代理会话:Copilot云代理 会调用工具来探索受影响文件之外的代码库,生成修复,验证修复(例如,通过重新运行 CodeQL),并反复迭代,直到创建一个包含这些更改的拉取请求。 请参阅“解决代码扫描警报”。
请记住以下几点:
- 代理式自动修复要求仓库中可用 Copilot云代理 和 Copilot自动修复。 如果 Copilot云代理 不可用,则分配提醒时会改为使用 Copilot自动修复。
- 每个代理式自动修复会话均按 Copilot云代理 会话计费,并消耗 AI credits。 请参阅“关于 GitHub Copilot 云代理”。
- Copilot 在生成修复时,会遵循为存储库或组织配置的任何自定义说明。
- 智能体自动修复按“尽力而为”原则运行。 Copilot 使用代码扫描查询套件重新运行 CodeQL 来验证修复,因此无法确认修复程序是否解决了自定义查询或安全扩展查询套件生成的警报。 来自第三方工具的警报,其修复质量也无法得到保证。
使用 Copilot自动修复 获取建议的修复方案
Copilot自动修复 会为警报生成一个修复建议,由你自行审查并应用。
您无需订阅 GitHub Copilot 即可使用 GitHub Copilot自动修复,且不会消耗 AI credits。 Copilot自动修复 可用于所有 GitHub.com公共存储库,以及拥有许可证 GitHub Code Security的组织和企业拥有的内部或专用存储库。
Copilot自动修复 默认允许并为每个使用 CodeQL 的存储库启用,无论它对 code scanning 使用的是默认设置还是高级设置。 没有单独启用 Copilot自动修复 的步骤:启用 code scanning 和 CodeQL 即可。 请参阅“配置代码扫描的默认设置”。
企业、组织和存储库级别的管理员可以选择禁用 Copilot自动修复。 如果 Copilot自动修复 在您的层级被禁用,您可以按照禁用 Copilot自动修复 的相同步骤重新启用它,并选择允许 的选项。 若要了解如何在每个级别进行管理 Copilot自动修复 ,请参阅 禁用代码扫描安全警报的自动修复。