注: 代码扫描 正在测试用于 GitHub Enterprise Server 2.22。 对于代码扫描的一般可用版本,请升级到最新版本的 GitHub Enterprise Server。
关于 代码扫描
代码扫描 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 分析发现的任何问题都显示在 GitHub Enterprise Server 中。
您可以配置 代码扫描 以运行 CodeQL 分析和第三方分析。 代码扫描 还支持使用 GitHub Actions 在本地运行分析,或使用现有 CI/CD 基础架构在外部运行分析。 下表总结了用户在配置 您的 GitHub Enterprise Server 实例 以允许 代码扫描 使用操作时用户可用的所有选项。
|
用于生成警报的选项 |
---|---|
代码扫描 的前提条件
-
A license for GitHub Advanced Security
-
在管理控制台中启用的 代码扫描(请参阅“为企业启用 GitHub Advanced Security”)
-
用于运行 代码扫描 分析的 VM 或容器。
使用 GitHub Actions 运行 代码扫描
设置自托管运行器
GitHub Enterprise Server 可以使用 GitHub Actions 工作流程运行 代码扫描。 首先,您需要在环境中预配一个或多个自托管的 GitHub Actions 运行器。 您可以在仓库、组织或企业帐户级别预配自托管运行器。 更多信息请参阅“关于自托管的运行器”和“添加自托管的运行器”。
您必须确保 Git 在用于运行 CodeQL 操作的任何自托管运行器上的 PATH 变量中。
预配 代码扫描 的操作
要在 GitHub Enterprise Server 上使用 GitHub Actions 运行 代码扫描,必须在本地可以进行适当的操作。 您可以通过三种方式使操作可用。
- 推荐:您可以使用 GitHub Connect 自动从 GitHub.com 下载操作。 托管实例的机器必须能够访问 GitHub.com。 此方法可确保自动获取最新软件。 更多信息请参阅“配置 GitHub Connect 以同步 GitHub Actions”。
- 如果要使用 CodeQL 分析工作流程,可以使用 https://github.com/github/codeql-action-sync-tool 上的 CodeQL 操作同步工具将仓库从 GitHub.com 同步到 GitHub Enterprise Server。 无论您的 您的 GitHub Enterprise Server 实例 或 GitHub Actions 运行器是否可以访问互联网, 只要您可以同时在计算机上访问 您的 GitHub Enterprise Server 实例 和 GitHub.com,您都可以使用此工具。
- 您可以通过克隆包含操作的 GitHub.com 仓库,在服务器上创建操作仓库的本地副本。 例如,如果要使用 CodeQL 代码扫描 操作,可以在实例中创建一个名为
github/codeql-action
的仓库,然后从 GitHub.com 克隆仓库,再将该仓库推送到实例的github/codeql-action
仓库。 您还需要从 GitHub.com 上的仓库下载任何发行版,并将它们作为发行版上传到实例的github/codeql-action
仓库。
配置 GitHub Connect 以同步 GitHub Actions
- 如果要从 GitHub.com 下载按需操作工作流程,则需要启用 GitHub Connect。 更多信息请参阅“启用 GitHub Connect”。
- 您还需要为 您的 GitHub Enterprise Server 实例 启用 GitHub Actions。 更多信息请参阅“GitHub Enterprise Server 的 GitHub Actions 使用入门”。
- 下一步是使用 GitHub Connect 配置对 GitHub.com 上的操作的访问权限。 更多信息请参阅“启用使用 GitHub Connect 自动访问 GitHub.com 操作”。
- 将自托管运行器添加到仓库、组织或企业帐户。 更多信息请参阅“添加自托管的运行器”。
使用 CodeQL runner 运行 代码扫描
如果您不想使用 GitHub Actions,您可以使用 CodeQL runner 运行 代码扫描。
该 CodeQL runner 是一个命令行工具,您可以将其添加到第三方 CI/CD 系统中。 该工具在 GitHub 仓库检出时运行 CodeQL 分析。 更多信息请参阅“在 CI 系统中运行 代码扫描”。