Skip to main content

此版本的 GitHub Enterprise Server 将于以下日期停止服务 2025-08-27. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置代码扫描的默认设置

快速设置 code scanning 以自动查找易受攻击的代码。

谁可以使用此功能?

具有管理员角色的存储库所有者、组织所有者、安全管理员和用户

Code scanning 可用于以下存储库类型:

关于默认设置

code scanning 的默认设置是为存储库启用 code scanning 的最快、最简单、维护量最低的方法。 根据存储库中的代码,默认设置将自动创建自定义 code scanning 配置。 启用默认设置后,将扫描存储库中以 CodeQL 支持的语言编写的代码:

  • 每次推送到存储库的默认分支或任何受保护的分支时。 有关受保护分支的详细信息,请参阅“关于受保护分支”。
  • 根据存储库的默认分支或任何受保护的分支创建或提交拉取请求时,不包括分支中的拉取请求。
  • 每周一次。

注意

如果启用默认设置的存储库在 6 个月内没有发生任何推送和拉取请求,则会禁用每周计划,以节省 GitHub Actions 分钟。

还可以同时为组织中的多个或所有存储库启用默认设置。 有关批量启用的信息,请参阅“配置大规模代码扫描的默认设置”。

如果需要更精细地控制 code scanning 配置,则应改为配置高级设置。 有关详细信息,请参阅“配置代码扫描的高级设置”。

使用默认设置的要求

如果你的存储库满足以下条件,则符合使用 code scanning 的默认设置的条件:

  • 已启用 GitHub Actions。
  • 已启用 GitHub Advanced Security。

如果符合条件的存储库将来可能至少包含一种 CodeQL 支持的语言,我们建议为这些存储库启用默认设置。 如果在不包含任何 CodeQL 支持的语言的存储库上启用默认设置,则默认设置将不会运行任何扫描或使用任何 GitHub Actions 分钟。 如果将 CodeQL 支持的语言添加到仓库的默认分支,则默认设置将自动开始扫描 CodeQL 支持的语言,并使用 GitHub Actions 分钟。 有关 CodeQL 支持的语言的详细信息,请参阅“关于使用 CodeQL 进行代码扫描”。

对于自托管运行程序或 GitHub 托管的运行程序,你可以对所有 CodeQL 支持的语言使用默认设置。 请参阅本文后面的“向运行程序分配标签”。

默认设置为 Java 使用 none 生成模式,其他已编译语言则使用 autobuild 生成模式。 应配置自托管运行器,以确保可以运行 C/C++、C# 和 Swift 分析所需的所有命令。 JavaScript/TypeScript、Go、Ruby、Python 和 Kotlin 代码的分析目前不需要特殊配置。

自定义默认设置

建议在默认设置下开始使用 code scanning。 初始配置默认设置后,可以评估 code scanning 以查看其效果。 如果发现某些内容不符合预期,则可以自定义默认设置,以更好地满足你的需求。 有关详细信息,请参阅“评估代码扫描的默认设置”。

关于将非编译和已编译语言添加到默认设置

如果存储库中的代码更改为包含 Go、JavaScript/TypeScript、Python 或 Ruby,GitHub 将自动更新 code scanning 配置以包含新语言。 如果 code scanning 因新配置而失败,GitHub 将自动恢复以前的配置,因此存储库不会失去 code scanning 覆盖范围。

编译语言不会自动包含在默认设置配置中,因为它们通常需要更高级的配置,但你可以手动选择任何 CodeQL 支持的编译语言进行分析。

配置存储库的默认设置

注意

如果存储库中对所有 CodeQL 支持的语言分析失败,仍将启用默认设置,但其不会运行任何扫描或使用任何 GitHub Actions 分钟,直到将另一个 CodeQL 支持的语言添加到存储库或手动重新配置默认设置,并且对 CodeQL 支持的语言分析将成功。

  1. 在 GitHub 上,导航到存储库的主页面。

    注意

    如果要在分支上配置默认设置,必须先启用 GitHub Actions。 要启用 GitHub Actions,在仓库名称下,单击“ Actions”,然后单击“I understand my workflows, go ahead and enable them”********。 请注意,这将在分支上启用所有现有工作流。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“Security”部分中,单击“ Code security and analysis”****。

  4. 在“Code scanning”部分,选择“设置”,然后单击“默认”********。

    “Code security and analysis”设置的“Code scanning”部分的屏幕截图。 “默认设置”按钮以橙色轮廓突出显示。

    然后,你将看到“CodeQL 默认配置”对话框,其中汇总了默认设置自动创建的 code scanning 配置。

    注意

    如果存储库仅包含 CodeQL 支持的编译语言(例如 Java),则将转到设置页以选择要添加到默认设置配置的语言__。

  5. 或者,若要自定义code scanning设置,请单击“ Edit”****。

    • 若要在默认设置执行的分析中添加或移除语言,请在“语言”部分选择或取消选择该语言。 如果要使用默认设置分析 CodeQL 支持的编译语言,请在此处选择该语言。
    • 若要指定要使用的 CodeQL 查询套件,请在“查询套件”部分选择首选的查询套件。
  6. 查看存储库中默认设置的设置,然后单击“启用 CodeQL”。 这将触发一个工作流来测试新的自动生成的配置。

    注意

    如果要从高级设置切换到默认设置,则会看到一条警告,通知你默认设置将替代现有 code scanning 配置。 该警告意味着默认设置将禁用现有工作流文件,并阻止任何 CodeQL 分析 API 上传。

  7. (可选)要在启用后查看默认设置配置,请选择“”,然后单击“ View CodeQL configuration”****。

向运行程序分配标签

注意

启用默认设置时,Code scanning 会看到已分配的运行程序。 如果将某个运行程序分配给已在运行默认设置的仓库,则必须禁用并重新启用默认设置,才能开始使用该运行程序。 如果你添加了运行程序并想要开始使用,可以手动更改配置,而无需禁用和重新启用默认设置。

你也可以为自托管运行程序分配 code-scanning 标签。有关为自托管运行程序分配标签的信息,请参阅“Using labels with self-hosted runners”。

后续步骤

配置至少成功运行一次后,可以开始检查并解决 code scanning 警报。 有关 code scanning 警报的详细信息,请参阅“关于代码扫描警报”和“评估存储库的代码扫描警报”。

为 code scanning 配置默认设置后,可以阅读有关评估其效果以及可以采取的自定义步骤。 有关详细信息,请参阅“评估代码扫描的默认设置”。

可以在工具状态页上找到有关 code scanning 配置的详细信息,包括每次扫描的时间戳和扫描的文件百分比。 有关详细信息,请参阅“关于代码扫描的工具状态页”。

配置默认设置时,可能会遇到错误。 有关排查特定错误的信息,请参阅“代码扫描疑难解答”。