ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
GitHub AEは、現在限定リリース中です。詳細については営業チームにお問い合わせください。

CIシステムでのCodeQLランナーのトラブルシューティング

CodeQLランナー で問題が生じている場合、ここに掲載されているヒントを使ってトラブルを解決できます。

Code scanning is available as part of GitHub Advanced Security, which is free during the beta release. 詳しい情報については、「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は現在ベータで、変更されることがあります。

init コマンドに時間がかかりすぎる

CodeQLランナー は、コードのビルドと解析を行う前に、CodeQL CLI と CodeQL ライブラリを含んでいる CodeQL バンドルへのアクセス権が必要です。

お使いのマシンで CodeQLランナー を初めて使用する際、init コマンドは CodeQL バンドルをマシンにダウンロードします。 ダウンロードには数分かかります。 CodeQL バンドルは次の実行の前にキャッシュされるので、CodeQLランナー を同じマシンで再度使用する際は、CodeQL バンドルを再ダウンロードすることはありません。

この自動ダウンロードを回避するには、CodeQL バンドルをマシンに手動でダウンロードし、init コマンドの --codeql-path フラグでパスを指定します。

ビルド中にコードが見つからない

CodeQLランナー の analyze コマンドで、No source code was seen during the build というエラーが出て失敗する場合、CodeQL がコードをモニターできなかったことを示しています。 このようなエラーが発生する理由として、次のようなものがあります。

  1. 自動言語検出により、サポートされている言語が特定されたが、リポジトリにその言語の分析可能なコードがない。 一般的な例としては、言語検出サービスが .h.gyp ファイルなどの特定のプログラミング言語に関連付けられたファイルを見つけたが、対応する実行可能コードがリポジトリに存在しない場合です。 この問題を解決するには、init コマンドの --languages フラグを使用して、解析する言語を手動で定義できます。 詳しい情報については、「CodeQLランナー を CI システムで設定する」を参照してください。

  2. コンパイル型言語を autobuild コマンドを使用せずに解析し、init ステップの後に自分でビルドステップを実行している。 ビルドが機能するには、CodeQLランナー がビルドのプロセスをモニターできるように環境をセットアップする必要があります。 init コマンドは、必要な環境をエクスポートする方法についての説明を生成するので、それをコピーしてinit コマンドの実行後にスクリプトを実行できます。

    • macOS および Linux:
      $ . codeql-runner/codeql-env.sh
    • Windows で、コマンドシェル (cmd) またはバッチファイル (.bat) を使用する場合:
      > call codeql-runner\codeql-env.bat
    • Windows で、PowerShell を使用する場合:
      > cat codeql-runner\codeql-env.sh | Invoke-Expression

    環境変数は、codeql-runner/codeql-env.json にも保存されています。 このファイルには、環境変数キーを値にマッピングする単一の JSON オブジェクトが含まれています。 init コマンドで生成されたスクリプトを実行できない場合、JSON フォーマットのデータを代わりに使用できます。

    注釈: init コマンドの--temp-dir フラグで一時ファイルのカスタムディレクトリを指定している場合、codeql-env ファイルへのパスが異なることがあります。

  3. macOS でコンパイル型言語を autobuild コマンドを使用せずに解析し、init ステップの後に自分でビルドステップを実行している。 SIP (システム整合性保護) が有効になっている場合、解析は失敗することがあります。OSX の最近のバージョンでは、SIP はデフォルトで有効になっています。 この問題を解決するには、ビルドコマンドの前に $CODEQL_RUNNER の環境変数を付けてください。 たとえばビルドコマンドが cmd arg1 arg2 の場合、$CODEQL_RUNNER cmd arg1 arg2 を実行します。

  4. コードがコンテナまたは別のマシンでビルドされている。 コンテナ化されたビルドを使用しているか、ビルドを別のマシンに委託している場合は、必ず CodeQLランナー をコンテナまたはビルドタスクを実行するマシンで実行してください。 詳しい情報については、「コンテナで CodeQL コードスキャンを実行する」を参照してください。

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

プライバシーポリシー

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

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

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

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

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