关于 code scanning
Code scanning 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 分析标识的任何问题都显示在存储库中。
可以将 code scanning 配置为运行 CodeQL 分析和第三方分析。 Code scanning 还支持在本地使用 GitHub Actions 或在外部使用现有 CI/CD 基础结构来运行分析。 下面的项目符号总结了当您将 你的 GitHub Enterprise Server 实例 配置为允许 code scanning 使用操作时用户可以使用的选项。
- CodeQL: 与 GitHub Actions 默认设置(请参阅 配置代码扫描的默认设置)或高级设置(请参阅 配置代码扫描的高级设置)一起使用,或在第三方持续集成 (CI) 系统中运行 CodeQL 分析(请参阅 在现有 CI 系统上使用代码扫描)。
- 第三方: 使用 GitHub Actions或第三方工具,并将结果上传到 GitHub(请参阅 将 SARIF 文件上传到 GitHub)。
检查许可证是否包括 Advanced Security
可以通过查看企业设置来确定企业是否具有产品许可证 Advanced Security 。 有关详细信息,请参阅“为企业启用 GitHub Advanced Security 产品”。
先决条件 code scanning
-
用于GitHub Code Security或GitHub Advanced Security的许可证(请参阅GitHub Advanced Security 许可证计费)
-
Code scanning 在管理控制台中启用(请参阅 为企业启用 GitHub Advanced Security 产品)
-
用于运行 code scanning 分析的 VM 或容器。
使用 code scanning 运行 GitHub Actions
预配自托管式运行器
GitHub可以使用code scanning工作流运行GitHub Actions。 首先,你需要在环境中预配一个或多个自托管的 GitHub Actions 运行器。 你可以在仓库、组织或企业帐户级别预配自托管运行器。 请参阅“自托管运行程序”和“添加自托管的运行器”。
必须确保 Git 位于用于运行 CodeQL 操作的任何自承载运行程序上的 PATH 变量中。
注意
如果使用 CodeQLcode scanning 分析企业中Python编写的代码,则必须确保自承载运行程序已安装Python 3。
预配运行器规模集
您可以使用 Actions Runner Controller 为 GitHub Enterprise Server 实例创建专用运行器规模集。 请参阅“使用 Actions Runner Controller 部署运行程序规模集”。
预配 code scanning 操作
如果要使用操作在 code scanning 上运行 GitHub Enterprise Server,那么操作必须在您的设备上可用。
CodeQL 操作包含在 GitHub Enterprise Server 的安装中。 如果 GitHub Enterprise Server3.20 和 GitHub Actions 运行器都可以访问 Internet,那么该操作将自动下载执行分析所需的 CodeQL2.23.9 捆绑包。 或者,可以使用同步工具将最新发布的CodeQL分析捆绑包版本提供到本地。 请参阅下面有关无互联网访问的服务器上配置 CodeQL 分析的内容。
您还可以通过设置 code scanning 向 GitHub Connect 用户提供第三方操作。 请参阅下面的“为设备配置代码扫描”。
在未访问 Internet 的服务器上配置 CodeQL 分析
如果您希望在未连接到 Internet 的服务器上运行GitHub Enterprise Server,并想允许用户为其存储库启用CodeQLcode scanning,则必须使用CodeQL动作同步工具将CodeQL分析包复制到您的服务器上。 该工具及其用法的详细信息在 https://github.com/github/codeql-action-sync-tool 提供。
如果配置 CodeQL 操作同步工具,则可以使用它来同步操作的最新版本 CodeQL 和相关 CodeQL 分析捆绑包。 这些与 GitHub Enterprise Server 兼容。
配置GitHub Connect以同步GitHub Actions
- 如果要从 GitHub.com 按需下载操作工作流,则需要启用 GitHub Connect。 请参阅“为 GitHub.com 启用 GitHub Connect”。
- 还需要启用 GitHub Actions。 请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
- 下一步是通过GitHub.com配置对GitHub Connect操作的访问权限。 请参阅“使用 GitHub Connect 启用对 GitHub.com操作的自动访问”。
- 将自托管运行器添加到仓库、组织或企业帐户。 请参阅“添加自托管的运行器”。
使用CodeQL CLI运行代码扫描
如果不想使用 GitHub Actions,则应使用 code scanning 运行 CodeQL CLI。
CodeQL CLI这是一种命令行工具,可用于分析任何计算机上的代码库,包括第三方 CI/CD 系统。 请参阅“在现有 CI 系统上使用代码扫描”。