TOPIC COLLECTION
GitHub AI Scan是什么?PR怎么开、和CodeQL差在哪、要不要Copilot
GitHub于2026-10-15宣布AI Scan for pull requests正式GA:用AI引擎补CodeQL未覆盖的语言(PHP、Shell/Bash、Terraform HCL、Dockerfile、JSP、Blazor等)。结果带AI标记、仅advisory不挡合并;公仓可用,私仓需Code Security/GHAS;不需要Copilot许可。
资料更新:2026-10-16
依据GitHub Changelog(2026-10-15)与docs.github.com「AI Scan for pull requests」文档整理;计费与企业策略以GitHub当前账单页为准。未做实测。核查2026-10-16(新加坡时间)。
主题标签:GitHub AI Scan、CodeQL、PR安全扫描、GitHub Code Security、AI代码审查
GitHub AI Scan是什么?它是GitHub代码扫描里的一项面向Pull Request的AI安全检测,在2026-10-15进入正式可用(GA)。作用很具体:CodeQL暂时扫不到的语言和框架,由AI引擎在PR改动里找漏洞线索——文档点名的例子包括PHP、Shell/Bash、Terraform(HCL)、Dockerfile、Java的JSP、C#的Blazor等。发现会出现在PR的Conversation和Files changed页,带「AI」标记,多数还带风险说明和修复建议。它是advisory(建议性)的:不会让Code scanning检查变红,也不能靠规则集卡死合并。想补一层「合进主线前的安全信号」,又不想立刻上硬门禁,这项功能就是为这种场景准备的。
和CodeQL差在哪
| 对比项 | CodeQL | AI Scan |
|---|---|---|
| 覆盖语言 | 官方支持的一套(需确认当前列表) | 补CodeQL尚未覆盖的语言/框架 |
| 运行范围 | 可做仓库级分析、安全页积压告警 | 只扫PR,不进仓库安全视图积压 |
| 是否挡合并 | 可配置为检查失败并配合规则集拦截 | 不失败检查、不能用规则集强制拦截 |
| 是否要构建 | 部分语言依赖构建配置 | 不要求单独扫描工具或构建系统 |
| 与Copilot关系 | 无关 | 不需要GitHub Copilot许可;修复建议可走Copilot Autofix(若可用) |
一句话:CodeQL仍是「可强制门禁」的主力;AI Scan是「多一层眼睛」,专门照顾那些CodeQL还管不到的文件类型。日常用GitHub Copilot或Cursor写代码,不等于已经开了AI Scan——安全扫描是仓库设置,不是编辑器插件。引擎分析PR代码时可用代码搜索补上下文,但不会读你仓库里的 /.github/copilot-instructions.md 或 /CLAUDE.md 之类自定义指令文件。
怎么开:按仓库类型走
- 先确认资格:组织/个人的公开仓可用;组织的私有/内部仓需要GitHub Code Security或GitHub Advanced Security;个人账号下的私有仓暂不可用;托管用户账号个人命名空间下的仓也不支持。
- 打开code scanning:仓库要先启用代码扫描。AI Scan不依赖CodeQL默认设置是否跑通——就算CodeQL还在排队或失败,AI Scan仍可跑。
- 打开AI Scan开关:企业默认策略常是「不允许」,要企业所有者先放行;组织所有者/安全管理员在组织全局安全设置里开启后,符合条件的仓会继承;仓管理员可再选择退出。个人公开仓则在Code scanning设置里直接拨「AI Scan for pull requests」。组织一旦打开,符合条件且已开code scanning的仓会立刻生效,仓管退出前就可能开始消耗AI Credits,开启前先看账单与预算。
- 提PR看结果:非fork、非Dependabot的PR,若改动落在支持语言上,创建PR和每次新提交都会触发。结果可能比CodeQL先出来或后出来,属正常。
- 给反馈:每条发现有赞/踩,用来改进检测质量;AI工具会有误报,别当圣旨。
计费:吃的是Code Security AI Credits
AI Scan消耗的是Code Security AI Credits,在企业账单的「AI usage」里记在Advanced Security相关产品下,可按SKU设预算。只有「符合条件的PR被扫到」才开始计费。若硬预算把额度卡到零,就出不了发现,加预算或等到下个账期才会恢复。个人公开仓的用量记在个人账上;若该人持有组织发的Copilot entitlement所含AI额度,会先扣那部分。组织仓记在组织账单责任账户上。细节以GitHub Advanced Security计费文档为准——本站不报单价,避免过期。
检测类别(文档当前列表)
文档列出的类别包括:字符串注入(不安全拼SQL/HTML/shell/JSON/YAML等)、弱加密、访问控制破坏(路径穿越、CSRF缺口、开放重定向)、敏感数据暴露、安全错误配置、认证失败、数据完整性问题、SSRF、供应链风险(未钉死的action/包/镜像等)。类别会随产品演进变化,以文档最新页为准。局限也很明确:不做全仓扫描、暂不能进规则集强制合并、不跑fork与Dependabot PR、语言列表会变、存在误报。
和本地AI审代码怎么配合
AI Scan盯的是「合进主线前的安全信号」;本地用Claude Code、Cursor、Copilot做的是「写的时候先挡一层」。两边不互斥:本地审逻辑与风格,AI Scan+CodeQL审注入、密钥、错误配置。团队若在做系统化review流程,可看AI代码审查与开发者工具、AI编程。也可用REST管理组织或仓库的 ai-scan 设置,安全总览的Coverage视图能看生效状态。开启前先和安全负责人对齐:哪些仓继承组织默认、哪些要退出、预算告警谁接——比事后为Credits账单吵架省事。
常见问题
必须买Copilot才能用AI Scan吗?
不需要。官方明确:使用AI Scan不要求GitHub Copilot许可。有Copilot时,部分发现可能附带Autofix建议,那是加分项,不是门槛。
发现会不会卡住我的合并?
不会。AI Scan结果是advisory,不能通过ruleset强制阻止合并;真要门禁仍靠CodeQL等可失败的检查。
Fork来的PR和Dependabot PR会扫吗?
不会。文档写明不在fork PR和Dependabot创建的PR上运行。
私有仓库怎么才能用?
组织拥有的私有/内部仓需要Code Security或GHAS;个人账号私有仓当前不可用。
支持哪些语言?
以「CodeQL尚未覆盖」的子集为准,官方举例含PHP、Shell/Bash、Terraform HCL、Dockerfile、JSP、Blazor等;完整列表会变,以docs为准。
入口:GitHub。用Claude或ChatGPT做人工复核时,把PR里的AI标记发现贴进去交叉验证即可。
来源与核查日期
- GitHub Changelog:AI Scan for pull requests generally available(2026-10-15)
- GitHub Docs:AI Scan for pull requests
核查日期:2026-10-16(新加坡时间)。功能、计费与企业默认策略以GitHub控制台及文档当日内容为准。