コード スキャンと CodeQL
分析に使用するツールとアラートを生成する方法に応じて、リポジトリ内でコード スキャンを設定するためのオプションがいくつかあります。 3 つの主な方法があります。
- 既定のセットアップを使用して、リポジトリ上のコード スキャン用に CodeQL 分析をすばやく構成します。 既定の設定では、分析する言語、実行するクエリ スイート、スキャンをトリガーするイベントが自動的に選択されます。 必要に応じて、実行するクエリ スイートと分析する言語を手動で選択できます。 CodeQL を有効にすると、GitHub Actions によってワークフローが実行され、コードがスキャンされます。 詳しくは、「コード スキャンの既定セットアップの構成」を参照してください。
- 詳細設定を使用して、CodeQL ワークフローをリポジトリに追加します。 これにより、github/codeql-action を使用して CodeQL CLI を実行する、カスタマイズ可能なワークフロー ファイルが生成されます。 詳しくは、「コード スキャンの詳細設定の構成」を参照してください。
- CodeQL CLI を外部 CI システムで直接実行し、結果を GitHub にアップロードします。 詳しくは、「既存の CI システムでコード スキャンを使用する」[2] を参照してください。
以前、既定のセットアップと構成の概要について説明しました。 ここでは、詳細設定を使用してコード スキャンを設定する方法と、複数のリポジトリに対してコード スキャン ワークフローの一括設定を実行する方法について説明します。
GitHub Actions と CodeQL を使用したコード スキャン
詳細設定を使用してコード スキャンを設定するには、次を実行します。
- リポジトリの [Settings] タブに移動します。
- 左側のパネル内で、[Code security and analysis] に移動し、[Set up] ドロップダウンをクリックして、[Advanced] を選択します。 コード スキャンを有効にする前に、GitHub Advanced Security を有効にする必要がある場合があります。
- 生成されたワークフロー ファイルを含む新しいページが表示されます。 このファイルは既定で "
codeql.yml
" という名前が付けられた構成可能なワークフロー ファイルで、コード スキャンの実行を開始するにはこれをリポジトリにコミットする必要があります。 - コード スキャンによるコードのスキャン方法をカスタマイズするには、ワークフローを編集します。 通常は、何も変更しないで CodeQL 分析ワークフローをコミットできます。
- 右上隅にある [Commit changes...] ボタンを使用し、ポップアップ ボックス内にコミット メッセージを入力します。
- 既定のブランチに直接コミットするか、新しいブランチを作成して pull request を開始するかを選択します。
- [変更をコミットする] をクリックします。
CodeQL の既定の分析ワークフローのコード スキャンは、既定のブランチまたは保護されたブランチに変更をプッシュするか、既定のブランチに pull request 要求を上げるたびに、コードを分析するように構成されています。 その結果、コードのスキャンがすぐに開始されます。
コード スキャンの on:pull_request
と on:push
トリガーは、それぞれ異なる目的に役立ちます。
コード スキャンの一括セットアップ
スクリプトを使用すると、多くのリポジトリで一度にコード スキャンを設定できます。 スクリプトを使用して、GitHub Actions ワークフローを複数のリポジトリに追加する pull request を生成する場合、PowerShell を使用する例では jhutchings1/Create-ActionsPR[3] リポジトリを参照する、または NodeJS を使用する例では nickliffen/ghas-enablement[4] を参照します。