Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

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

CodeQL runnerで問題が生じている� �合、ここに掲載されているヒントを使ってトラブルシューティングを行ってく� さい。

Code scanning は、GitHub Enterprise Server の Organization 所有のリポジトリで利用できます。 この機能には、GitHub Advanced Security のライセンスが必要です。 詳細については、「GitHub Advanced Security について」を参照してく� さい。

メモ: CodeQL runnerは非推奨になっています。 GitHub Enterprise Server 3.0 以降では、CodeQL CLI バージョン 2.6.3 をインストールして、CodeQL runnerを置き換えることができます。

詳しくは、「CodeQL ランナーの非推奨化」をご覧く� さい。 CodeQL CLI への移行については、「CodeQL ランナーから CodeQL CLI への移行」を参照してく� さい。

init コマンドの所要時間が長すぎる

CodeQL runnerを使ってコードを構築して分析するには、CodeQL CLI と CodeQL ライブラリを含む CodeQL バンドルへのアクセス権が必要です。

お使いのマシンで CodeQL runner を初めて使うときは、init コマンドを実行すると、マシンに CodeQL バンドルがダウンロードされます。 ダウンロードには数分かかります。 CodeQL バンドルは、実行の合間にキャッシュされるため、同じマシンで CodeQL runnerを使っても、CodeQL バンドルがもう一度ダウンロードされることはありません。

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

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

CodeQL runnerの analyze コマンドが失敗して、No source code was seen during the build というエラーが発生した� �合、これは CodeQL によるコードの監視を行うことができなかったことを示しています。 このようなエラーが発生する理由として、次のようなものがあります。

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

  2. autobuild コマンドを使用せずにコンパイル済み言語を分析していて、init ステップの後にビルド ステップを自分で実行します。 ビルドを機能させるには、CodeQL runnerによるビルド プロセスの監視が可能となるように、環境を設定する必要があります。 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. autobuild コマンドを使用せずに macOS でコンパイル済み言語を分析していて、init ステップの後にビルド ステップを自分で実行します。 SIP (システ� 整合性保護) が有効になっている� �合、解析は失敗することがあります。OSX の最近のバージョンでは、SIP はデフォルトで有効になっています。 修正するには、ビルド コマンドの前に $CODEQL_RUNNER 環境変数を付ける必要があります。 たとえば、ビルド コマンドが cmd arg1 arg2 である� �合は、$CODEQL_RUNNER cmd arg1 arg2 を実行する必要があります。

  4. コードがコンテナまたは別のマシンでビルドされている。 コンテナー化されたビルドを使うか、ビルドを別のマシンに委託している� �合は、CodeQL runnerを、コンテナーで、またはビルド タスクが実行されているマシンで実行してく� さい。 詳細については、「Running CodeQL code scanning in a container」(コンテナーでの CodeQL コード スキャンの実行) を参照してく� さい。