Skip to main content

コンテナで CodeQL Code scanningを実行する

すべてのプロセスが同じコンテナーで実行されるようにすることで、コンテナーで code scanning を実行できます。

この機能を使用できるユーザーについて

Code scanning は、次のリポジトリの種類で使用できます。

  • GitHub.com 上のパブリックリポジトリ
  • GitHub Team、GitHub Enterprise Cloud、または GitHub Enterprise Server 上の組織所有リポジトリ。 GitHub Code Security が 有効になっています。

コンテナー化されたビルドを使用した code scanning について

コンパイル済み言語の code scanning を構成していて、コンテナー化された環境でコードをビルドしている場合、"ビルド中にソース コードが表示されませんでした" というエラー メッセージで分析が失敗することがあります。 これは、コンパイル時 CodeQL コードを監視できなかったことを示します。

コードをビルドするコンテナー内で CodeQL を実行する必要があります。 これは、 CodeQL CLI と GitHub Actionsのどちらを使用しているかに関係なく適用されます。 CodeQL CLIについては、既存の CI システムでコード スキャンを使用する を参照してください。 GitHub Actionsを使用している場合は、同じコンテナー内のすべてのアクションを実行するようにワークフローを構成します。 詳細については、「ワークフローの例」を参照してください。

メモ

CodeQL CLI は現在、glibc 以外の Linux ディストリビューション ((musl ベースの) Alpine Linux など) との互換性がありません。

の依存関係 CodeQLcode scanning

使用しているコンテナーに特定の依存関係がない場合(たとえば、Git をインストールして PATH 変数に追加する必要がある)、 code scanning の実行が困難な場合があります。 依存関係の問題が発生した場合は、 GitHubのランナー イメージに通常含まれるソフトウェアの一覧を確認します。 詳しくは、次の場所にある特定のバージョンの readme ファイルをご覧ください。

ワークフローの例

このサンプル ワークフローでは、 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
    permissions:
      security-events: write
      actions: read

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

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

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