我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

为设备配置代码扫描

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

代码扫描 可用于您有 Advanced Security 许可的组织拥有的私有仓库。

本文内容

注意:代码扫描 目前处于测试阶段,可能会更改。 有关参加公测的更多信息,请在此注册

关于 代码扫描

代码扫描 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 Any problems identified by the analysis are shown in GitHub Enterprise Server.

下表概括了 代码扫描 的可用分析类型,并提供了为单个仓库启用功能的链接。

分析类型 用于生成警报的选项
CodeQL 使用 GitHub Actions(请参阅“使用操作启用 代码扫描”)或在第三方持续集成 (CI) 系统中使用 CodeQL runner(请参阅“在 CI 系统中运行代码扫描”)。
第三方 使用 GitHub Actions(请参阅“使用操作启用 代码扫描”)或者外部生成并上传到 GitHub Enterprise Server(请参阅“上传 SARIF 文件到 GitHub”)。

为使用户 your GitHub Enterprise Server instance 在仓库中启用 代码扫描,您需要作为站点管理员为整个设备启用此功能。

如何知道我的设备是否启用 代码扫描

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
    用于访问站点管理员设置的火箭图标
  2. 在左侧边栏中,单击 管理控制台
    左侧边栏中的 管理控制台 选项卡
  3. 检查左侧边栏中是否有 Advanced Security 条目。
    高级安全侧边栏

如果您在侧边栏中看不到 Advanced Security,这意味着您的许可不支持 Advanced Security 功能,包括 代码扫描。 Advanced Security 的许可使您和您的用户能够访问那些有助于提高仓库和代码安全性的功能。

启用 代码扫描

警告:更改此设置将导致 GitHub Enterprise Server 重启。 您应谨慎安排更改时间,以尽量减少停机时间。

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
    用于访问站点管理员设置的火箭图标
  2. 在左侧边栏中,单击 管理控制台
    左侧边栏中的 管理控制台 选项卡
  3. 在左侧边栏中,单击 Advanced Security
    高级安全侧边栏
  4. 在“ Advanced Security”下,单击 代码扫描
    用于启用或禁用 代码扫描 的复选框
  5. 在左侧边栏下,单击 Save settings(保存设置)
    管理控制台 中的 Save settings 按钮
  6. 等待配置运行完毕。

使用 GitHub Actions 运行 代码扫描

设置自托管运行器

如果您参加 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。 无论您的 your GitHub Enterprise Server instance 或 GitHub Actions 运行器是否可以访问互联网, 只要您可以同时在计算机上访问 your GitHub Enterprise Server instance 和 GitHub.com,您都可以使用此工具。
  • 您可以通过使用操作克隆仓库,在服务器上创建 GitHub.com 仓库的本地副本。 例如,如果要使用 CodeQL 操作,可以在实例中创建一个名为 github/codeql-action 的仓库,然后从 GitHub.com 克隆仓库,再将该仓库推送到实例的 github/codeql-action 仓库。 您还需要从 GitHub.com 上的仓库下载任何发行版,并将它们作为发行版上传到实例的 github/codeql-action 仓库。
配置 GitHub Connect 以同步 GitHub Actions
  1. 如果要从 GitHub.com 下载按需操作工作流程,则需要启用 GitHub Connect。 更多信息请参阅“启用 GitHub Connect”。
  2. 您还需要为 your GitHub Enterprise Server instance 启用 GitHub Actions。 更多信息请参阅“启用 GitHub Actions 和配置存储”。
  3. 下一步是使用 GitHub Connect 配置对 GitHub.com 上的操作的访问权限。 更多信息请参阅“启用使用 GitHub Connect 自动访问 GitHub.com 操作”。
  4. 将自托管运行器添加到仓库、组织或企业帐户。 更多信息请参阅“添加自托管的运行器”。

在配置自托管运行器后,用户可以对 代码扫描 上的单个仓库启用 your GitHub Enterprise Server instance。 默认 代码扫描 工作流程使用 on.push 事件触发代码扫描 - 每次推送到任何包含工作流程文件的分支时触发。

使用 CodeQL runner 运行 代码扫描

如果您的组织未参加 GitHub Actions 的测试版,或者您不想使用 GitHub Actions,则可以使用 CodeQL runner 运行 代码扫描。

该 CodeQL runner 是一个命令行工具,您可以将其添加到第三方 CI/CD 系统中。 该工具在 GitHub 仓库检出时运行 CodeQL 分析。 更多信息请参阅“在 CI 系统中运行 代码扫描”。

禁用 代码扫描

警告:更改此设置将导致 GitHub Enterprise Server 重启。 您应谨慎安排更改时间,以尽量减少停机时间。

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
    用于访问站点管理员设置的火箭图标
  2. 在左侧边栏中,单击 管理控制台
    左侧边栏中的 管理控制台 选项卡
  3. 在左侧边栏中,单击 Advanced Security
    高级安全侧边栏
  4. 在“ Advanced Security”下,取消选择 代码扫描
    用于启用或禁用 代码扫描 的复选框
  5. 在左侧边栏下,单击 Save settings(保存设置)
    管理控制台 中的 Save settings 按钮
  6. 等待配置运行完毕。

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。