Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

リポジトリの code scanning を構成する

リポジトリの code scanning を構成して、コード内のセキュリティの脆弱性を見つけることができます。

この機能を使用できるユーザー

If you have write permissions to a repository, you can configure code scanning for that repository.

Code scanning は、GitHub.com のすべてのパブリック リポジトリに使用できます。 Code scanning は、GitHub Enterprise Cloud を使用していて GitHub Advanced Security のライセンスを持つ Organization によって所有されるプライベート リポジトリでも使用できます。 詳しくは、「GitHub Advanced Security について」を参照してください。

code scanning を構成するためのオプション

code scanning アラートの生成方法、および使用するツールを、リポジトリレベルで決定できます。 GitHub は、CodeQL 解析のために完全に統合されたサポートを提供すると共に、サードパーティーのツールを使用した解析もサポートします。 詳しくは、次の箇条書きと「コード スキャンについて」をご覧ください。

code scanning の自動構成

code scanning の既定のセットアップでは、リポジトリに最適な設定で code scanning が自動的に構成されます。 リポジトリは、GitHub Actions を使用し、次の CodeQL 対応言語: JavaScript/TypeScript、Python、Ruby のみが含まれている場合、既定のセットアップの対象となります。 リポジトリに CodeQL でサポートされていない言語 (R など) が含まれている場合は、既定のセットアップを使用できますが、上記の言語以外の CodeQL 対応言語を含める場合は、詳細セットアップを使用する必要があります。 CodeQL の対応言語について詳しくは、「CodeQL によるコード スキャンについて」をご覧ください。

既定のセットアップを有効にすることが、リポジトリの code scanning を構成する最も簡単な方法です。 また、既定のセットアップでは、CodeQL ワークフロー ファイルで必要なメンテナンスは要求されません。 既定のセットアップを有効にする前に、分析する言語、実行するクエリ スイート、新しいスキャンをトリガーするイベントが表示されます。

追加のクエリを実行したり、スキャン スケジュールを変更したり、既定のセットアップで現在サポートされていない言語をスキャンしたりする必要がない場合は、既定のセットアップを試してください。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [設定] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

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

  2. サイドバーの [セキュリティ] セクションで、 [コード セキュリティと分析] をクリックします。

  3. [] セクションで、 [セットアップ] を選択し、 [既定] をクリックします。

    [コードのセキュリティと分析] 設定の "" セクションのスクリーンショット。 [既定のセットアップ] ボタンがオレンジ色のアウトラインで強調されています。

  4. 表示されている CodeQL の既定の構成ウィンドウで、リポジトリの設定を確認し、 [CodeQL を有効にする] をクリックします。

    注:

    • CodeQL の既定の構成ウィンドウには、分析する言語、実行するクエリ スイート、新しいスキャンをトリガーするイベントなど、既定のセットアップの詳細が表示されます。 実行するクエリ スイート、新しいスキャンをトリガーするイベント、またはその他の code scanning 機能を変更する場合は、詳細セットアップを使用する必要があります。 詳しくは、「リポジトリの code scanning を構成する」を参照してください。
    • 詳細セットアップから既定のセットアップに切り替える場合は、既定のセットアップによって既存の構成がオーバーライドされることを通知する警告が表示されます。 CodeQL を有効にしたら、既存のワークフロー ファイルを削除するか無効にしてください。 それ以外の場合、GitHub Actions の時間を使用して、code scanning の結果をアップロードすることなく、ワークフローは引き続き定期的に実行されます。
    • 構成後に既定の CodeQL セットアップを表示したい場合は、 を選択し、 [CodeQL 構成の表示] をクリックします。

詳細セットアップの作成

code scanning の詳細セットアップは、code scanning をカスタマイズする必要がある場合に役立ちます。 ワークフロー ファイルを作成および編集することで、実行するクエリの選択、スキャン スケジュールの変更、任意の CodeQL 対応言語のスキャン、マトリックス ビルドの使用などが可能になります。

スターター ワークフローを使用した code scanning の構成

注: Advanced Security のスターター ワークフローは、リポジトリの [アクション] タブの [セキュリティ] カテゴリに統合されています。 この新しい構成は現在ベータ版であり、変更される可能性があります。

GitHub には、code scanning などのセキュリティ機能用のスターター ワークフローが用意されています。 ゼロから始めるのではなく、これらの推奨されるワークフローを使用して、code scanning ワークフローを作成できます。 スターター ワークフローは、code scanning が有効になっている場合にのみ、リポジトリで使用できます。

アクションを使用して code scanning を実行すると、分が使用されます。 詳しくは、「GitHub Actions の課金について」をご覧ください。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [Actions] (アクション) をクリックします。 メインのリポジトリ ナビゲーション内の [Actions](アクション) タブ
  2. リポジトリで既に 1 つ以上のワークフローが構成され、実行されている場合は、 [新しいワークフロー] をクリックしてスターター ワークフローを表示します。 現在、リポジトリ用に設定されているワークフローがない場合は、次のステップに進みます。 リポジトリの [アクション] タブのスクリーンショット。 [新しいワークフロー] ボタンがオレンジ色のアウトラインで強調されています
  3. [ワークフローの選択] または [GitHub Actions の作業開始] ビューで、[セキュリティ] カテゴリまで下にスクロールして、構成するワークフローの下にある [構成] をクリックします。 構成するセキュリティ ワークフローを見つけるには、 [すべて表示] をクリックすることが必要な場合があります。 スターター ワークフローの [セキュリティ] カテゴリのスクリーンショット。 [構成] ボタンと [すべて表示] リンクがオレンジ色のアウトラインで強調されています。
  4. ワークフローの指示に従い、ニーズに合わせてカスタマイズします。 ワークフローに関する一般的なヘルプについては、ワークフロー ページの右側のペインにある [ドキュメント] をクリックします。 編集用に開かれたスターター ワークフロー ファイルを示すスクリーンショット。 [ドキュメント] ボタンがオレンジ色のアウトラインで強調されています。 詳細については、「スターター ワークフローの使用」および「code scanning のカスタマイズ」を参照してください。

code scanning の手動構成

ワークフロー ファイルを作成して編集することで、code scanning をカスタマイズできます。 詳細セットアップでは、カスタマイズするための基本的なワークフロー ファイルが生成されます。

アクションを使用して code scanning を実行すると、分が使用されます。 詳しくは、「GitHub Actions の課金について」をご覧ください。

注: 書き込みアクセス権を持つすべてのパブリック リポジトリで code scanning を構成できます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [設定] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

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

  2. サイドバーの [セキュリティ] セクションで、 [コード セキュリティと分析] をクリックします。

  3. [] セクションまで下にスクロールし、 [セットアップ] を選んでから、 [詳細] をクリックします。

    注: 既定のセットアップから詳細 code scanning セットアップに切り替える場合は、[] セクションで を選択し、 [詳細] をクリックします。 表示されるポップアップ ウィンドウで、 [CodeQL を無効にする] をクリックします。

    [コードのセキュリティと分析] 設定の "" セクションのスクリーンショット。 [詳細設定] ボタンがオレンジ色のアウトラインで強調されています。

  4. code scanning がコードをスキャンする方法をカスタマイズするため、ワークフローを編集します。

    通常は、何も変更せずに CodeQL 分析ワークフローをコミットてきます。 ただし、サード パーティのワークフローの多くでは、追加の構成が必要になるので、コミットする前にワークフローのコメントを読んでください。

    詳しくは、「code scanning のカスタマイズ」を参照してください。

  5. Start commit ドロップダウンを使用し、コミット メッセージを入力します。 コミットを開始する

  6. 既定のブランチに直接コミットするか、新しいブランチを作成して pull request を開始するかを選択します。 コミット先を選択する

  7. [Commit new file] (新しいファイルをコミットする) または [Propose new file] (新しいファイルを提案する) をクリックします。

推奨される CodeQL 分析ワークフローでは、code scanning は、既定のブランチまたは保護されたブランチに変更をプッシュするたび、あるいは既定のブランチに pull request を生成するたびに、コードを解析するよう構成されています。 その結果として、code scanning が開始されます。

コード スキャンの on:pull_requeston:push トリガーは、それぞれ異なる目的に役立ちます。 詳しくは、「code scanning のカスタマイズ」を参照してください。

code scanning の一括構成

スクリプトを使って、code scanning を多くのリポジトリで一括で構成できます。 スクリプトを使用して、GitHub Actions ワークフローを複数のリポジトリに追加する pull request を発生させる場合は、jhutchings1/Create-ActionsPRs リポジトリで PowerShell を使用する例を、または、PowerShell を持たず代わりに NodeJS を使用したいチームの場合は nickliffen/ghas-enablement を参照してください。

code scanning からログ出力を表示する

リポジトリで code scanning を構成したら、実行したアクションの出力を見ることができます。

  1. リポジトリ名の下の [Actions] (アクション) をクリックします。 メインのリポジトリ ナビゲーション内の [Actions](アクション) タブ

    code scanning ワークフローを実行するためのエントリを含むリストが表示されます。 エントリのテキストは、コミットメッセージに付けるタイトルです。

    code scanning ワークフローを表示しているアクションのリスト

  2. code scanning ワークフローのエントリをクリックします。

  3. 左側のジョブ名をクリックします。 たとえば、 [分析 (言語)] です。

    code scanning ワークフローからのログ出力

  4. このワークフローの実行時にアクションから出力されるログを確認します。

  5. すべてのジョブが完了すると、確認されたすべての code scanning アラートの詳細を表示できます。 詳しくは、「リポジトリのコード スキャンのアラートを管理する」を参照してください。

注釈: code scanning ワークフローを追加するための pull request をリポジトリに発行すると、その pull request からのアラートは、その pull request がマージされるまで ページに直接表示されません。 アラートが見つかった場合は、pull request がマージされる前に、 ページのバナーにある [NUMBER のアラートを検出] リンクをクリックして表示できます。

[n alerts found](n 件のアラートが見つかりました) リンクをクリックします

Pull Requestのチェックを理解する

プルリクエストで実行するよう設定した各 code scanning ワークフローでは、プルリクエストのチェックセクションに常に最低 2 つのエントリが表示されています。 ワークフローの解析ジョブごとに 1 つのエントリがあり、最後のエントリは解析結果です。

code scanning 解析チェックの名前は、「ツール名 / ジョブ名 (トリガー)」という形式になります。 たとえば、C++ のコードの CodeQL 解析には、「CodeQL / Analyze (cpp) (pull_request)」のエントリがあります。 code scanning 分析エントリで [詳細] をクリックして、ログのデータを表示できます。 これにより、解析ジョブが失敗した場合に問題をデバッグできます。 たとえば、コンパイル型言語の code scanning 解析では、アクションがコードをビルドできなかった場合に解析ジョブが失敗します。

code scanning プルリクエストのチェック

code scanning ジョブが完了すると、 GitHub はプルリクエストにより追加されたアラートがないか確認し、チェックのリストに「 の結果 / ツール名」のエントリを追加します。 code scanning が 1 回でも実行された後は、 [詳細] をクリックして分析結果を表示できます。

次の手順

code scanning を構成し、そのアクションを完了させた後は、次のことができます。