跳到主要内容

配置代码扫描的高级设置

您可以配置代码库的高级设置,以使用高度可定制的代码扫描配置查找代码中的安全漏洞。

谁可以使用此功能?

代码库所有者、组织所有者、安全管理员以及具有**管理员**角色的用户

代码扫描适用于以下类型的代码库

  • GitHub.com 上的公共代码库
  • 启用了GitHub 高级安全功能的 GitHub Enterprise Cloud 上的组织拥有的代码库

关于代码扫描的高级设置

当您需要自定义代码扫描时,代码扫描的高级设置非常有用。通过创建和编辑工作流程文件,您可以定义如何构建编译语言、选择要运行的查询、选择要扫描的语言、使用矩阵构建等等。您还可以访问所有用于控制工作流程的选项,例如:更改扫描计划、定义工作流程触发器、指定要使用的专用运行器。有关 GitHub Actions 工作流程的更多信息,请参阅“关于工作流程”。

您还可以使用第三方工具配置代码扫描。有关更多信息,请参阅“使用第三方 Actions 配置代码扫描”。

如果您使用多个配置运行代码扫描,则警报有时会具有多个分析来源。如果警报具有多个分析来源,则可以在警报页面上查看每个分析来源的警报状态。有关更多信息,请参阅“关于代码扫描警报”。

如果您不需要高度可定制的代码扫描配置,请考虑使用代码扫描的默认设置。有关默认设置资格的更多信息,请参阅“配置代码扫描的默认设置”。

先决条件

如果您的代码库满足以下要求,则有资格进行高级设置。

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

使用 CodeQL 配置代码扫描的高级设置

您可以通过创建和编辑工作流程文件来自定义 CodeQL 分析。选择高级设置会为您生成一个基本的工作流程文件,您可以使用标准工作流程语法和为 CodeQL action 指定选项来自定义它。请参阅“关于工作流程”和“自定义代码扫描的高级设置”。

使用 Actions 运行代码扫描将使用分钟数。有关更多信息,请参阅“关于 GitHub Actions 的计费”。

注意

您可以为任何您具有写入权限的公共代码库配置代码扫描。

  1. 在 GitHub 上,导航到代码库的主页。

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

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  3. 在侧边栏的“安全”部分,点击 代码安全和分析

  4. 向下滚动到“代码扫描”部分,选择设置,然后点击高级

    注意

    如果您要从默认设置切换到高级设置,在“代码扫描”部分,选择,然后点击 切换到高级。在出现的弹出窗口中,点击禁用 CodeQL

    Screenshot of the "Code scanning" section of "Code security and analysis" settings. The "Advanced setup" button is highlighted with an orange outline.

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

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

    更多信息,请参见“自定义代码扫描的高级设置”和“用于编译语言的 CodeQL 代码扫描”。

  6. 点击提交更改…以显示提交更改表单。

    Screenshot of the form to create a new file. To the right of the file name, a green button, labeled "Commit changes...", is outlined in dark orange.

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

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

  9. 点击提交新文件将工作流程文件提交到默认分支,或点击提出新文件将文件提交到新分支。

  10. 如果您创建了一个新分支,请点击创建拉取请求并打开一个拉取请求以将您的更改合并到默认分支。

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

代码扫描的on:pull_requeston:push 触发器各有不同的用途。请参见“自定义代码扫描的高级设置”和“触发工作流程”。

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

使用第三方操作配置代码扫描

GitHub 包括用于第三方操作以及 CodeQL 操作的工作流程模板。使用工作流程模板比单独编写工作流程要容易得多。

使用 Actions 运行代码扫描将使用分钟数。有关更多信息,请参阅“关于 GitHub Actions 的计费”。

  1. 在 GitHub 上,导航到代码库的主页。

  2. 在您的代码库名称下,单击 操作.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  3. 如果存储库已配置并运行至少一个工作流程,请点击新建工作流程以显示工作流程模板。如果当前未为存储库配置任何工作流程,请转到下一步。

    Screenshot of the Actions tab for a repository. The "New workflow" button is outlined in dark orange.

  4. 在“选择工作流程”或“开始使用 GitHub Actions”视图中,向下滚动到“安全”类别,然后点击您要配置的工作流程下的配置。您可能需要点击查看全部才能找到要配置的安全工作流程。

    Screenshot of the Security category of workflow templates. The Configure button and "View all" link are highlighted with an orange outline.

  5. 按照工作流程中的任何说明将其自定义为您的需求。有关工作流程的更多一般帮助,请点击工作流程页面右侧窗格上的文档

    Screenshot showing a workflow template file open for editing. The "Documentation" button is highlighted with an orange outline.

    更多信息,请参见“使用工作流程模板”和“自定义代码扫描的高级设置”。

后续步骤

在您的工作流程至少成功运行一次后,您就可以开始检查和解决代码扫描警报了。有关代码扫描警报的更多信息,请参见“关于代码扫描警报”和“评估您的存储库的代码扫描警报”。

了解代码扫描运行如何作为拉取请求的检查,请参见“在拉取请求中分类代码扫描警报”。

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

进一步阅读