既定のセットアップでコードの初期分析を実行した後、ニーズに合わせて構成を変更できます。 ユーザー インターフェイスで構成をカスタマイズしたりリポジトリ プロパティを使用してカスタム クエリを追加したり カスタム構成ファイルを適用したりできます。 コード スキャンのセットアップの種類について および リポジトリのプロパティ code scanning を参照してください。
既定設定の既存構成をカスタマイズする
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの [Security] セクションで、[ Advanced Security] をクリックします。
-
[CodeQL] セクションの [Code Security分析] 行で、を選択し、[構成の表示] CodeQL クリックします。
-
[既定の構成CodeQL] ウィンドウで、[編集 クリックします。
-
必要に応じて、[言語] セクションで、分析用の言語を選択または選択解除します。
-
必要に応じて、[設定をスキャン] セクションの [クエリ スイート] 行で、コードに対して実行する別のクエリ スイートを選択します。
-
必要に応じて、ラベル付きランナーを使用するには、[CodeQL 既定の構成] モーダル ダイアログの [ランナーの種類] セクションで [ 標準 GitHub ランナー を選択してドロップダウン メニューを開き、[ ラベル付きランナー] を選択します。 次に、[ランナー ラベル] の横に、既存のセルフホステッド ランナーまたは GitHub ホステッド ランナーのラベルを入力します。 詳細については、「コード スキャンの既定セットアップの構成」を参照してください。
-
(パブリック プレビュー) 必要に応じて、[スキャン設定] セクションの [脅威モデル] 行で、 リモートソースとローカルソースを選択します。 このオプションは、サポートされている言語 ( Java/Kotlin と C#) のコードを含むリポジトリでのみ使用できます。
-
構成を更新し、新しい構成でコードの初期分析を実行するために、[変更を保存] をクリックします。 今後のすべての分析では、新しい構成が使用されます。
pull request チェック エラーの原因となるアラートの重大度を定義する
ルールセットを使用すると、次のいずれかの条件が満たされたときにプル要求がマージされないようにできます。
- 必要なツールは、ルール セットで定義されている重大度の code scanning アラートを検索します。
- 必要なツールの分析はまだ進行中です。
- リポジトリに必要なツールが構成されていません。
詳細については、「コード スキャンのマージ保護を設定します」を参照してください。 ルールセットの一般情報については、「AUTOTITLE」を参照してください。
既定設定に汚染されたデータのローカル ソースを含める
メモ
脅威モデルは現在 パブリック プレビュー 段階であり、変更される可能性があります。 パブリック プレビュー 期間中、脅威モデルは Java/Kotlin と C# 解析でのみサポートされます。
コードベースが、リモートネットワークリクエストのみを汚染データの潜在的なソースと見なす場合、デフォルトの脅威モデルを使用することをお勧めします。 コードベースで、ネットワーク要求以外のソースにテイントされたデータが含まれている可能性があると見なされる場合は、脅威モデルを使用して、これらの追加のソースを CodeQL 分析に追加できます。 パブリック プレビュー中に、コードベースがテイントされたデータの追加ソースと見なすローカル ソース (コマンド ライン引数、環境変数、ファイル システム、データベースなど) を追加できます。
既定設定構成で使用される脅威モデルを編集できます。 詳細については、「既定設定の既存構成をカスタマイズする」を参照してください。
既定のセットアップでCodeQL モデル パックを使用してCodeQLカバレッジを拡張する
メモ
CodeQL モデル パックは現在 パブリック プレビュー 段階であり、変更される可能性があります。 モデル パックは C/C++、C#、Java/Kotlin、Python、Ruby、Rust 分析でサポートされます。
CodeQL 用 CodeQL 拡張機能の Visual Studio Code モデル エディターでは、C#、Java/Kotlin、Python、Ruby に対する依存関係のモデリングがサポートされています。
エンタープライズがGitHub.comでホストされていて、に含まれる標準ライブラリで認識されないフレームワークとライブラリを使用CodeQL場合は、依存関係をモデル化し、code scanning分析を拡張できます。 詳細については、のドキュメントでCodeQLを参照してください。
既定のセットアップでは、モデル パックで追加の依存関係のモデル CodeQL 定義する必要があります。 既定のセットアップでは、個々のリポジトリの CodeQL モデル パックを使用するか、組織内のすべてのリポジトリに対して大規模にカバレッジを拡張できます。
CodeQLモデル パックと独自のモデル パックの記述の詳細については、CodeQL モデル エディターの使用 を参照してください。
リポジトリの対象範囲を拡張する
- リポジトリの
.github/codeql/extensionsディレクトリで、分析に含めるライブラリやフレームワーク用の追加モデルを含むcodeql-pack.ymlファイルおよび.ymlファイルが含まれるモデル パック ディレクトリをコピーします。 - モデル パックは自動的に検出され、 code scanning 分析で使用されます。
- 後で高度な設定を使用するように構成を変更した場合、
.github/codeql/extensionsディレクトリ内のすべてのモデル パックは引き続き認識され、使用されます。
組織内のすべてのリポジトリの対象範囲を拡張する
メモ
組織内のすべてのリポジトリのCodeQL モデル パックを使用してカバレッジを拡張する場合、指定するモデル パックは、GitHubContainer registryに関連付けられているコンテナー レジストリに発行し、code scanning実行するリポジトリからアクセスできる必要があります。 詳細については、「コンテナレジストリの利用」を参照してください。
-
GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。
-
Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。](/assets/cb-49309/images/help/discussions/org-settings-global-nav-update.png)
-
サイドバーの [Security] セクションで、 [Advanced Security]、[Global settings] の順にクリックします。
-
[Code scanning] セクションを見つけます。
-
[ CodeQL 分析の展開] の横にある [ 構成] をクリックします。
-
使用する公開済みモデル パックへの参照を、1 行に 1 つずつ入力し、[保存] をクリックします。
![組織の設定の [CodeQL 分析を展開] ビューのスクリーンショット。](/assets/cb-61123/images/help/security/enable-codeql-org-model-packs.png)
-
モデル パックは、既定のセットアップが有効になっている組織内の任意のリポジトリで code scanning が実行されるときに自動的に検出され、使用されます。
構成ファイルを使用した既定のセットアップのカスタマイズ
github-codeql-config-file リポジトリ プロパティを使用して、CodeQL構成ファイルを適用することで、既定のセットアップをさらにカスタマイズできます。 ファイル内の構成は、構成の既定のセットアップとマージされて自動的に生成されるため、たとえば、追加のクエリを追加したり、高度なセットアップに切り替えることなくパスを除外したりできます。
CodeQL構成ファイルで構成できる内容と、構成ファイルを既定のセットアップとマージする方法の詳細については、リポジトリのプロパティ code scanning を参照してください。
組織内のすべてのリポジトリに構成ファイルを適用する
既定のセットアップを大規模にカスタマイズするには、 github-codeql-config-file リポジトリ プロパティの組織全体の既定値を設定することをお勧めします。そのため、個々のリポジトリを組織に追加するときに個々のリポジトリを更新する必要はありません。
-
中央リポジトリに CodeQL 構成ファイルを作成します。 この目的で新しいリポジトリを作成するか、既存のリポジトリにファイルを追加することができます。 その後、組織全体の構成を 1 か所で管理できます。 構成ファイルの形式については、 コード スキャンのワークフロー構成オプション を参照してください。
構成ファイルが分析対象以外のプライベート リポジトリに格納されている場合は、既定のセットアップで他のリポジトリからアクセスできるように 、Git ソース のプライベート レジストリ構成も設定する必要があります。 「セキュリティ機能にプライベート レジストリへのアクセスを許可する」を参照してください。
-
組織の
github-codeql-config-fileリポジトリ プロパティを作成し、その既定値を構成ファイルのパスに設定します。 たとえば、構成ファイルをocto-org/configのmainブランチにcodeql.ymlとしてコミットした場合、リポジトリ プロパティの値をremote=octo-org/config@main:codeql.ymlに設定します。組織全体の既定値を設定する前に、1 つのリポジトリで構成ファイルをテストすることをお勧めします。 「リポジトリのプロパティ code scanning」を参照してください。
-
構成ファイルは自動的に検出され、構成の既定のセットアップとマージされ、次に組織内の各リポジトリで実行 code scanning が生成されます。
github-codeql-config-fileプロパティに明示的な値が既に設定されているリポジトリでは、組織全体の既定値ではなく、引き続きその値が使用されます。 既定および明示的なリポジトリ プロパティ値の対話方法の詳細については、 Organization 内リポジトリのカスタム プロパティの管理 を参照してください。
リポジトリへの構成ファイルの適用
1 つのリポジトリの既定のセットアップのみをカスタマイズする必要がある場合、または構成を組織にロールアウトする前にテストする必要がある場合は、代わりにそのリポジトリに直接プロパティを設定できます。
-
CodeQL構成ファイルを作成します。 これは、分析対象のリポジトリ内のファイルでも、別のリポジトリ内のファイルでもかまいません。 構成ファイルの形式については、 コード スキャンのワークフロー構成オプション を参照してください。
構成ファイルが分析対象以外のプライベート リポジトリに格納されている場合は、既定のセットアップで他のリポジトリからアクセスできるように 、Git ソース のプライベート レジストリ構成も設定する必要があります。 「セキュリティ機能にプライベート レジストリへのアクセスを許可する」を参照してください。
-
リポジトリの
github-codeql-config-fileリポジトリ プロパティを、構成ファイルのローカル パスまたはリモート パスに設定します。 このプロパティの許容値の詳細については リポジトリのプロパティ code scanning を参照し、リポジトリ プロパティ値を設定する方法については Organization 内リポジトリのカスタム プロパティの管理 を参照してください。 -
構成ファイルは自動的に検出され、構成の既定のセットアップとマージされ、次回リポジトリで実行 code scanning が生成されます。
非アクティブなリポジトリのスキャンを継続する
By default, code scanning default setup pauses weekly scheduled scans on repositories that have had no commits pushed or pull requests opened for 180 days. スキャン期間は構成できませんが、組織内でこの動作をオーバーライドできます。
-
GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。
-
Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。](/assets/cb-49309/images/help/discussions/org-settings-global-nav-update.png)
-
サイドバーの [Security] セクションで、 [Advanced Security]、[Global settings] の順にクリックします。
-
[Code scanning] セクションで、[ 非アクティブなリポジトリのスケジュールされたスキャンを 30 日ごとに実行する ] 設定を有効にします。
その他のカスタマイズ
code scanning構成のその他の側面を変更する必要がある場合は、詳細設定の構成を検討してください。 「コード スキャンの詳細設定を構成する」を参照してください。