既定のセットアップについて
code scanning の既定のセットアップは、リポジトリに対して code scanning を有効にする最も早く簡単で、最も手間のかからないメンテナンス方法です。 リポジトリ内のコードに基づいて、既定のセットアップでは、カスタム code scanning 構成が自動的に作成されます。 デフォルトのセットアップを有効にすると、リポジトリ内の CodeQL でサポートされている言語で記述されたコードがスキャンされます。
- リポジトリの既定のブランチ、または任意の保護されたブランチへの各プッシュ。 保護されたブランチに関する詳細については、「保護されたブランチについて」を参照してください。
- リポジトリの既定のブランチまたは保護されたブランチに基づいて pull request を作成またはコミットする場合、フォークから pull request を除外します。
- 週単位のスケジュール。
Note
6 か月間、既定のセットアップが有効になっているリポジトリでプッシュと pull request が発生しなかった場合は、GitHub Actions の分数を節約するために、週単位のスケジュールが無効になります。
組織内の複数またはすべてのリポジトリに対して同時に既定のセットアップを有効にすることもできます。 一括有効化について詳しくは、「大規模なコード スキャンの既定のセットアップを構成する」をご覧ください。
code scanning 構成をより細かく制御する必要がある場合は、代わりに詳細設定を構成する必要があります。 詳しくは、「コード スキャンの高度なセットアップの構成」を参照してください。
既定のセットアップを使用するための要件
- これには、少なくとも 1 つの CodeQL でサポートされている言語が含まれています。
- GitHub Actions が有効になっている。
- GitHub Advanced Security が有効になっている。
CodeQL でサポートされている言語が少なくとも 1 つリポジトリに含まれている場合は、CodeQL でサポートされていない言語 (R など) がリポジトリに含まれている場合でも、デフォルト セットアップを使用できます。サポートされていない言語はデフォルト セットアップではスキャンされません。 CodeQL の対応言語について詳しくは、「CodeQL によるコード スキャンについて」をご覧ください。
自己ホストランナーまたは GitHub でホストされるランナーでは、CodeQL でサポートされるすべての言語について既定のセットアップを使用できます。 この記事で後出する「ランナーへのラベルの割り当て」をご覧ください。
既定のセットアップでは autobuild
アクションが実行されるため、C/C++、C#、Go、Java、Kotlin、および Swift 分析に必要なすべてのコマンドを実行できるようにセルフホスト ランナーを構成する必要があります。 現在、JavaScript/TypeScript、Go、Ruby、Python、Kotlin コードの分析では、特別な構成は必要ありません。
既定のセットアップのカスタマイズ
既定のセットアップで code scanning の使用を開始することをおすすめします。 既定のセットアップを最初に構成したら、code scanning を評価して、その動作を確認できます。 想定どおりに動作しない場合は、コードのセキュリティニーズをより適切に満たすように既定のセットアップをカスタマイズできます。 詳しくは、「コード スキャンの既定のセットアップの評価」を参照してください。
以外の CodeQLでサポートされているコンパイル済み言語
リポジトリの既定のセットアップを構成する
最初にリポジトリの code scanning の既定のセットアップを構成すると、リポジトリ内の CodeQL でサポートされている言語すべてが自動的に分析されます。 正常に分析された言語は、新しい既定のセットアップ構成に保持されます。 正常に分析されなかった言語は、既定のセットアップ構成から自動的に選択解除されます。
Note
リポジトリ内の少なくとも 1 つの CodeQL でサポートされている言語の分析が成功する必要があります。そうでない場合、既定のセットアップはそのリポジトリで正常に有効になりません。
-
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 アラートの調査と解決を開始できます。 Dependabot alertsのアラートの詳細については、「Code scanningアラートについて」と「リポジトリのコード スキャンのアラートの評価」を参照してください。
code scanning の既定のセットアップを構成したら、その動作の評価およびカスタマイズに使用できる次の手順を確認できます。 詳しくは、「コード スキャンの既定のセットアップの評価」を参照してください。
code scanning 構成に関する詳細情報 (各スキャンのタイムスタンプ、スキャンされたファイルの割合など) は、ツールの状態ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」を参照してください。
既定のセットアップを構成すると、エラーが発生する可能性があります。 特定エラーのトラブルシューティングの詳細については、「code scanning のトラブルシューティング」を参照してください。