Skip to main content

配置代码扫描的默认设置

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

谁可以使用此功能?

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

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

  • GitHub.com 上的公共存储库
  • GitHub Team、GitHub Enterprise Cloud 或 GitHub Enterprise Server 上的组织拥有的存储库,已启用 GitHub Code Security

建议在默认设置下开始使用 code scanning。 在首次配置默认设置后,可以评估 code scanning 以查看其是否正常工作,并对其进行定制化设置,以更好地适应你的需求。 有关详细信息,请参阅“关于代码扫描的设置类型”。

先决条件

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

  • 已启用 GitHub Actions。
  • 它公开可见,或已启用 GitHub Code Security。

配置存储库的默认设置

注意

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

前往存储库

注意

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

zh-CN: 1. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

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

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

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

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

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

    注意

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

  3. 如果您的存储库中的项目依赖于私有包注册表中的依赖项,则可以授予 code scanning 访问这些依赖项的权限。 这可以提高分析的结果和质量。 请参阅“授予安全功能访问专用注册表的权限”。

  4. (可选)调整影响默认设置的其他配置选项。 请参阅“code scanning 的代码库属性”。

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

注意

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

在自托管或 大型运行器

上运行默认设置

可以对自承载运行程序的所有 CodeQL支持的语言使用默认设置,也可以对 GitHub托管运行程序使用默认设置。

注意

启用默认设置后,Code scanning 会检测到分配的运行程序。 如果将运行程序分配给已在运行默认设置的存储库,则必须先禁用然后重新启用默认设置才能开始使用该运行程序。 如果你添加了运行程序并想要开始使用它,则可以手动更改配置,而无需先禁用然后重新启用默认设置。

给自托管运行者分配标签

若要为用于默认设置分配自承载运行器,可以使用 默认 code-scanning 标签,或者可以选择为它们提供自定义标签,以便单个存储库可以使用不同的运行器。 有关向自承载运行器分配标签的信息,请参阅 将标签与自托管运行程序结合使用

向自托管运行程序分配自定义标签后,你的存储库便可使用这些运行程序进行 code scanning 默认设置。

还可以使用 security configurations 为自主托管的运行器分配标签,以用于code scanning。 请参阅“删除自定义安全配置”。

分配 大型运行器

要分配 大型运行器,请将运行程序命名为 code-scanning。 这会自动向 大型运行器 添加 code-scanning 标签。 一个组织只能具有一个带 code-scanning 标签的 大型运行器,并且该运行程序将处理组织存储库中有权访问运行程序组的所有 code scanning 作业。 请参阅“为默认设置配置更大的运行器”。

确保构建支持

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

后续步骤

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

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

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

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