既定のセットアップについて
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 のカバレッジを失いません。
既定のセットアップのカスタマイズ
既定のセットアップでコードの初期分析を実行した後、ニーズに合わせて構成を変更できます。
code scanning 構成をより細かく制御する必要がある場合は、代わりに詳細設定を構成する必要があります。
構成オプション
既定設定の既存構成の場合、次を編集できます。
- 既定設定で分析する言語。
- 分析中に実行するクエリ スイート。 使用可能なクエリ スイートの詳細については、「AUTOTITLE」を参照してください。
- 分析に使用する脅威モデル (ベータ)。 脅威モデルを選択すると、汚染されたデータのどのソースがアプリケーションのリスクとして扱われるかが決まります。 ベータ 期間中、脅威モデルは Java/Kotlin と C# 解析でのみサポートされます。 脅威モデルの詳細については、「既定設定で汚染されたデータのローカル ソースを含める」を参照してください。
コードベースが、CodeQL に含まれている標準ライブラリで認識されないライブラリまたはフレームワークに依存している場合は、CodeQL モデル パックを使用して、既定設定で CodeQL 対象範囲を拡張することもできます。 詳細については、「既定設定で CodeQL モデル パックを使用した CodeQL 対象範囲を拡張する」を参照してください。
提供されるランナー
セルフホステッドランナーまたはGitHubホステッドランナーにおいて、CodeQLでサポートされているすべての言語に対してデフォルト設定を使用できます。
既定のセットアップにセルフホステッド ランナーを割り当てるには、ランナー }
詳細セットアップについて
code scanning の詳細セットアップは、code scanning をカスタマイズする必要がある場合に役立ちます。 code scanning を GitHub Actions または外部の継続的インテグレーションまたは継続的デリバリー/デプロイ (CI/CD) システムを使用して設定できます。
複数の構成を使用してコード スキャンを実行すると、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、[アラート] ページに表示することができます。 詳しくは、「Code scanningアラートについて」をご覧ください。
GitHub Actions
GitHub Actions ワークフロー ファイルを作成および編集することで、コンパイル済み言語の構築方法、実行するクエリの選択、スキャンする言語の選択、マトリックス ビルドの使用などを定義できます。 また、ワークフローを制御するためのすべてのオプション (スキャン スケジュールの変更、ワークフロー トリガーの定義、使用するスペシャリスト ランナーの指定など) にもアクセスできます。
GitHub Connect を設定する方法でも、サイト管理者は、code scanning に対応するサードパーティのアクションを、ユーザーが使用できるように設定できます。 詳しくは、「アプライアンス用コードスキャンの構成」をご覧ください。
サードパーティの CI/CD システムを使用する場合
GitHub Actions を使用して GitHub 内で code scanning を実行する代わりとして、コードを外部の CI/CD システムで分析してから、結果を GitHub にアップロードすることができます。
CodeQL CLI は、コードの分析に利用できるスタンドアロンのコマンドライン ツールです。 CodeQL CLI をサードパーティ システムに追加することも、Static Analysis Results Interchange Format (SARIF) 2.1.0 データ形式で結果を生成できる別のサードパーティ静的分析ツールを使用することもできます。 詳細については、「CodeQL CLI について」および「Code scanningの SARIF サポート」を参照してください。
外部で生成した code scanning に対応するアラートは、GitHub 内で code scanning を生成した場合と同じ方法で表示されます。
次のステップ
1 つのリポジトリ、複数のリポジトリ、または組織内のすべてのリポジトリに対して、既定のセットアップを同時に有効にすることができます。
- 1 つのリポジトリについては、 コード スキャンの既定セットアップの構成 を参照してください。
- 一括有効化については、 大規模なコード スキャンの既定のセットアップを構成する を参照してください。
代わりに高度なセットアップを構成するには、 コード スキャンの詳細設定を構成する を参照してください。