大規模な既定のセットアップの構成について
code scanning の既定のセットアップでは、Organization 全体のリポジトリ内のコードをすばやくセキュリティで保護できます。
組織内のデフォルト設定に適格なすべてのリポジトリに対して、code scanning を有効にすることができます。 既定のセットアップを有効にすると、組織のリポジトリ内の CodeQL でサポートされている言語で記述されたコードがスキャンされます。
- リポジトリの既定のブランチ、または任意の保護されたブランチへの各プッシュ。 保護されたブランチに関する詳細については、「保護されたブランチについて」を参照してください。
- リポジトリの既定のブランチまたは保護されたブランチに基づいて pull request を作成またはコミットする場合、フォークから pull request を除外します。
- 週単位のスケジュールに基づきます。
詳細については、「Organization 内のすべての適格なリポジトリの既定のセットアップの構成」を参照してください。
また、セキュリティの概要を使用して、Organization 内の一連のリポジトリを検索し、それらのすべてに対して既定のセットアップを同時に有効または無効にすることもできます。 詳細については、「Organization 内のリポジトリのサブセットの既定のセットアップの構成」を参照してください。
個々のリポジトリに対して異なる既定のセットアップ構成を作成することもできます。 リポジトリ レベルでの既定の設定について詳しくは、「コード スキャンの既定セットアップの構成」を参照してください。
既定の設定の対象ではないリポジトリの場合は、スクリプトを使用してリポジトリ レベルまたは Organization のレベルで詳細設定を構成できます。 詳しくは、「CodeQL で大規模にコード スキャンの高度なセットアップを構成する」を参照してください。
大規模な CodeQL の既定のセットアップの対象となるリポジトリ
リポジトリが既定のセットアップの対象となるには、次のすべての条件を満たしている必要があります。そうでない場合は、詳細設定を使う必要があります。
- code scanning の詳細設定がまだ有効になっていません。
- GitHub Actions が有効になっています。
- GitHub Advanced Security が有効になっている。
将来、リポジトリに少なくとも 1 つの CodeQL でサポートされる言語が含まれる可能性がある場合は、対象となるリポジトリの既定のセットアップを有効にすることがおすすめです。 CodeQL でサポートされている言語が含まれていないリポジトリで既定のセットアップを有効にした場合、既定のセットアップではスキャンが実行されず、GitHub Actions 分も使用されません。 CodeQL でサポートされている言語がリポジトリに追加された場合、既定のセットアップでは、CodeQL でサポートされている言語のスキャンが自動的に開始し、GitHub Actions 分が使用されます。 CodeQL の対応言語について詳しくは、「CodeQL によるコード スキャンについて」をご覧ください。
注: Organization の設定ページ を使用して Organization 内のすべてのリポジトリの既定のセットアップを構成すると、既定のセットアップの既存の構成はオーバーライドされません 。 ただし、セキュリティの概要 を使用して Organization 内のリポジトリのサブセットに対して既定のセットアップを構成すると、それらのリポジトリの既定のセットアップの既存の構成がオーバーライドされます 。
既存の既定のセットアップ構成に言語を追加する方法について
リポジトリ内のコードが CodeQL がサポートする言語を含むように変更された場合、GitHub は自動的に code scanning 構成を更新して新しい言語を含めます。 新しい構成で code scanning が失敗した場合、GitHub は以前の構成を自動的に再開するため、リポジトリは code scanning のカバレッジを失いません。
Organization 内のすべての対象リポジトリの既定のセットアップの構成
組織の設定の [コードのセキュリティと分析] ページで、組織内のすべての対象リポジトリの既定のセットアップを有効にすることができます。 リポジトリの適格性の詳細については、「CodeQL の既定の セットアップにおける大規模なリポジトリの適格性」を参照してください。
- GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
- 組織の隣の [設定] をクリックします。
- サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。
- [Code scanning] の横の [Enable all] をクリックします。
- [code scanning の既定のセットアップを有効にする] ダイアログ ボックスの [クエリ スイート] セクションで、既定のセットアップの構成が実行されるクエリ スイートを選択します。 詳しくは、「CodeQL クエリ スイート」を参照してください。
- 既定のセットアップの構成を有効にするには、[対象となるリポジトリの有効化] をクリックします。
- 必要に応じて、既定のセットアップを有効にするときに Organization 全体で "拡張" クエリ スイートを推奨するには、[既定のセットアップを有効にするリポジトリに拡張クエリ スイートを推奨する] を選択します。
注:
- すべてのリポジトリで CodeQL code scanning を無効にした場合、この変更は Organization のセキュリティの概要で示されるカバレッジ情報に反映されません。 リポジトリでは引き続き、この [セキュリティ カバレッジ] ビューでcode scanningが有効になっているように見えます。
- Organization 内のすべての対象リポジトリに対して code scanning を有効にした場合、既存の code scanning 構成はオーバーライドされません。 特定のリポジトリに対して異なる設定で既定のセットアップを構成する方法については、「コード スキャンの既定セットアップの構成」および「Organization 内のリポジトリのサブセットの既定のセットアップの構成」を参照してください。
- Organization 内のすべての適格なリポジトリに対して既定のセットアップを有効にすると、CodeQL でサポートされている言語のない対象リポジトリが含まれます。 後で CodeQL でサポートされている言語がこれらのリポジトリのいずれかに追加された場合、既定のセットアップでは、そのリポジトリのスキャンが開始され、GitHub Actions 分が使用されます。
既定のセットアップでの CodeQL カバレッジの拡張
組織のセキュリティ設定ページで、組織内のすべての対象リポジトリに対して、モデル パックを使用して既定の適用範囲を拡張できます。 詳しくは、「既定のセットアップの構成を編集する」を参照してください。
Organization 内のリポジトリのサブセットの既定セットアップを構成する
Organization のセキュリティの概要を通じて、既定のセットアップの対象となるリポジトリを見つけ、それらの各リポジトリで同時に既定のセットアップを有効にすることができます。 リポジトリの適格性の詳細については、「CodeQL の既定の セットアップにおける大規模なリポジトリの適格性」を参照してください。
既定のセットアップの対象となるリポジトリの検索
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
サイドバーの [カバレッジ] をクリックして、[セキュリティ カバレッジ] ビューを表示します。
-
検索バーに、次のいずれかのクエリを入力します。
code-scanning-default-setup:eligible is:public
では、既定のセットアップに適した言語があり、一般に公開されているため対象となるリポジトリが示されます。code-scanning-default-setup:eligible advanced-security:enabled
では、既定のセットアップに適した言語があり、GitHub Advanced Security が有効になっているため対象となるプライベートまたは内部リポジトリが示されます。code-scanning-default-setup:eligible is:private,internal advanced-security:not-enabled
では、既定のセットアップに適した言語はあるものの、GitHub Advanced Security が有効になっていないプライベートまたは内部リポジトリが示されます。 これらのリポジトリに対して GitHub Advanced Security を有効にすると、既定のセットアップに追加することもできます。
表示されているすべてのリポジトリまたはそれらのサブセットを選び、それらすべてに対して code scanning の既定のセットアップを同時に有効または無効にできます。 詳細については、「Organization 内の複数のリポジトリに対して大規模な既定のセットアップを構成する」の手順 5 を参照してください。
Organization 内の複数のリポジトリに対する大規模な既定のセットアップの構成
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
サイドバーの [カバレッジ] をクリックして、[セキュリティ カバレッジ] ビューを表示します。
-
検索バーを使い、名前またはセキュリティ機能の有効化状態に基づいて、[セキュリティ カバレッジ] ビューに表示されるリポジトリを絞り込むことができます。 たとえば、既定のセットアップの対象であり、現在既定のセットアップが有効になっていないリポジトリをフィルター処理するには、
code-scanning-default-setup:eligible
を検索します。 -
リポジトリの一覧で、code scanning を有効にする各リポジトリを選択します。
- ページ上のすべてのリポジトリに対する code scanning の有効化を確認するには、[<数> 個がアクティブ] の隣にあるチェックボックスを選択してください。
- 現在の検索に一致するすべてのリポジトリに対してcode scanningを有効にするには、 [<数> 個がアクティブ] の横にあるチェック ボックスをオンにしてから、 [<数> 個のリポジトリをすべて選択] をクリックします。
-
[<数> 個選択済み] の横にある [セキュリティ設定] をクリックします。
-
サイド パネルの [CodeQL Default Setup] セクションで、[変更なし] を選択し、[有効] をクリックします。
-
必要に応じて、Organization の既定のクエリ スイートとは異なるクエリ スイートを選択する場合、[クエリ スイート: SUITE NAME] を選択し、既定のセットアップの構成で使用するクエリ スイートをクリックします。 詳しくは、「CodeQL クエリ スイート」をご覧ください。
-
選択したリポジトリに対する code scanning の有効化を確認するには、[変更の適用 <数>] をクリックします。 または、code scanning 有効化のリポジトリをさらに選択または選択解除するには、[] をクリックして、変更を適用せずにパネルを閉じます。
注:
- セキュリティの概要を使用してOrganization 内の複数のリポジトリに対して code scanning を有効にすると、選択したリポジトリの既存の code scanning 構成 (以前のクエリ スイートの選択や詳細設定のワークフローを含む) がオーバーライドされます。
- CodeQL でサポートされている言語を含まない対象リポジトリに対して、既定のセットアップを有効にすることができます。 後で CodeQL でサポートされている言語がこれらのリポジトリのいずれかに追加された場合、既定のセットアップでは、そのリポジトリのスキャンがスタートし、GitHub Actions 分が使用されます。
Enterprise ポリシーによりcode scanningを有効にできない場合でも、[セキュリティ カバレッジ] ビューで影響を受けるリポジトリを表示して、 [セキュリティ設定] ボタンからサイド パネルにアクセスできます。 ただし、選択したリポジトリに対して code scanning を有効にできないことを示すメッセージがサイド パネルに表示されます。 Enterprise ポリシーについて詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」をご覧ください。
組織内のすべてのリポジトリのマージ保護の構成
ルールセットを使用すると、次のいずれかの条件が満たされたときにプル要求がマージされないようにできます。
-
必要なツールで、ルール セットで定義している重大度の code scanning アラートが見つかりました。
-
必要な code scanning ツールはまだ分析中です。
-
必要な code scanning ツールはリポジトリ用に構成されていません。
詳しくは、「コード スキャンのマージ保護を設定します」を参照してください。 ルールセットについて一般的な情報は、「ルールセットについて」をご覧ください。