关于 代码扫描
代码扫描 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 分析发现的任何问题都显示在 GitHub Enterprise Server 中。
下表概括了 代码扫描 的可用分析类型,并提供了为单个仓库启用功能的链接。
|
|
用于生成警报的选项 |
|---|---|
| CodeQL | 使用 GitHub Actions(请参阅“使用操作设置 代码扫描”)或使用第三方持续集成 (CI) 系统中的 CodeQL runner(请参阅“在 CI 系统中运行 CodeQL”)。 |
| 第三方 | 使用 GitHub Actions(请参阅“使用操作设置 代码扫描”)或在外部生成并上传到 GitHub Enterprise Server(请参阅“将 SARIF 文件上传到 GitHub”)。 |
为使用户 您的 GitHub Enterprise Server 实例 在仓库中启用 代码扫描,您需要作为站点管理员为整个设备启用此功能。
如何知道我的设备是否启用 代码扫描
- 从 GitHub Enterprise Server 上的管理帐户,点击任何页面右上角的 。

- 在左侧边栏中,单击 管理控制台。

- 检查左侧边栏中是否有 Advanced Security 条目。

如果您在侧边栏中看不到 Advanced Security,这意味着您的许可不支持 Advanced Security 功能,包括 代码扫描 和 秘密扫描。 Advanced Security 的许可使您和您的用户能够访问那些有助于提高仓库和代码安全性的功能。 更多信息请参阅“关于 GitHub 高级安全性”或联系 GitHub' 销售团队。
启用 代码扫描
警告:更改此设置将导致 GitHub Enterprise Server 重启。 您应谨慎安排更改时间,以尽量减少停机时间。
- 从 GitHub Enterprise Server 上的管理帐户,点击任何页面右上角的 。

- 在左侧边栏中,单击 管理控制台。

- 在左侧边栏中,单击 Advanced Security。

- 在“
Advanced Security”下,单击 代码扫描。

- 在左侧边栏下,单击 Save settings(保存设置)。

- 等待配置运行完毕。
使用 GitHub Actions 运行 代码扫描
设置自托管运行器
GitHub Enterprise Server 可以使用 GitHub Actions 工作流程运行 代码扫描。 首先,您需要在环境中预配一个或多个自托管的 GitHub Actions 运行器。 您可以在仓库、组织或企业帐户级别预配自托管运行器。 更多信息请参阅“关于自托管的运行器”和“添加自托管的运行器”。
您必须确保 Git 在用于运行 CodeQL 操作的任何自托管运行器上的 PATH 变量中。
预配操作
如果您想使用操作在 GitHub Enterprise Server 上运行 代码扫描,操作必须在您的设备上可用。
CodeQL 操作包含在您安装的 GitHub Enterprise Server 中。 如果 GitHub Enterprise Server 可以访问互联网,操作将自动下载进行分析所需的 CodeQL 包。 或者,您也可以使用同步工具使 CodeQL 分析包在本地可用。 更多信息请参阅下面的“在没有互联网接入的服务器上配置 CodeQL 分析”。
您也可以通过设置 GitHub Connect,使第三方操作可供 代码扫描 的用户使用。 更多信息请参阅下面的“配置 GitHub Connect 以同步 GitHub Actions”。
在没有互联网接入的服务器上配置 CodeQL 分析
如果您在上面运行 GitHub Enterprise Server 的服务器未连接到互联网,但您要允许用户对其仓库启用 CodeQL 代码扫描,则您必须使用 CodeQL 操作同步工具将 CodeQL 分析包从 GitHub.com 复制到您的服务器。 有关该工具及其使用方法,请参阅 https://github.com/github/codeql-action-sync-tool。
如果您设置了 CodeQL 操作同步工具,您可以使用它来同步最新发布的 CodeQL 操作和相关的 CodeQL 分析包。 这些兼容 GitHub Enterprise Server。
配置 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 操作”。
- 将自托管运行器添加到仓库、组织或企业帐户。 更多信息请参阅“添加自托管的运行器”。
对单个仓库启用代码扫描
在配置自托管运行器用户可以对 您的 GitHub Enterprise Server 实例 上的单个仓库启用 代码扫描。 更多信息请参阅“为仓库设置 代码扫描”。
使用 CodeQL runner 运行 代码扫描
如果您不想使用 GitHub Actions,您可以使用 CodeQL runner 运行 代码扫描。
该 CodeQL runner 是一个命令行工具,您可以将其添加到第三方 CI/CD 系统中。 该工具在 GitHub 仓库检出时运行 CodeQL 分析。 更多信息请参阅“在 CI 系统中运行 代码扫描”。
禁用 代码扫描
警告:更改此设置将导致 GitHub Enterprise Server 重启。 您应谨慎安排更改时间,以尽量减少停机时间。
- 从 GitHub Enterprise Server 上的管理帐户,点击任何页面右上角的 。

- 在左侧边栏中,单击 管理控制台。

- 在左侧边栏中,单击 Advanced Security。

- 在“
Advanced Security”下,取消选择 代码扫描。

- 在左侧边栏下,单击 Save settings(保存设置)。

- 等待配置运行完毕。
通过管理 shell (SSH) 启用或禁用 代码扫描
您可以在 您的 GitHub Enterprise Server 实例 上程序化启用或禁用 代码扫描。 例如,当您部署用于暂存或灾难恢复的实例时,可以使用基础架构即代码工具启用 代码扫描。
有关 GitHub Enterprise Server 的管理 shell 和命令行实用程序的更多信息,请参阅“访问管理 shell (SSH)”和“命令行实用程序”。
- SSH 连接到 您的 GitHub Enterprise Server 实例。
- 启用 代码扫描。
ghe-config app.minio.enabled true ghe-config app.code-scanning.enabled true - (可选)禁用 代码扫描。
ghe-config app.minio.enabled false ghe-config app.code-scanning.enabled false - 应用配置。
ghe-config-apply