Skip to main content

为设备配置代码扫描

你可以为 your GitHub Enterprise Server instance 启用、配置和禁用 code scanning。 Code scanning 允许用户扫描代码以发现漏洞和错误。

Code scanning is available for organization-owned repositories in GitHub Enterprise Server. This feature requires a license for GitHub Advanced Security. 有关详细信息,请参阅“关于 GitHub Advanced Security”。

关于 code scanning

Code scanning 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 分析发现的任何问题都显示在 GitHub Enterprise Server 中。

您可以配置 code scanning 以运行 CodeQL 分析和第三方分析。 Code scanning 还支持使用 GitHub Actions 在本地运行分析,或使用现有 CI/CD 基础架构在外部运行分析。 下表总结了用户在配置 your GitHub Enterprise Server instance 以允许 code scanning 使用操作时用户可用的所有选项。

分析类型用于生成警报的选项
CodeQL使用 GitHub Actions(请参阅“使用操作设置 code scanning”),或在第三方持续集成 (CI) 系统中运行 CodeQL 分析(请参阅“关于 CI 系统中的 CodeQL code scanning”)。
第三方使用 GitHub Actions(请参阅“使用操作设置 code scanning”)或从外部生成并上传到 GitHub Enterprise Server(请参阅“将 SARIF 文件上传到 GitHub”)。

检查您的许可是否包含 GitHub Advanced Security

可通过查看企业设置来识别企业是否具有 GitHub Advanced Security 许可证。 有关详细信息,请参阅“为企业启用 GitHub 高级安全性”。

code scanning 的前提条件

使用 GitHub Actions 运行 code scanning

设置自托管运行器

GitHub Enterprise Server 可以使用 GitHub Actions 工作流程运行 code scanning。 首先,您需要在环境中预配一个或多个自托管的 GitHub Actions 运行器。 您可以在仓库、组织或企业帐户级别预配自托管运行器。 有关详细信息,请参阅“关于自托管运行器”和“添加自托管运行器。”

您必须确保 Git 在用于运行 CodeQL 操作的任何自托管运行器上的 PATH 变量中。

预配 code scanning 的操作

如果想使用操作在 GitHub Enterprise Server 上运行 code scanning,则这些操作必须在设备上可用。

CodeQL 操作包含在您安装的 GitHub Enterprise Server 中。 如果 GitHub Enterprise Server 3.4 可以访问 Internet,操作将自动下载执行分析所需的 CodeQL 2.7.6 包。 或者,你也可以使用同步工具使最新发布版本的 CodeQL 分析包在本地可用。 有关详细信息,请参阅下面的“在没有 Internet 访问的服务器上配置 CodeQL 分析”。

您也可以通过设置 GitHub Connect,使第三方操作可供 code scanning 的用户使用。 有关详细信息,请参阅下面的“配置 GitHub Connect 以同步 GitHub Actions”。

在没有互联网接入的服务器上配置 CodeQL 分析

如果您在上面运行 GitHub Enterprise Server 的服务器未连接到互联网,但您要允许用户对其仓库启用 CodeQL code scanning,则您必须使用 CodeQL 操作同步工具将 CodeQL 分析包从 GitHub.com 复制到您的服务器。 该工具及其用法的详细信息在 https://github.com/github/codeql-action-sync-tool 提供。

如果您设置了 CodeQL 操作同步工具,您可以使用它来同步最新发布的 CodeQL 操作和相关的 CodeQL 分析包。 这些兼容 GitHub Enterprise Server。

配置 GitHub Connect 以同步 GitHub Actions

  1. 如果要从 GitHub.com 下载按需操作工作流程,则需要启用 GitHub Connect。 有关详细信息,请参阅“启用 GitHub Connect。”
  2. 还需要为 your GitHub Enterprise Server instance 启用 GitHub Actions。 有关详细信息,请参阅“GitHub Enterprise Server 的 GitHub Actions 使用入门。”
  3. 下一步是使用 GitHub Connect 配置对 GitHub.com 上的操作的访问权限。 有关详细信息,请参阅“使用 GitHub Connect 启用对 GitHub.com 操作的自动访问。”
  4. 将自托管运行器添加到仓库、组织或企业帐户。 有关详细信息,请参阅“关于自托管运行器。”

使用 CodeQL CLI 运行代码扫描

如果不想使用 GitHub Actions,应该使用 CodeQL CLI 运行 code scanning。

CodeQL CLI 是一个命令行工具,可用于分析任何计算机上的代码库,包括第三方 CI/CD 系统。 有关详细信息,请参阅“在 CI 系统中安装 CodeQL CLI。”