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

此版本的 GitHub Enterprise 已停止服务 2022-06-03. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

在容器中运行 CodeQL 代� �扫描

通过确保所有进程都在同一容器中运行,您可以在容器中运行 代� �扫描。

代� �扫描 适用于启用了 GitHub Advanced Security 的组织拥有的仓库。 更多信息请参阅“关于 GitHub Advanced Security”。

关于使用容器化构建的 代� �扫描

如果为编译语言设置 代� �扫描,并且在容器化环境中构建代� �,则分析可能会失败,并返回错误消息“No source code was seen during the build(在构建过程中没有看到源代� �)”。 这表明 CodeQL 在代� �编译过程中� 法监视代� �。

您必须在构建代� �的容器中运行 CodeQL。 � 论您使用的是 CodeQL CLI、 CodeQL runner、 还是 GitHub Actions,这都适用。 对于 CodeQL CLI 或 CodeQL runner,请参阅“在 CI 系统中安装 CodeQL CLI” 或“在 CI 系统中运行 CodeQL runner”以了解更多信息。 如果您使用 GitHub Actions,请配置工作流程以在同一容器中运行所有操作。 更多信息请参阅“示例工作流程”。

依赖项

如果您使用的容器缺少某些依赖项(例如,Git 必须安装并添� 到 PATH 变量),您可能难以运行 代� �扫描。 如果遇到依赖项问题,请查看通常包含在 GitHub 虚拟环境中的软件列表。 有关更多信息,请在以下位置查看特定于版本的 readme 文件:

示例工作流程

注意:本文介绍了此版 GitHub Enterprise Server 的初始版本中包含的 CodeQL 操作版本和相关 CodeQL CLI 捆绑包中可用的功能。 如果您的企业使用更新版本的 CodeQL 操作,请参阅 GitHub Enterprise Cloud 文� 以了解有关最新功能的信息。 有关使用最新版本的信息,请参阅“为设备配置代� �扫描”。

此示例工作流程在容器化环境中使用 GitHub Actions 运行 CodeQL 分析。 container.image 的值� �识要要使用的容器。 在此示例中,� 像名称为 codeql-container,� �记为 f0f91db。 更多信息请参阅“GitHub Actions 的工作流程语法”。

name: "CodeQL"

on: 
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '15 5 * * 3'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        language: [java]

    # Specify the container in which actions will run
    container:
      image: codeql-container:f0f91db

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v1
        with:
          languages: ${{ matrix.language }}
      - name: Build
        run: |
          ./configure
          make
      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v1