ビルドの準備として CodeQL データベースを初期化します。
スキャンするリポジトリ GitHub Advanced Security for Azure DevOps が有効になっている必要があります。
構文
# Advanced Security Initialize CodeQL v1
# Initializes the CodeQL database in preparation for building.
- task: AdvancedSecurity-Codeql-Init@1
inputs:
#enableAutomaticCodeQLInstall: false # boolean. Enable automatic CodeQL detection and installation. Default: false.
#languages: # 'csharp' | 'cpp' | 'go' | 'java' | 'javascript' | 'python' | 'ruby' | 'swift'. Languages to analyze.
#querysuite: 'Select a query suite...' # 'Select a query suite...' | 'code-scanning' | 'security-extended' | 'security-experimental' | 'security-and-quality'. CodeQL Query Suite to use for analysis. Default: Select a query suite....
#buildtype: 'Manual' # 'Manual' | 'None'. Select build mode (manual vs none). Default: Manual.
# Advanced
#ram: # string. Options to control RAM usage in MB.
#threads: # string. Use this many threads to evaluate queries.
#codeqlpathstoignore: # string. Set a list of paths to exclude in the CodeQL analysis.
#codeqlpathstoinclude: # string. Set a list of additional paths to include in the CodeQL analysis.
#sourcesfolder: # string. Sets the folder that contains the sources to be analyzed.
#loglevel: '_' # '0' | '1' | '2' | '_'. Set the log level for the CodeQL analysis. Default: _.
#configfilepath: # string. Use this to enable custom query analysis in codeql (path must be absolute).
#codeqltoolsdirectory: # string. Set a custom CodeQL tools directory (path must be absolute).
入力
enableAutomaticCodeQLInstall
-
CodeQL の自動検出とインストール を有効にする
boolean。 既定値: false.
このオプションを選択すると、エージェントで CodeQL が自動的にチェックされるようにタスクが設定されます。 CodeQL が正しく構成されていない場合、または最新バージョンの場合、タスクは自動的に最新バージョンをインストールします。
を分析する言語の languages -
string。 使用できる値: csharp、cpp、go、java、javascript、python、ruby、swift。
分析するプログラミング言語。 複数の言語をコンマで区切ることができます。
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: 'cpp, java, python'
# This languages value is valid, the Pipelines editor
# doesn't recognize all combinations and only validates
# correctly when a single language is specified
ここでタスクで言語を設定することも、advancedsecurity.codeql.languageという名前のパイプライン変数で言語を指定することもできます。 両方が設定されている場合は、タスクで指定された値が優先されます。
分析に使用する CodeQL クエリ スイートを querysuite - します。
string。 使用できる値: Select a query suite...、code-scanning、security-extended、security-experimental、security-and-quality。 既定値: Select a query suite....
分析に使用されるクエリ スイート (ルールセット)。 タスクでここで値を指定することも、advancedsecurity.codeql.querysuiteという名前のパイプライン変数で指定することもできます。 両方が設定されている場合は、タスクで指定された値が優先されます。 既定値は Select a query suite... であり、クエリ スイートを advancedsecurity.codeql.querysuite 変数に指定する必要があることを示します。
buildtype
-
ビルド モードの選択 (手動となし)
string。 使用できる値: Manual、None。 既定値: Manual.
CodeQL 分析を実行する前にプロジェクトを手動でビルドする場合は、Manual を指定します。 プロジェクトをビルドせずに CodeQL 分析を実行する場合は、None を指定します。
各ビルド モードの利点の比較など、さまざまなビルド モードの詳細については、「コンパイル済み言語の CodeQL コード スキャンを参照してください。
autobuildを使用するには、AdvancedSecurity-CodeQL-Autobuild@1 タスクをパイプラインに追加します。 詳細については、「コード スキャン ビルド モードのカスタマイズ」を参照してください。
ram
-
MB で RAM の使用量を制御するオプション
string。
クエリ エバリュエーターが使用できる RAM の総量を設定します。
タスクでここで ram を指定することも、advancedsecurity.codeql.ramという名前のパイプライン変数で指定することもできます。 両方が設定されている場合は、タスクで指定された値が優先されます。
threads
-
この多くのスレッドを使用してクエリを評価
string。
マシン上のコアごとに 1 つのスレッドを使用するには 0 を渡すか、N 個のコアを未使用のままに -N できます (ただし、少なくとも 1 つのスレッドを使用する場合は除きます)。
タスクでここで threads を指定することも、advancedsecurity.codeql.threadsという名前のパイプライン変数で指定することもできます。 両方が設定されている場合は、タスクで指定された値が優先されます。
codeqlpathstoignore
-
CodeQL 分析 で除外するパスの一覧を設定する
string。
複数のパスをコンマで区切って指定できます。 パスは、CodeQL が実行されている sourcesfolder に対する相対パスである必要があります。既定では、Build.SourcesDirectory パイプライン環境変数が使用されます。 たとえば、$(Build.SourcesDirectory)/donotscan ディレクトリを無視するには、codeqlpathstoignore: donotscanではなく codeqlpathstoignore: $(Build.SourcesDirectory)/donotscan を設定します。
大事な
codeqlpathstoignore 設定は、解釈された言語 (Python、Ruby、JavaScript/TypeScript) で CodeQL タスクを実行する場合、またはコードをビルドせずにコンパイル済み言語を分析する場合にのみ適用されます (現在、C# と Java でサポートされています)。
codeqlpathstoinclude
-
CodeQL 分析 に含める追加パスの一覧を設定します
string。
複数のパスをコンマで区切って指定できます。 パスは、CodeQL が実行されている sourcesfolder に対する相対パスである必要があります。既定では、Build.SourcesDirectory パイプライン環境変数が使用されます。 たとえば、$(Build.SourcesDirectory)/app ディレクトリを含めるには、codeqlpathstoinclude: appではなく codeqlpathstoinclude: $(Build.SourcesDirectory)/app を設定します。
大事な
codeqlpathstoinclude 設定は、解釈された言語 (Python、Ruby、JavaScript/TypeScript) で CodeQL タスクを実行する場合、またはコードをビルドせずにコンパイル済み言語を分析する場合にのみ適用されます (現在、C# と Java でサポートされています)。
sourcesfolder
-
分析するソースを含むフォルダーを設定
string。
値は、 Build.SourcesDirectory 変数に対して相対的である必要があります。 この値を指定しない場合は、パイプライン インフラストラクチャの既定のソース フォルダーが使用されます (Build.SourcesDirectory 変数によって提供されます)。
loglevel
-
CodeQL 分析 のログ レベルを設定します
string。 使用できる値: 0 (警告)、1 (詳細)、2 (デバッグ)、_ (既定値 (警告))。 既定値: _.
ログ記録のレベルを指定します。
タスクでここで loglevel を指定することも、advancedsecurity.codeql.loglevelという名前のパイプライン変数で指定することもできます。 両方が設定されている場合、タスク内の _ の既定値 loglevel が指定されていない限り、タスクで指定された値が優先されます。
_ を指定した場合、使用可能な場合は、advancedsecurity.codeql.loglevel からの値が使用されます。
configfilepath
-
codeql でカスタム クエリ分析を有効にするには、これを使用します (パスは絶対パスにする必要があります)。
string。
パスが指定されていない場合、codeql 分析は既定のクエリを続行します。
codeqltoolsdirectory
-
カスタム CodeQL ツール ディレクトリを設定する (パスは絶対パスにする必要があります)
string。
パスが指定されていない場合は、$agent_toolsdirectory の既定値が使用されます。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
何一つ。
備考
スキャンするリポジトリ GitHub Advanced Security for Azure DevOps が有効になっている必要があります。
大事な
このタスクは、Azure Repos Git リポジトリでのみサポートされています。
パイプラインは、次の順序でタスクを呼び出す必要があります。
- CodeQL を初期化する
- AutoBuild (またはカスタム ビルド タスク)
- CodeQL 分析の実行
AutoBuild タスクは省略可能であり、カスタム ビルド タスクに置き換えることができます。 プロジェクトを分析するには、AutoBuild またはカスタム ビルド タスクを実行する必要があります。
必要条件
| 要件 | 形容 |
|---|---|
| パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
| 実行日 | エージェント、DeploymentGroup |
| の需要 | 何一つ |
| 機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
| コマンドの制限 | 任意 |
| 設定可能な変数 | 任意 |
| エージェントのバージョン | サポートされているすべてのエージェント バージョン。 |
| タスク カテゴリ | 建てる |
関連項目
- GitHub Advanced Security の コード スキャン