既定のセットアップについて
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 を評価して、その動作を確認できます。 想定どおりに動作しない場合は、コードのセキュリティニーズをより適切に満たすように既定のセットアップをカスタマイズできます。 詳しくは、「コード スキャンの既定のセットアップの評価」をご覧ください。
非コンパイル言語と コンパイル済み言語を既定のセットアップに追加する方法について
リポジトリ内のコードが Go、JavaScript/TypeScript、Python、または Ruby を含むように変更された場合、GitHub は、新しい言語を含むように code scanning 構成を自動的に更新します。 新しい構成で code scanning が失敗した場合、GitHub は以前の構成を自動的に再開するため、リポジトリは code scanning のカバレッジを失いません。
コンパイルされた言語は既定のセットアップ構成には自動的に含まれません。多くの場合、より高度な構成が必要になりますが、分析のために Swift 以外の CodeQLでサポートされているコンパイル済み言語
リポジトリの既定のセットアップを構成する
Note
リポジトリ内の少なくとも 1 つの CodeQL でサポートされている言語の分析が成功する必要があります。そうでない場合、既定のセットアップはそのリポジトリで正常に有効になりません。
-
GitHub で、リポジトリのメイン ページに移動します。
Note
フォークで既定のセットアップを構成する場合は、まず GitHub Actions を有効にする必要があります。 GitHub Actions を有効にするには、リポジトリ名の下にある [アクション] をクリックし、[ワークフローを理解して有効にする] をクリックします。 これにより、フォーク上のすべての既存のワークフローが有効になることに注意してください。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイドバーの [Security] セクションで、[ Code security and analysis] をクリックします。
-
[Code scanning] セクションで、 [設定] を選択し、 [既定] をクリックします。
その後、既定のセットアップで自動的に作成された code scanning 構成が要約された [CodeQL 既定の構成] ダイアログが表示されます。
Note
リポジトリに CodeQL 対応のコンパイル済み言語 (Java など) "のみ" が含まれている場合は、設定ページに移動するので、そこで既定のセットアップ構成に加える言語を選びます。__
-
必要に応じて、code scanning セットアップをカスタマイズするには、[ [Edit] をクリックします。
- 既定の設定で実行される分析の言語を追加または削除するには、[言語] セクションでその言語を選択または選択解除します。 既定のセットアップで CodeQL でサポートされているコンパイル済み言語を分析する場合は、ここでその言語を選択します。
- 使用する CodeQL クエリ スイートを指定するには、[クエリ スイート] セクションで任意のクエリ スイートを選択します。
-
リポジトリの既定のセットアップの設定を確認して、 「有効にする 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 のトラブルシューティング」を参照してください。