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 Enterprise Server の Organization 所有のリポジトリで利用できます。 この機能には、GitHub Advanced Security のライセンスが必要です。 詳細については、「GitHub Advanced Security について」を参照してください。

注: この機能を使うには、サイト管理者が your GitHub Enterprise Server instance の code scanning を有効にする必要があります。 コードをスキャンするためにGitHub Actionsを使いなら、サイト管理者はGitHub Actionsの有効化と、必要なインフラストラクチャのセットアップもしなければなりません。 詳細については、「アプライアンスでの code scanning の構成」を参照してください。

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

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

  • CodeQL : GitHub Actions を使う (以下を参照) か、サードパーティの継続的インテグレーション (CI) システムで CodeQL 分析を実行します (「CI システムでの CodeQL code scanning について」を参照)。

  • サードパーティ: GitHub Actions またはサードパーティ製ツールを使って、結果を GitHub Enterprise Server にアップロードします (「SARIF ファイルを GitHub にアップロードする」を参照)。

    複数の構成を使用してコード スキャンを実行する場合、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、[アラート] ページに表示することができます。 詳細については、「分析元について」を参照してください。

注: CodeQL 分析を使用する場合は、この記事で、このバージョンの GitHub Enterprise Server の初期リリースに含まれる CodeQL アクションのバージョンおよび関連する CodeQL CLI バンドルで使用できる機能について説明していることに留意してください。 Enterprise でより新しいバージョンの CodeQL アクションを使用する場合は、GitHub Enterprise Cloud の記事で最新の機能を参照してください。 最新バージョンの使用については、「Configuring code scanning for your appliance」(アプライアンスのコード スキャニングの構成) を参照してください。

code scanning の手動構成

  1. your GitHub Enterprise Server instance で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ

  2. [Code scanning アラート] の右側にある [code scanning のセットアップ] をクリックします。 code scanning が見つからない場合は、Organization の所有者またはリポジトリ管理者に GitHub Advanced Security を有効にするよう依頼する必要があります。詳細については、Organization のセキュリティと分析の設定の管理に関するページまたは「リポジトリのセキュリティと分析設定を管理する」を参照してください。 セキュリティの概要にある、[Code scanning] の右側の [code scanning のセットアップ] ボタン

  3. [code scanning の使用を開始する] で、CodeQL analysis workflowまたはサードパーティ ワークフローに対して [このワークフローを設定する] をクリックします。 [code scanning の使用を開始する] という見出しの下にある [このワークフローを設定します] ボタンワークフローは、それがリポジトリで検出されたプログラミング言語に関連する場合にのみ表示されます。 CodeQL analysis workflowは常に表示されますが、[このワークフローを設定する] ボタンは、CodeQL 分析がリポジトリ内に存在する言語をサポートしている場合にのみ有効になります。

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

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

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

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

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

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

推奨される CodeQL analysis workflowでは、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 アラートの管理」を参照してください。

注釈: code scanning ワークフローを追加するための pull request をリポジトリに発行すると、その pull request からのアラートは、その pull request がマージされるまで Code scanning ページに直接表示されません。 アラートが見つかった場合は、pull request がマージされる前に、Code scanning ページのバナーにある [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 の結果 / ツール名」のエントリを追加します。 code scanning が 1 回でも実行された後は、 [詳細] をクリックして分析結果を表示できます。

次の手順

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