{"meta":{"title":"コード スキャンのセットアップの種類について","intro":"ニーズに応じて、 GitHub では、 code scanningの既定または高度なセットアップが提供されます。","product":"セキュリティとコードの品質","breadcrumbs":[{"href":"/ja/code-security","title":"セキュリティとコードの品質"},{"href":"/ja/code-security/concepts","title":"Concepts"},{"href":"/ja/code-security/concepts/code-scanning","title":"コード スキャン"},{"href":"/ja/code-security/concepts/code-scanning/setup-types","title":"セットアップの種類"}],"documentType":"article"},"body":"# コード スキャンのセットアップの種類について\n\nニーズに応じて、 GitHub では、 code scanningの既定または高度なセットアップが提供されます。\n\n## 既定のセットアップについて\n\ncode scanningの既定のセットアップは、リポジトリのcode scanningを有効にする最も迅速で簡単で、最も低いメンテナンス方法です。 リポジトリ内のコードに基づいて、既定のセットアップによってカスタム code scanning 構成が自動的に作成されます。 また、ワークフロー ファイルを作成または保守することなく、組織全体で大規模な構成を含め、この構成をカスタマイズすることもできます。\n[「既定のセットアップのカスタマイズ」](#customization-of-default-setup)を参照してください。 既定のセットアップを有効にすると、リポジトリでサポート CodeQL言語で記述されたコードは、 CodeQLを使用してスキャンされます。\n\n* リポジトリの既定のブランチ、または任意の保護されたブランチへの各プッシュ。 保護されたブランチの詳細については、「[保護されたブランチについて](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)」を参照してください。\n* フォークからの pull request を除き、リポジトリの既定のブランチまたは保護されたブランチに基づいて pull request を作成またはコミットする場合。\n* 週単位のスケジュール。\n\n### サポートされている言語\n\n将来、リポジトリに少なくとも 1 つの CodeQLサポートされている言語が含まれる可能性がある場合は、対象となるリポジトリの既定のセットアップを有効にすることをお勧めします。\nCodeQLサポートされている言語が含まれていないリポジトリで既定のセットアップを有効にした場合、既定のセットアップではスキャンが実行されず、GitHub Actions分も使用されません。\nCodeQLサポートされている言語がリポジトリの既定のブランチに追加された場合、既定のセットアップでは、サポートされている言語CodeQLスキャンが自動的に開始され、GitHub Actions分が使用されます。\nCodeQLサポートされている言語の詳細については、[CodeQL を使用したコード スキャン](/ja/code-security/concepts/code-scanning/codeql/codeql-code-scanning#about-codeql) を参照してください。\n\nリポジトリ内のコードが、 CodeQLサポートされている言語を含むように変更された場合、 GitHub は新しい言語を含むように code scanning 構成を自動的に更新します。\ncode scanning新しい構成で失敗した場合、GitHubは以前の構成を自動的に再開するため、リポジトリはcode scanningカバレッジを失いません。\n\n## 既定のセットアップのカスタマイズ\n\n既定のセットアップでコードの初期分析を実行した後、ニーズに合わせて構成を変更できます。\n\n### 構成オプション\n\n既定設定の既存構成の場合、次を編集できます。\n\n* 既定設定で分析する言語。\n* 分析中に実行するクエリ スイート。 使用可能なクエリ スイートの詳細については、[「AUTOTITLE」](/ja/code-security/concepts/code-scanning/codeql/codeql-query-suites)を参照してください。\n* 分析に使用する脅威モデル (パブリック プレビュー)。 脅威モデルを選択すると、汚染されたデータのどのソースがアプリケーションのリスクとして扱われるかが決まります。\n  パブリック プレビュー中、脅威モデルはJava/Kotlin と C#の分析でのみサポートされます。 脅威モデルの詳細については、[「既定設定で汚染されたデータのローカル ソースを含める」](/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/edit-default-setup#including-local-sources-of-tainted-data-in-default-setup)を参照してください。\n\nコードベースが、CodeQLに含まれる標準ライブラリで認識されないライブラリまたはフレームワークに依存している場合は、CodeQL モデル パックを使用して既定のセットアップでCodeQLカバレッジを拡張することもできます。 詳細については、[「既定設定で CodeQL モデル パックを使用した CodeQL 対象範囲を拡張する」](/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/edit-default-setup#extending-codeql-coverage-with-codeql-model-packs-in-default-setup)を参照してください。\n\nCodeQL リポジトリ プロパティを設定することで、カスタム `github-codeql-config-file`構成ファイルを組織全体の既定のセットアップに一度に適用したり、単一のリポジトリに適用したりすることもできます。\n`github-codeql-config-file` プロパティを使用して適用されたカスタム構成ファイルは、既定のセットアップcode scanning自動的に生成される構成とマージされます。\nCode scanning 既定のセットアップでは、使用する脅威モデルや CodeQL モデル パックなど、ユーザー インターフェイスの一部の分析設定をカスタマイズできます。 これらの選択はマージされた構成に保持されます。既定のセットアップ UI で選択された脅威モデルは、構成ファイルで指定された脅威モデルと組み合わされ、UI で構成されたモデル パックが保持されます。 これにより、以前に高度なセットアップが必要だったカスタマイズのニーズを満たしながら、既定のセットアップの低メンテナンスの利点を維持できます。 「[リポジトリのプロパティ code scanning](/ja/code-security/concepts/code-scanning/repository-properties#custom-configuration-files)」と「[既定設定の構成を編集する](/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/edit-default-setup#customizing-default-setup-with-a-configuration-file)」を参照してください。\n\nすべての code scanning セットアップの種類間で共有される追加の構成オプションを使用できます。 「[リポジトリのプロパティ code scanning](/ja/code-security/concepts/code-scanning/repository-properties)」を参照してください。\n\n### 提供されるランナー\n\nセルフホステッド ランナーまたは CodeQL-ホステッド ランナーで、すべてのGitHub対応言語に対してデフォルト設定を使用できます。\n\nランナーに既定の `code-scanning` ラベルを付けることで、既定のセットアップ用にセルフホステッド ランナーを割り当てることができます。また、必要に応じて、個々のリポジトリで異なるランナーを使用できるようにカスタム ラベルを付けることもできます。\n\n特定のユース ケースあるのでがない限り、ランナーには既定の `code-scanning` ラベルのみを割り当てることをお勧めします。 ただし、次の目的でカスタムラベルを使用することを検討してください。\n\n* より強力なセルフホステッド ランナーを重要なリポジトリに割り当てて、 code scanning 分析を高速化します。\n* 特定のプラットフォーム (macOS など) で code scanning 分析を実行します。\n* GitHubホストランナーとセルフホステッド ランナーのワークロードをきめ細かく制御できます。\n\n## 詳細セットアップについて\n\nカスタム構成ファイルなど、既定のセットアップで使用できるカスタマイズ オプションがニーズを満たしていない場合詳細設定を構成する必要があります。\ncode scanningの詳細設定は、コンパイルされた言語のビルド、マトリックス ビルドの使用、分析スケジュールの変更など、独自のGitHub Actions ワークフローを定義する必要がある場合に役立ちます。\ncode scanningは、GitHub Actionsまたは外部の継続的インテグレーションまたは継続的デリバリー/デプロイ (CI/CD) システムで設定できます。\n\n複数の構成を使用してコード スキャンを実行すると、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、\\[アラート] ページに表示することができます。 詳しくは、「[コード スキャンのアラート](/ja/code-security/concepts/code-scanning/code-scanning-alerts#about-alerts-from-multiple-configurations)」をご覧ください。\n\n### GitHub Actions あり\n\nGitHub Actionsワークフロー ファイルを作成および編集することで、コンパイル済み言語のビルド方法、実行するクエリの選択、スキャンする言語の選択、マトリックス ビルドの使用などを定義できます。 また、ワークフローを制御するためのすべてのオプション (スキャン スケジュールの変更、ワークフロー トリガーの定義、使用するスペシャリスト ランナーの指定など) にもアクセスできます。\n\n### サードパーティの CI/CD システムを使用する場合\n\ncode scanningを使用してGitHub内でGitHub Actionsを実行する代わりに、外部 CI/CD システムでコードを分析し、結果をGitHubにアップロードできます。\n\nCodeQL CLIは、コードの分析に使用できるスタンドアロンのコマンド ライン ツールです。\nCodeQL CLIをサードパーティ システムに追加することも、静的分析結果交換形式 (SARIF) 2.1.0 データとして結果を生成できる別のサードパーティの静的分析ツールを使用することもできます。 詳細については、「[CodeQL コマンドラインインターフェース (CLI)](/ja/code-security/concepts/code-scanning/codeql/codeql-cli)」および「[Code scanningの SARIF サポート](/ja/code-security/reference/code-scanning/sarif-files/sarif-support)」を参照してください。\n\n外部で生成したcode scanningのアラートは、code scanning内で生成するGitHubのアラートと同じ方法で表示されます。\n\n## 次のステップ\n\n1 つのリポジトリ、複数のリポジトリ、または組織内のすべてのリポジトリに対して、既定のセットアップを同時に有効にすることができます。\n\n* 1 つのリポジトリについては、 [コード スキャンの既定セットアップの構成](/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning) を参照してください。\n* 一括有効化については、 [大規模なコード スキャンの既定のセットアップを構成する](/ja/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/code-scanning-at-scale) を参照してください。\n\n代わりに高度なセットアップを構成するには、 [コード スキャンの詳細設定を構成する](/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-advanced-setup-for-code-scanning) を参照してください。"}