Skip to main content

GitHub AE 目前处于受限版。

配置代码扫描

可以为存储库配置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 AE 中的组织拥有的存储库。 这是一个 GitHub Advanced Security 功能(在 beta 版本期间免费)。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

关于 code scanning

Code scanning 可帮助你捕获存储库中代码的漏洞。 使用 CodeQL code scanning,可以选择用于分析的自定义或内置查询套件、设置特定的扫描计划、选择触发扫描的事件等。

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

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

注意:本文介绍了此版 GitHub AE 的初始发行版中包含的 CodeQL 操作版本和相关 CodeQL CLI 捆绑包中可用的功能。 如果企业使用较新版本的 CodeQL 操作,请参阅本文的 GitHub Enterprise Cloud 版本,了解有关最新功能的信息。

先决条件

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

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

在为存储库配置 code scanning 之前,必须确保存储库至少有一个自托管 GitHub Actions 运行器可用。

企业所有者、组织和存储库管理员可以添加自托管运行器。 有关详细信息,请参阅“关于自托管运行程序”和“添加自托管的运行器”。

使用 CodeQL 操作配置 code scanning

  1. 在 你的企业 上,导航到存储库的主页。

  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。 存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。

  3. 在“Code scanning 警报”右侧,单击“设置 code scanning”。如果“code scanning 警报”缺失,则需要让组织所有者或存储库管理员启用 GitHub Advanced Security。有关详细信息,请参阅“管理组织的安全和分析设置”或“管理存储库的安全和分析设置”。

  4. 在“开始使用 code scanning”下,单击 CodeQL 分析工作流程 或第三方工作流上的“设置此工作流”。

    只有在工作流与在存储库中检测到的编程语言相关时,才会显示工作流。 CodeQL 分析工作流程 始终显示,但仅在 CodeQL 分析支持存储库中存在的语言时才启用“设置此工作流”按钮。

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

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

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

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

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

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

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

  9. 单击“提交新文件”或“建议新文件”。

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

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

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

后续步骤

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