既定のセットアップについて
code scanningの既定のセットアップは、リポジトリのcode scanningを有効にする最も迅速で簡単で、最も低いメンテナンス方法です。 リポジトリ内のコードに基づいて、既定のセットアップによってカスタム code scanning 構成が自動的に作成されます。 既定のセットアップを有効にすると、リポジトリでサポート CodeQL言語で記述されたコードは、 CodeQLを使用してスキャンされます。
- リポジトリの既定のブランチ、または任意の保護されたブランチへの各プッシュ。 保護されたブランチの詳細については、「保護されたブランチについて」を参照してください。
- フォークからの pull request を除き、リポジトリの既定のブランチまたは保護されたブランチに基づいて pull request を作成またはコミットする場合。
- 週単位のスケジュール。
サポートされている言語
将来、リポジトリに少なくとも 1 つの CodeQL でサポートされる言語が含まれる可能性がある場合は、対象となるリポジトリの既定のセットアップを有効にすることがおすすめです。 CodeQL でサポートされている言語が含まれていないリポジトリで既定のセットアップを有効にした場合、既定のセットアップではスキャンが実行されず、GitHub Actions 分も使用されません。 CodeQL でサポートされている言語がリポジトリの既定のブランチに追加された場合、既定のセットアップでは、CodeQL でサポートされている言語のスキャンが自動的に開始され、GitHub Actions 分が使われます。 CodeQL でサポートされている言語の詳細については、「CodeQL によるコード スキャンについて」を参照してください。
リポジトリ内のコードが、 CodeQLサポートされている言語を含むように変更された場合、 GitHub は新しい言語を含むように code scanning 構成を自動的に更新します。 code scanning新しい構成で失敗した場合、GitHubは以前の構成を自動的に再開するため、リポジトリはcode scanningカバレッジを失いません。
既定のセットアップのカスタマイズ
既定のセットアップでコードの初期分析を実行した後、ニーズに合わせて構成を変更できます。
構成オプション
既定設定の既存構成の場合、次を編集できます。
- 既定設定で分析する言語。
- 分析中に実行するクエリ スイート。 使用可能なクエリ スイートの詳細については、「AUTOTITLE」を参照してください。
- 分析に使用する脅威モデル (パブリック プレビュー)。 脅威モデルを選択すると、汚染されたデータのどのソースがアプリケーションのリスクとして扱われるかが決まります。 パブリック プレビュー中、脅威モデルはJava/Kotlin と C#の分析でのみサポートされます。 脅威モデルの詳細については、「既定設定で汚染されたデータのローカル ソースを含める」を参照してください。
コードベースが、CodeQLに含まれる標準ライブラリで認識されないライブラリまたはフレームワークに依存している場合は、CodeQL モデル パックを使用して既定のセットアップでCodeQLカバレッジを拡張することもできます。 詳細については、「既定設定で CodeQL モデル パックを使用した CodeQL 対象範囲を拡張する」を参照してください。
すべての code scanning セットアップの種類間で共有される追加の構成オプションを使用できます。 「code scanning のリポジトリのプロパティ」を参照してください。
提供されるランナー
セルフホステッド ランナーまたは CodeQL-ホステッド ランナーで、すべてのGitHub対応言語に対してデフォルト設定を使用できます。
ランナーに既定の code-scanning ラベルを付けることで、既定のセットアップ用にセルフホステッド ランナーを割り当てることができます。また、必要に応じて、個々のリポジトリで異なるランナーを使用できるようにカスタム ラベルを付けることもできます。
特定のユース ケースあるのでがない限り、ランナーには既定の code-scanning ラベルのみを割り当てることをお勧めします。 ただし、次の目的でカスタムラベルを使用することを検討してください。
- より強力なセルフホステッド ランナーを重要なリポジトリに割り当てて、 code scanning 分析を高速化します。
- 特定のプラットフォーム (macOS など) で code scanning 分析を実行します。
- GitHubホストランナーとセルフホステッド ランナーのワークロードをきめ細かく制御できます。
詳細セットアップについて
code scanning構成をより細かく制御する必要がある場合は、代わりに詳細設定を構成する必要があります。
code scanningの詳細設定は、code scanningをカスタマイズする必要がある場合に役立ちます。
code scanningは、GitHub Actionsまたは外部の継続的インテグレーションまたは継続的デリバリー/デプロイ (CI/CD) システムで設定できます。
複数の構成を使用してコード スキャンを実行すると、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、[アラート] ページに表示することができます。 詳しくは、「Code scanningアラートについて」をご覧ください。
GitHub Actionsと共に
GitHub Actionsワークフロー ファイルを作成および編集することで、コンパイル済み言語のビルド方法、実行するクエリの選択、スキャンする言語の選択、マトリックス ビルドの使用などを定義できます。 また、ワークフローを制御するためのすべてのオプション (スキャン スケジュールの変更、ワークフロー トリガーの定義、使用するスペシャリスト ランナーの指定など) にもアクセスできます。
サードパーティの CI/CD システムを使用する場合
code scanningを使用してGitHub内でGitHub Actionsを実行する代わりに、外部 CI/CD システムでコードを分析し、結果をGitHubにアップロードできます。
CodeQL CLIは、コードの分析に使用できるスタンドアロンのコマンド ライン ツールです。
CodeQL CLIをサードパーティ システムに追加することも、静的分析結果交換形式 (SARIF) 2.1.0 データとして結果を生成できる別のサードパーティの静的分析ツールを使用することもできます。 詳細については、「[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/about-the-codeql-cli)」および「[AUTOTITLE](/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning)」を参照してください。
外部で生成したcode scanningのアラートは、code scanning内で生成するGitHubのアラートと同じ方法で表示されます。
次のステップ
1 つのリポジトリ、複数のリポジトリ、または組織内のすべてのリポジトリに対して、既定のセットアップを同時に有効にすることができます。
- 1 つのリポジトリについては、 コード スキャンの既定セットアップの構成 を参照してください。
- 一括有効化については、 大規模なコード スキャンの既定のセットアップを構成する を参照してください。
代わりに高度なセットアップを構成するには、 コード スキャンの詳細設定を構成する を参照してください。