コンテナで CodeQL コードスキャンを実行する

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

Code scanningは、Organizationが所有するリポジトリでGitHub Advanced Securityが有効化されていれば利用できます。 詳しい情報については、「GitHub Advanced Security について」を参照してください。

Note: The CodeQLランナー is being deprecated. Please use the CodeQL CLI version 2.6.2 or greater instead. GitHub Enterprise Server 3.3 will be the final release series that supports the CodeQLランナー. On GitHub Enterprise Cloud, the CodeQLランナー will be supported until March 2022. For more information, see the CodeQL runner deprecation.

コンテナ化されたビルドで code scanning を使用することについて

コンパイル言語用に code scanning をセットアップし、コンテナ化された環境でコードをビルドしようとすると、解析が失敗し、"No source code was seen during the build." というエラーメッセージが出る場合があります。 これは、コードがコンパイルされているので CodeQL がコードをモニターできなかったことを示しています。

CodeQLは、コードをビルドするコンテナ内で実行しなければなりません。 これは、CodeQL CLI、CodeQLランナー、GitHub Actionsのいずれを使っていても当てはまります。 CodeQL CLIあるいはCodeQLランナーについては、詳しい情報は「CIシステムへのCodeQL CLIのインストール」あるいは「CIシステムでのCodeQLランナーの実行」を参照してください。 GitHub Actions を使用している場合は、同じコンテナですべてのアクションを実行するようワークフローを設定します。 詳しい情報については「ワークフローの例」を参照してください。

依存関係

使用しているコンテナで特定の依存関係がない場合 (たとえば、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]

    # 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

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?