{"meta":{"title":"コンパイル済み言語の CodeQL コード スキャンについて","intro":"必要に応じて CodeQL によるコンパイル型言語の分析方法、利用可能なビルド オプション、データベース作成プロセスのカスタマイズ方法について理解しましょう。","product":"セキュリティとコードの品質","breadcrumbs":[{"href":"/ja/code-security","title":"セキュリティとコードの品質"},{"href":"/ja/code-security/concepts","title":"Concepts"},{"href":"/ja/code-security/concepts/code-scanning","title":"コード スキャン"},{"href":"/ja/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ja/code-security/concepts/code-scanning/codeql/about-codeql-code-scanning-for-compiled-languages","title":"コンパイル済み言語の CodeQL"}],"documentType":"article"},"body":"# コンパイル済み言語の CodeQL コード スキャンについて\n\n必要に応じて CodeQL によるコンパイル型言語の分析方法、利用可能なビルド オプション、データベース作成プロセスのカスタマイズ方法について理解しましょう。\n\n## CodeQL 分析ワークフローとコンパイル型言語について\n\nCode scanning は、1 つ以上の CodeQL データベースに対してクエリを実行することにより機能します。 各データベースには、リポジトリにあるコードが 1 つの言語で表わされたものが含まれています。 C/C++、C#、Go、Java、Kotlin、Rust、、Swift のようなコンパイル言語では、こうしたデータベースの作成プロセスにコードのビルドとデータの抽出が必要になることがよくあります。\n\ncode scanning を有効にすると、既定のセットアップおよび拡張されたセットアップの両方で、利用できる最も簡単な方法で分析用の CodeQL データベースが作成されます。 C/C++、 C#、 Java および Rust、CodeQL データベースは、ビルド (`none` ビルド モード) を必要とせずにコードベースから直接作成されます。 他のコンパイル型言語の場合、`autobuild` ビルド モードを使用して CodeQL によりコードベースがビルドされます。 または、`manual` ビルド モードを使用して明示的なビルド コマンドを指定し、これらのカスタム コマンドによってビルドされたファイルのみを分析することもできます。\n\nCodeQL で依存関係キャッシュを使用して、依存関係をレジストリからダウンロードするのではなく、GitHub Actions キャッシュとして格納できます。 この記事の後半の [「 CodeQL の依存関係キャッシュについて](#about-dependency-caching-for-codeql) 」を参照してください。\n\n## CodeQL ビルド モデル\n\nCodeQL アクションでは、コンパイル型言語に対して次の 3 つの異なるビルド モードがサポートされています。\n\n* `none` - CodeQL データベースは、コードベースをビルドすることなくコードベースから直接作成されます (すべてのインタプリタ型言語でサポートされ、C/C++、 C#、 Java および Rust でもサポートされています)。\n* `autobuild` - CodeQL は、最も可能性の高いビルド方法を検出し、これを使用してコードベースをビルドし、分析用のデータベースを作成します (C/C++、C#、Go、Java、Kotlin、Swift でサポートされています)。\n* `manual` - ワークフロー内のコードベースに使用するビルド手順を定義します (C/C++、C#、Go、Java、Kotlin、Swift でサポートされます)。\n\n言語固有の `autobuild` 動作、ランナーの要件、および手動ビルドのガイダンスについては、 [コンパイル済み言語の CodeQL ビルド オプションと手順](/ja/code-security/reference/code-scanning/codeql/codeql-build-options-and-steps-for-compiled-languages) を参照してください。\n\n## CodeQL の依存関係キャッシュについて\n\nCodeQL で依存関係キャッシュを使用して、依存関係をレジストリからダウンロードするのではなく、GitHub Actions キャッシュとして格納できます。 これにより、サードパーティのレジストリがうまく機能しない場合にアラートが失われるリスクが軽減され、多数の依存関係を持つプロジェクトや低速のレジストリで動作するプロジェクトのパフォーマンスが向上する可能性があります。 依存関係をキャッシュしてワークフローを高速化する方法の詳細については、「[依存関係キャッシュのリファレンス](/ja/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows)」を参照してください。\n\n依存関係キャッシュはすべてのビルド モードで機能し、Java、Go、C# でサポートされています。\n\n> \\[!NOTE]\n> 依存関係キャッシュを使用すると、リポジトリのキャッシュ クォータの対象となる CodeQL 固有のキャッシュが格納されます。 「[依存関係キャッシュのリファレンス](/ja/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy)」を参照してください。"}