# 扫描仓库待办事项的 AI 扫描

查找跨语言的其他安全漏洞，并在现有 code scanning 待办事项中管理结果。

> [!NOTE]
> 存储库的 AI 扫描处于 公开预览 阶段，可能会发生更改。

存储库 AI 扫描使用专有工具，利用多个模型（如果可用）在存储库的默认分支上查找安全漏洞。 它支持所有语言，将覆盖范围扩展到 CodeQL 支持的语言之外，并在 CodeQL 已分析的语言中发现其他漏洞。 你可以按需运行扫描，无需依赖 CodeQL。

针对存储库的 AI 扫描会将发现添加到您的CodeQL积压工作中，并与code scanning警报并列。 可以使用现有工作流来分配警报、应用agentic autofix、将警报纳入安全活动，并将其链接到问题。

## Availability

可用性取决于谁拥有存储库及其可见性。

| 存储库所有者 | Visibility | 可用情况和要求                                             |
| ------ | ---------- | --------------------------------------------------- |
| 组织     | Public     | 在没有 active-committer 许可证的情况下可用                      |
| 组织     | 专用或内部      | 可用于 GitHub Code Security 或 GitHub Advanced Security |
| 个人账户   | Public     | 可用的                                                 |
| 个人账户   | 私密         | 不可用                                                 |

不需要GitHub Copilot许可证。

## Billing

按需运行适用于存储库的 AI 扫描，每个扫描都会消耗**Code SecurityAI credits**。 此用法独立于活跃提交者许可。

使用情况将计费给负责组织计费的帐户。

对于个人帐户拥有的公共存储库，除非存储库所有者具有 GitHub Copilot 组织或企业提供的许可证，否则使用情况将计入该个人帐户。 在这种情况下，使用费用将计入提供许可证的组织或企业。

如果计费帐户通过 AI credits 权益获得包含的 GitHub Copilot，AI 扫描将首先使用这些额度。 在包含额度用尽后，或者如果帐户没有包含额度，则按用量计费并受适用预算的约束。 如果硬性预算限制导致没有 Code SecurityAI credits 额度可用，AI 扫描无法生成发现。 当管理员增加限制预算或新的计费周期开始时，扫描将恢复。

针对存储库的 AI 扫描存在一些限制，以防止其消耗大量预算。 检测步骤的时长和数量上限分别为 30 分钟和 150,000 AI credits。

有关详细信息，请参阅“[GitHub Advanced Security 许可证计费](/zh/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed)”。

## AI 扫描的工作原理

对存储库 **具有写入访问权限** 的用户可以手动触发对存储库默认分支的扫描。 AI 代理在存储库中搜索以标识要检查的文件和函数。 它选择代码进行进一步分析，而不是完整读取每个文件。 代理在时间预算内运行。 当资源配额用尽时，它会停止搜索并报告其发现。

AI 扫描可独立于 CodeQL 运行。 如果存储库已有 CodeQL 警报，AI Scan 会使用这些警报来抑制匹配的发现。

## AI 扫描结果如何显示在代码扫描待办列表中

扫描完成后，其发现将作为警报显示在存储库 code scanning 的警报列表中，在 **“安全和质量**”选项卡下，以及来自 CodeQL 的警报。 可以按 **AI 扫描** 工具筛选列表，以专注于这些发现。

使用现有的警报严重性筛选器确定发现项评估的优先级。 你可以分配警报、将警报链接到问题、将其包含在安全活动中，或者使用 agentic autofix 来帮助修复这些问题。 请参阅“[访问存储库的代码扫描警报](/zh/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assess-alerts)”。

在公开预览期间，合并潜在修补程序不会自动触发另一个 AI 扫描。 必须手动触发新的扫描来检查已解决的警报。

仅当应用的修补程序更改触发警报的代码的确切行时，警报才会自动关闭。 否则，必须手动关闭警报。

## Limitations

* 扫描仅分析默认分支。
* 手动触发扫描。 不支持计划扫描和推送时的自动扫描。
* 代理在时间预算内选择要检查的代码。 扫描并不详尽地分析每个文件或保证发现每个漏洞。
* 尽力与现有 CodeQL 警报匹配，因此可能会出现重复的警报。
* AI 生成的结果可能不准确。 在决定如何解决它之前，请查看每个问题项。

有关负责任地使用 AI 支持的安全功能的指导，请参阅 [应用卡片：GitHub 安全与质量 AI 功能](/zh/code-security/responsible-use/security-and-quality-ai-features)。

## 支持的语言

存储库的 AI 扫描支持所有语言，包括已支持 CodeQL的语言。 将其与 CodeQL 一起使用，以查找其他漏洞，或将扫描覆盖范围扩展到 CodeQL 不支持的语言。

## 为存储库启用 AI 扫描

在为存储库启用 AI 扫描之前，请确认存储库资格、查看计费帐户中包含的 AI credits，以及为按量计费的用量配置预算。

* **企业**：企业所有者可以允许或阻止组织为存储库启用 AI 扫描。 此策略控制对拉取请求的 AI 扫描和存储库积压工作 AI 扫描。 默认情况下，策略设置为“不允许”。 允许 AI 扫描并不会自动启用它。 请参阅“[强制实施企业的代码安全性和分析策略](/zh/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-to-manage-ai-scan-in-your-enterprises-repositories)”。
* **组织**：组织所有者和安全经理可以为符合条件的存储库启用存储库的 AI 扫描。 存储库继承组织设置。 请参阅“[配置组织的全局安全设置](/zh/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#enabling-ai-scan-for-repositories)”。
* **组织拥有的存储库**：当组织启用了 AI 扫描时，具有存储库管理员访问权限的人员可以选择退出。 在禁用组织设置时，他们无法选择启用。 若要禁用该功能，请转到存储库的“设置”页，在“Advanced Security”下，在“Code Security”下，关闭 **存储库的 AI 扫描**。

## 后续步骤

若要运行扫描并管理生成的警报，请参阅 [查看和管理存储库的默认分支上的 AI 扫描警报](/zh/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/viewing-and-managing-ai-scan-alerts)。