Skip to main content

Enterprise Server 3.16 は、現在リリース候補として使用できます。

コード スキャンの既定セットアップの構成

リポジトリの code scanning の既定のセットアップを使用して、リポジトリ内のコードを迅速に保護できます。

この機能を使用できるユーザーについて

リポジトリの所有者、組織の所有者、セキュリティ マネージャー、および 管理者 ロールを持つユーザー

GitHub Advanced Security が有効になっている組織所有のリポジトリ

既定のセットアップについて

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 でサポートされるすべての言語に既定のセットアップを使用できます。 この記事で後述する「ランナーへのラベルの割り当て」を参照してください。

既定のセットアップでは、C# および Java には none ビルド モードが使用され、他のコンパイル型言語には autobuild ビルド モードが使用されます。 C/C++、C#、および Swift 分析に必要なコマンドをすべて実行できるようにセルフホスト ランナーを構成する必要があります。 JavaScript/TypeScript、Go、Ruby、Python、Kotlin コードの分析では、現時点で特別な構成は必要ありません。

既定のセットアップのカスタマイズ

既定のセットアップで code scanning の使用を開始することをおすすめします。 既定のセットアップを最初に構成したら、code scanning を評価して、その動作を確認できます。 想定どおりに動作しない場合は、コードのセキュリティニーズをより適切に満たすように既定のセットアップをカスタマイズできます。 詳しくは、「コード スキャンの既定のセットアップの評価」をご覧ください。

既定のセットアップへの非コンパイル型およびコンパイル型言語の追加について

リポジトリ内のコードが Go、JavaScript/TypeScript、Python、または Ruby を含むように変更された場合、GitHub によって、新しい言語を含めるように code scanning 構成が自動的に更新されます。 新しい構成で code scanning が失敗した場合、GitHub は以前の構成を自動的に再開するため、リポジトリは code scanning のカバレッジを失いません。

コンパイル済み言語は、多くの場合より高度な構成を必要とするため、既定の設定の構成には自動的に含まれませんが、解析の場合は、CodeQL でサポートされている任意のコンパイル済み言語を手動で選ぶことができます。

リポジトリの既定のセットアップを構成する

Note

リポジトリ内のすべての CodeQL 対応言語の分析が失敗した場合でも、既定のセットアップは有効のままですが、別の CodeQL 対応言語がリポジトリに追加されるか、既定のセットアップが手動で再構成されて、1 つの CodeQL 対応言語の分析が成功するまで、スキャンが実行されたり GitHub Actions の分数が実行されたりすることはありません。

  1. GitHub で、リポジトリのメイン ページに移動します。

    Note

    フォークで既定のセットアップを構成する場合は、まず GitHub Actions を有効にする必要があります。 GitHub Actions を有効にするには、リポジトリ名の下にある [アクション] をクリックし、[ワークフローを理解して有効にする] をクリックします。 これにより、フォーク上のすべての既存のワークフローが有効になることに注意してください。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [Security] セクションで、[ Code security and analysis] をクリックします。

  4. [Code scanning] セクションで、 [設定] を選択し、 [既定] をクリックします。

    [Code security and analysis] 設定の [Code scanning] セクションのスクリーンショット。 [既定のセットアップ] ボタンがオレンジ色のアウトラインで強調されています。

    その後、既定のセットアップで自動的に作成された code scanning 構成が要約された [CodeQL 既定の構成] ダイアログが表示されます。

    Note

    リポジトリに CodeQL 対応のコンパイル済み言語 (Java など) "のみ" が含まれている場合は、設定ページに移動するので、そこで既定のセットアップ構成に加える言語を選びます。__

  5. 必要に応じて、code scanning セットアップをカスタマイズするには、[ [Edit] をクリックします。

    • 既定の設定で実行される分析の言語を追加または削除するには、[言語] セクションでその言語を選択または選択解除します。 既定のセットアップで CodeQL でサポートされているコンパイル済み言語を分析する場合は、ここでその言語を選択します。
    • 使用する CodeQL クエリ スイートを指定するには、[クエリ スイート] セクションで任意のクエリ スイートを選択します。
  6. リポジトリの既定のセットアップの設定を確認して、 「有効にする CodeQL] をクリックします。 これで、自動的に生成された新しい構成をテストするワークフローがトリガーされます。

    Note

    詳細セットアップから既定のセットアップに切り替える場合は、既定のセットアップによって既存の code scanning 構成がオーバーライドされることを通知する警告が表示されます。 この警告では、既定のセットアップにより、既存のワークフロー ファイルが無効になり、CodeQL 分析 API のアップロードがブロックされることを意味します。

  7. 必要に応じて、有効化した後に既定のセットアップ構成を表示するには、 を選択し、 [View CodeQL configuration] をクリックします。

ランナーへのラベルの割り当て

Note

既定のセットアップが有効になっていると、Code scanning は割り当てられたランナーを参照します。 既に既定のセットアップを実行しているリポジトリにランナーが割り当てられている場合、ランナーの使用を開始するには、既定のセットアップを無効にして再度有効にする必要があります。 ランナーを追加してその使用を開始したい場合は、構成を手動で変更でき、そうすれば既定のセットアップを無効にして再度有効にする必要はありません。

また、自己ホストランナーには既定の code-scanning ラベルを割り当てることもできます。また、必要に応じてカスタム ラベルを割り当てて、個々のリポジトリで異なるランナーを使うこともできます。自己ホストランナーへのラベルの割り当てについては、「セルフホストランナーとのラベルの利用」を参照してください。

自己ホストランナーに対するカスタム ラベルの指定はオプションです。 特定のユース ケースあるのでがない限り、ランナーには既定の code-scanning ラベルのみを割り当てることをお勧めします。 たとえば、次のような場合があります。

  • より強力な自己ホストランナーを重要なリポジトリに割り当てて、code scanning の分析がより速く行われるようにします。
  • code scanning の分析を特定のプラットフォーム (macOS など) で実行します。
  • GitHub でホストされたランナーと自己ホストランナーのワークロードをきめ細かく制御します。

自己ホストランナーにカスタム ラベルを割り当てると、リポジトリは code scanning の既定のセットアップにそれらのランナーを使用できます。 詳細については、「リポジトリに対して既定のセットアップを構成する」を参照してください。

また、security configurations を使って、code scanning 用の自己ホストランナーにラベルを割り当てることもできます。 「カスタム セキュリティ構成の作成」を参照してください。

次のステップ

構成が少なくとも 1 回正常に実行できたら、code scanning アラートの調査と解決を開始できます。 code scanning アラートの詳細については、「Code scanningアラートについて」と「リポジトリのコード スキャンのアラートの評価」を参照してください。

code scanning の既定のセットアップを構成したら、その動作の評価およびカスタマイズに使用できる次の手順を確認できます。 詳しくは、「コード スキャンの既定のセットアップの評価」をご覧ください。

code scanning 構成に関する詳細情報 (各スキャンのタイムスタンプ、スキャンされたファイルの割合など) は、ツールの状態ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」をご覧ください。

既定のセットアップを構成すると、エラーが発生する可能性があります。 特定のエラーのトラブルシューティングについては、「code scanning のトラブルシューティング」を参照してください。