Skip to main content

配置代码扫描的高级设置

可以为存储库配置高级设置,以使用高度可自定义的 code scanning 配置查找代码中的安全漏洞。

谁可以使用此功能

People with admin permissions to a repository, or the security manager role for the repository, can configure code scanning for that repository. People with write permissions to a repository can also configure code scanning, but only by creating a workflow file or manually uploading a SARIF file.

Code scanning 可用于 GitHub.com 上的所有公共存储库。 Code scanning 也可用于使用 GitHub Enterprise Cloud 并拥有 GitHub Advanced Security 许可证的组织所拥有的专用存储库。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

关于 code scanning 的高级设置

当你需要更精细地控制 code scanning 配置时,code scanning 的高级设置非常有用。 通过创建和编辑 CodeQL 工作流文件,可以更改扫描计划、扫描任何 CodeQL 支持的语言、使用矩阵生成等。

还可以使用第三方工具配置 code scanning。 有关详细信息,请参阅“使用第三方操作配置 code scanning”。

如果使用多个配置运行代码扫描,则有时多个配置会生成相同的警报。 如果警报来自多个配置,你可在警报页上查看每个配置的警报状态。 有关详细信息,请参阅“关于代码扫描警报”。

如果不需要高度可自定义的 code scanning 配置,请考虑使用 code scanning 的默认设置。 有关默认设置资格的详细信息,请参阅“配置代码扫描的默认设置”。

先决条件

如果你的存储库满足以下条件,则其符合使用高级设置的条件:

  • 使用 CodeQL 支持的语言,或者你计划使用第三方工具生成代码扫描结果。
  • 已启用 GitHub Actions。
  • 公开可见。

为存储库配置高级设置

需要自定义 code scanning 时,code scanning 的高级设置非常有用。 通过创建和编辑工作流文件,可以选择要运行的查询、更改扫描计划、选择要扫描的语言、使用矩阵生成等。

使用 CodeQL 为 code scanning 配置高级设置

可以通过创建和编辑工作流文件来自定义 code scanning。 选择高级设置会生成一个基本工作流文件供你自定义。

使用操作运行 code scanning 将消耗分钟数。 有关详细信息,请参阅“关于 GitHub Actions 的计费”。

注意:可以在具有写入权限的任何公共存储库中配置 code scanning。

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

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

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

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 向下滚动到“Code scanning”部分,选择“设置”,然后单击“高级” 。

    注意:如果要从默认设置切换到高级设置,请在“Code scanning”部分中,选择“”,然后单击 “切换到高级” 。 在出现的弹出窗口中,单击“禁用 CodeQL”。

    “代码安全性和分析”设置的“Code scanning”部分的屏幕截图。 “高级设置”按钮以橙色轮廓突出显示。

  5. 要自定义 code scanning 扫描代码的方式,请编辑工作流程。

    通常,可以提交 CodeQL 分析工作流程 而无需对其进行任何更改。 但是,许多第三方工作流需要额外的配置,因此请在提交之前读取工作流中的注释。

    有关详细信息,请参阅“自定义 代码扫描的高级设置”和“对编译语言进行 CodeQL 代码扫描”。

  6. 单击“提交更改…”以显示提交更改窗体。

    用于创建新文件的窗体的屏幕截图。 在文件名右侧,标有“提交更改...”的绿色按钮以深橙色框出。

  7. 在“提交消息”字段中,键入提交消息。

  8. 选择是直接提交到默认分支,还是创建新分支并启动拉取请求。

  9. 单击“提交新文件”将工作流文件提交到默认分支或单击“建议新文件”将文件提交到新分支 。

  10. 如果创建了新分支,请单击“创建拉取请求”并打开拉取请求,将更改合并到默认分支。

在建议的 CodeQL 分析工作流程 中,code scanning 配置为在每次将更改推送到默认分支或任何受保护分支或者对默认分支提出拉取请求时分析代码。 因此,code scanning 将立即开始。

用于代码扫描的 on:pull_requeston:push 触发器各自用于不同的目的。 有关详细信息,请参阅“自定义 代码扫描的高级设置”。

有关批量启用的信息,请参阅“使用 CodeQL 大规模为代码扫描配置高级设置”。

使用第三方操作配置 code scanning

注意:Advanced Security 的初始工作流已合并到存储库的“操作”选项卡中的“安全”类别中。 这种新配置目前处于 beta 版本,可能会有变动。

GitHub 为 code scanning 等安全功能提供起始工作流。 您可以使用这些建议的工作流程来构建 code scanning 工作流程,而不是从头开始。

使用操作运行 code scanning 将消耗分钟数。 有关详细信息,请参阅“关于 GitHub Actions 的计费”。

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

  2. 在存储库名称下,单击 “操作”。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

  3. 如果存储库已配置并运行至少一个工作流,请单击“新建工作流”以显示起始工作流。 如果当前没有为存储库配置工作流程,请转到下一步。

    存储库的“操作”选项卡的屏幕截图。 “新建工作流”按钮用深橙色框标出。

  4. 在“选择工作流”或“GitHub Actions 入门”视图中,向下滚动到“安全性”类别,然后单击要配置的工作流下的“配置”。 可能需要单击“查看全部”以查找要配置的安全工作流。

    起始工作流的“安全性”类别的屏幕截图。 “配置”按钮和“查看全部”链接通过橙色轮廓突出显示。

  5. 按照工作流中的任何说明,根据你的需要对其进行自定义。 有关工作流的更多常规帮助,请单击工作流页面右窗格中的“文档”。

    显示打开起始工作流文件以便编辑的屏幕截图。 “文档”按钮以橙色轮廓突出显示。

    有关详细信息,请参阅“使用入门工作流程”和“自定义 代码扫描的高级设置”。

后续步骤

配置 code scanning 并允许其操作完成后,你可以: