Skip to main content

CodeQL ワークスペースのセットアップ

CodeQL を使用する場合は、標準のライブラリとクエリへのアクセスが必要です。

CodeQL ワークスペースのセットアップ

github/codeql リポジトリから標準ライブラリとクエリへのアクセス権を拡張機能に付与するには、いくつかの方法があります。

  • CodeQL スターター ワークスペースを使用します。このワークスペースには、形式 codeql-custom-queries-LANGUAGE で命名された一連のディレクトリが含まれています。 これらは、標準ライブラリを使用して、言語ごとに独自のカスタム クエリの開発を開始できるよう準備されています。 開始するのに役立つクエリの例もいくつか用意しています。 これが推奨される方法です。

  • CodeQL の既存のワークスペースを更新します。 この方法は、高度な知識を持つユーザーに推奨されます。

  • CodeQL CLI ユーザーは、抽出された CodeQL CLI アーカイブを含むディレクトリを開くことができます。

注: CodeQL リポジトリは、スターター ワークスペースにサブモジュールとして含まれています。 サブモジュールを最新の状態に保ち、新しいバージョンの VS Code 拡張機能および CodeQL CLI との互換性を維持するには、定期的に git submodule update --remote を使用する必要があります。

  1. vscode-codeql-starter リポジトリをコンピューターに複製します。 git clone --recursive または git submodule update --init --remote を複製後に使用することで、サブモジュールを必ず含めるようにしてください。

  2. VS Code で、[ファイル] をクリックし、[ファイルからワークスペースを開く] をクリックして、ワークスペース リポジトリのチェックアウトから vscode-codeql-starter.code-workspace ファイルを開きます。

オプション 2: CodeQL の既存のワークスペースを更新する (上級者向け)

  1. VS Code で、[ファイル] を選択し、[フォルダーをワークスペースに追加] を選択し、CodeQL リポジトリのローカル チェックアウトを見つけます。

  2. [新しいフォルダー] または [ワークスペースにフォルダーを追加] オプションを使用してターゲット言語ごとに 1 つの新しいディレクトリを作成し、カスタム クエリとライブラリを保持します。

  3. 各ターゲット言語ディレクトリに qlpack.yml ファイルを作成します (github/codeqlmain ブランチには既にこれらのファイルがあります)。 これにより、CodeQL CLI にそのディレクトリのターゲット言語とその依存関係が示されます。 CodeQL は、開いているすべてのワークスペース ディレクトリまたはユーザーの検索パスで依存関係を検索します。

    たとえば、my-custom-cpp-pack というカスタム CodeQL ディレクトリを C ++ 用の CodeQL 標準ライブラリに依存するようにするには、次の内容で qlpack.yml ファイルを作成します。

    name: my-custom-cpp-pack
    version: 0.0.0
    libraryPathDependencies: codeql/cpp-all
    

    qlpack.yml ファイルを追加する必要がある理由の詳細については、「CodeQL パックを使った分析のカスタマイズ」を参照してください。

オプション 3: 抽出された CodeQL CLI アーカイブを含むディレクトリを開く

注: このオプションでは、CodeQL CLI を設定する必要があります。 詳しくは、「CodeQL CLI の設定」を参照してください。

VS Code で、CodeQL CLI .zipアーカイブを抽出したディレクトリを開き、CodeQL ディレクトリを作成します (例 codeql-home)。