既定のセットアップについて
code scanning の既定のセットアップは、リポジトリに対して code scanning を有効にする最も早く簡単で、最も手間のかからないメンテナンス方法です。 リポジトリ内のコードに基づいて、既定のセットアップでは、カスタム code scanning 構成が自動的に作成されます。 デフォルトのセットアップを有効にすると、リポジトリ内の CodeQL でサポートされている言語で記述されたコードがスキャンされます。
-
リポジトリの既定のブランチ、または任意の保護されたブランチへの各プッシュ。 保護されたブランチの詳細については、「保護されたブランチについて」を参照してください。
-
リポジトリの既定のブランチまたは保護されたブランチに基づいて pull request を作成またはコミットする場合、フォークから pull request を除外します。
-
週単位のスケジュール。
組織内の複数またはすべてのリポジトリに対して同時に既定のセットアップを有効にすることもできます。 一括有効化の詳細については、「大規模なコード スキャンの既定のセットアップを構成する」を参照してください。
code scanning 構成をより細かく制御する必要がある場合は、代わりに詳細設定を構成する必要があります。 詳しくは、「コード スキャンの高度なセットアップの構成」をご覧ください。
既定のセットアップを使用するための要件
の場合、ご利用のリポジトリは code scanning の既定のセットアップの対象になります
- GitHub Actions が有効になっている。
- GitHub Advanced Security が有効になっている。
将来、リポジトリに少なくとも 1 つの CodeQL でサポートされる言語が含まれる可能性がある場合は、対象となるリポジトリの既定のセットアップを有効にすることがおすすめです。 CodeQL でサポートされている言語が含まれていないリポジトリで既定のセットアップを有効にした場合、既定のセットアップではスキャンが実行されず、GitHub Actions 分も使用されません。 CodeQL でサポートされている言語がリポジトリに追加された場合、既定のセットアップでは、CodeQL でサポートされている言語のスキャンが自動的に開始し、GitHub Actions 分が使用されます。 CodeQL の対応言語について詳しくは、「CodeQL によるコード スキャンについて」をご覧ください。
自己ホストランナーまたは GitHub でホストされるランナーでは、CodeQL でサポートされるすべての言語について既定のセットアップを使用できます。 この記事で後述する「ランナーへのラベルの割り当て」を参照してください。
既定のセットアップでは、Java には none
ビルド モードが使用され、他のコンパイル型言語には autobuild
ビルド モードが使用されます。 C/C++、C#、および Swift 分析に必要なコマンドをすべて実行できるようにセルフホスト ランナーを構成する必要があります。 JavaScript/TypeScript、Go、Ruby、Python、Kotlin コードの分析では、現時点で特別な構成は必要ありません。
既定のセットアップのカスタマイズ
既定のセットアップで code scanning の使用を開始することをおすすめします。 既定のセットアップを最初に構成したら、code scanning を評価して、その動作を確認できます。 想定どおりに動作しない場合は、コードのセキュリティニーズをより適切に満たすように既定のセットアップをカスタマイズできます。 詳しくは、「コード スキャンの既定のセットアップの評価」をご覧ください。
以外の CodeQLでサポートされているコンパイル済み言語
リポジトリの既定のセットアップを構成する
最初にリポジトリの code scanning の既定のセットアップを構成すると、リポジトリ内の CodeQL でサポートされている言語すべてが自動的に分析されます。 正常に分析された言語は、新しい既定のセットアップ構成に保持されます。 正常に分析されなかった言語は、既定のセットアップ構成から自動的に選択解除されます。
Note
リポジトリ内のすべての CodeQL 対応言語の分析が失敗した場合でも、既定のセットアップは有効のままですが、別の CodeQL 対応言語がリポジトリに追加されるか、既定のセットアップが手動で再構成されて、1 つの CodeQL 対応言語の分析が成功するまで、スキャンが実行されたり GitHub Actions の分数が実行されたりすることはありません。
-
GitHub で、リポジトリのメイン ページに移動します。
Note
フォークで既定のセットアップを構成する場合は、まず GitHub Actions を有効にする必要があります。 GitHub Actions を有効にするには、リポジトリ名の下にある [アクション] をクリックし、[ワークフローを理解して有効にする] をクリックします。 これにより、フォーク上のすべての既存のワークフローが有効になることに注意してください。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイドバーの [Security] セクションで、[ Code security and analysis] をクリックします。
-
[Code scanning] セクションで、 [設定] を選択し、 [既定] をクリックします。
その後、既定のセットアップで自動的に作成された code scanning 構成が要約された [CodeQL 既定の構成] ダイアログが表示されます。
- 必要に応じて、[CodeQL の既定の構成] モーダル ダイアログの [クエリ スイート] セクションで、 [既定] ドロップダウン メニューを選び、使いたい CodeQL クエリ スイートをクリックします。
[拡張] クエリ スイートを選んだ場合、code scanning の構成によって、 [既定] クエリ スイートに含まれているクエリに加え、重大度と精度の低いクエリが実行されます。 使用可能なクエリ スイートの詳細については、「CodeQL クエリ スイート」を参照してください。
Note
[Extended] クエリ スイートを使うように code scanning を構成する場合は、偽陽性アラートの発生率が高くなる可能性があります。
-
リポジトリの既定のセットアップの設定を確認して、 「有効にする CodeQL] をクリックします。 これで、自動的に生成された新しい構成をテストするワークフローがトリガーされます。
Note
詳細セットアップから既定のセットアップに切り替える場合は、既定のセットアップによって既存の code scanning 構成がオーバーライドされることを通知する警告が表示されます。 この警告では、既定のセットアップにより、既存のワークフロー ファイルが無効になり、CodeQL 分析 API のアップロードがブロックされることを意味します。
-
必要に応じて、有効化した後に既定のセットアップ構成を表示するには、 を選択し、 [View CodeQL configuration] をクリックします。
ランナーへのラベルの割り当て
Note
既定のセットアップが有効になっていると、Code scanning は割り当てられたランナーを参照します。 既に既定のセットアップを実行しているリポジトリにランナーが割り当てられている場合、ランナーの使用を開始するには、既定のセットアップを無効にして再度有効にする必要があります。 ランナーを追加してその使用を開始したい場合は、構成を手動で変更でき、そうすれば既定のセットアップを無効にして再度有効にする必要はありません。
また、自己ホストランナーには code-scanning
ラベルを割り当てることもできます。自己ホストランナーへのラベルの割り当てについては、「セルフホストランナーとのラベルの利用」を参照してください。
次のステップ
構成が少なくとも 1 回正常に実行できたら、code scanning アラートの調査と解決を開始できます。 code scanning アラートの詳細については、「Code scanningアラートについて」と「リポジトリのコード スキャンのアラートの評価」を参照してください。
code scanning の既定のセットアップを構成したら、その動作の評価およびカスタマイズに使用できる次の手順を確認できます。 詳しくは、「コード スキャンの既定のセットアップの評価」をご覧ください。
code scanning 構成に関する詳細情報 (各スキャンのタイムスタンプ、スキャンされたファイルの割合など) は、ツールの状態ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」をご覧ください。
既定のセットアップを構成すると、エラーが発生する可能性があります。 特定のエラーのトラブルシューティングについては、「code scanning のトラブルシューティング」を参照してください。