code scanning のセットアップ用オプション
code scanning アラートの生成方法、および使用するツールを、リポジトリレベルで決定できます。 GitHub は、CodeQL 解析のために完全に統合されたサポートを提供すると共に、サードパーティーのツールを使用した解析もサポートします。 詳細については、「code scanning について」を参照してください。
| アラート生成のオプション | |
|---|---|
| CodeQL | GitHub Actions を使う (「アクションを使った code scanning の設定」を参照) または、サードパーティの継続的インテグレーション (CI) システムで CodeQL 分析を行う (「CI システムにおける CodeQL code scanning について」を参照)。 |
| サードパーティ | GitHub Actions を使う (「アクションを使った code scanning の設定」を参照) または、外部生成して GitHub にアップロード (「GitHub への SARIF ファイルのアップロード」を参照)。 |
複数の構成を使用してコード スキャンを実行する場合、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、[アラート] ページに表示することができます。 詳細については、「分析元について」を参照してください。
スターター ワークフローを使用したcode scanning のセットアップ
注: Advanced Security のスターター ワークフローは、リポジトリの [アクション] タブの [セキュリティ] カテゴリに統合されています。 この新しい構成は現在ベータ版であり、変更される可能性があります。
GitHub には、code scanning などのセキュリティ機能用のスターター ワークフローが用意されています。 ゼロから始めるのではなく、これらの推奨されるワークフローを使用して、code scanning ワークフローを作成できます。 Code scanning スターター ワークフローは、code scanning が有効になっている場合にのみ、リポジトリで使用できます。
アクションを使用して code scanning を実行すると、分が使用されます。 詳細については、「GitHub Actions の課金について」を参照してください。
- で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [Actions] (アクション) をクリックします。
 タブ](/web/20230116230029im_/https://docs.github.com/assets/cb-13492/images/help/repository/actions-tab.png)
- リポジトリに少なくとも 1 つのワークフローが既にセットアップされ、実行されている場合は、 [新しいワークフロー] をクリックしてステップ 5 に進みます。 現在、リポジトリ用に設定されているワークフローがない場合は、次のステップに進みます。
![[新しいワークフロー] ボタンのスクリーンショット](/web/20230116230029im_/https://docs.github.com/assets/cb-28411/images/help/security/actions-new-workflow-button.png)
- [セキュリティ] カテゴリまで下にスクロールし、設定するワークフローの下にある [設定] をクリックするか、 [すべて表示] をクリックして使用可能なすべてのセキュリティ ワークフローを表示します。
![[アクション] ワークフローの [セキュリティ] セクションのスクリーンショット](/web/20230116230029im_/https://docs.github.com/assets/cb-23395/images/help/security/actions-workflows-security-section.png)
- ワークフロー ページの右側のウィンドウで、 [ドキュメント] をクリックし、画面の指示に従ってワークフローをニーズに合わせて調整します。
詳細については、「スターター ワークフローの使用」と「code scanning の設定」を参照してください。
code scanning の手動セットアップ
書き込みアクセス権を持つすべてのパブリック リポジトリで code scanning をセットアップできます。
アクションを使用して code scanning を実行すると、分が使用されます。 詳細については、「GitHub Actions の課金について」を参照してください。 1. で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。
![[セキュリティ] タブ](/web/20230116230029im_/https://docs.github.com/assets/cb-11069/images/help/repository/security-tab.png)
-
[Code scanning アラート] の右側にある [code scanning のセットアップ] をクリックします。詳細については、Organization のセキュリティと分析の設定の管理に関するページまたは「リポジトリのセキュリティと分析設定を管理する」を参照してください。
![セキュリティの概要にある、[Code scanning] の右側の [code scanning のセットアップ] ボタン](/web/20230116230029im_/https://docs.github.com/assets/cb-11660/images/help/security/overview-set-up-code-scanning.png)
-
[code scanning の使用を開始する] で、CodeQL analysis workflowまたはサードパーティ ワークフローに対して [このワークフローを設定する] をクリックします。
ワークフローは、それがリポジトリで検出されたプログラミング言語に関連する場合にのみ表示されます。 CodeQL analysis workflowは常に表示されますが、[このワークフローを設定する] ボタンは、CodeQL 分析がリポジトリ内に存在する言語をサポートしている場合にのみ有効になります。 -
code scanning がコードをスキャンする方法をカスタマイズするため、ワークフローを編集します。
通常は、何も変更せずに CodeQL analysis workflowをコミットてきます。 ただし、サード パーティのワークフローの多くでは、追加の構成が必要になるので、コミットする前にワークフローのコメントを読んでください。
詳細については、「code scanning の設定」を参照してください。
-
Start commit ドロップダウンを使用し、コミット メッセージを入力します。

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

-
[Commit new file] (新しいファイルをコミットする) または [Propose new file] (新しいファイルを提案する) をクリックします。
既定の CodeQL analysis workflowでは、code scanning は、既定のブランチまたは保護されたブランチに変更をプッシュするたび、あるいは既定のブランチに pull request を生成するたびに、コードを解析するよう設定されています。 その結果として、code scanning が開始されます。
コード スキャンの on:pull_request と on:push トリガーは、それぞれ異なる目的に役立ちます。 詳細については、「pull request のスキャン」と「プッシュ時のスキャン」を参照してください。
code scanning の一括セットアップ
スクリプトを使用して、code scanning を多くのリポジトリで一括でセットアップできます。 スクリプトを使用して、GitHub Actions ワークフローを複数のリポジトリに追加する pull request を発生させる場合は、jhutchings1/Create-ActionsPRs リポジトリで PowerShell を使用する例を、または、PowerShell を持たず代わりに NodeJS を使用したいチームの場合は nickliffen/ghas-enablement を参照してください。
code scanning からログ出力を表示する
リポジトリでcode scanningをセットアップしたら、アクションが実行されるとその出力を見ることができます。
-
リポジトリ名の下の [Actions] (アクション) をクリックします。
 タブ](/web/20230116230029im_/https://docs.github.com/assets/cb-13492/images/help/repository/actions-tab.png)
code scanning ワークフローを実行するためのエントリを含むリストが表示されます。 エントリのテキストは、コミットメッセージに付けるタイトルです。

-
code scanning ワークフローのエントリをクリックします。
-
左側のジョブ名をクリックします。 たとえば、 [分析 (言語)] です。

-
このワークフローの実行時にアクションから出力されるログを確認します。
-
すべてのジョブが完了すると、確認されたすべての code scanning アラートの詳細を表示できます。 詳細については、「リポジトリの code scanning アラートの管理」を参照してください。
注釈: code scanning ワークフローを追加するための pull request をリポジトリに発行すると、その pull request からのアラートは、その pull request がマージされるまで Code scanning ページに直接表示されません。 アラートが見つかった場合は、pull request がマージされる前に、Code scanning ページのバナーにある [n のアラートを検出] リンクをクリックして表示できます。
 リンクをクリックします](/web/20230116230029im_/https://docs.github.com/assets/cb-35797/images/help/repository/code-scanning-alerts-found-link.png)
Pull Requestのチェックを理解する
プルリクエストで実行するよう設定した各 code scanning ワークフローでは、プルリクエストのチェックセクションに常に最低 2 つのエントリが表示されています。 ワークフローの解析ジョブごとに 1 つのエントリがあり、最後のエントリは解析結果です。
code scanning 解析チェックの名前は、「ツール名 / ジョブ名 (トリガー)」という形式になります。 たとえば、C++ のコードの CodeQL 解析には、「CodeQL / Analyze (cpp) (pull_request)」のエントリがあります。 code scanning 分析エントリで [詳細] をクリックして、ログのデータを表示できます。 これにより、解析ジョブが失敗した場合に問題をデバッグできます。 たとえば、コンパイル型言語の code scanning 解析では、アクションがコードをビルドできなかった場合に解析ジョブが失敗します。

code scanning ジョブが完了すると、 GitHub はプルリクエストにより追加されたアラートがないか確認し、チェックのリストに「Code scanning の結果 / ツール名」のエントリを追加します。 code scanning が 1 回でも実行された後は、 [詳細] をクリックして分析結果を表示できます。
次の手順
code scanning をセットアップし、そのアクションを完了できるようにした後は、次のことができます。
- リポジトリに対して生成された code scanning アラートをすべて表示する。 詳細については、「リポジトリの code scanning アラートの管理」を参照してください。
- code scanning をセットアップ後にサブミットしたプルリクエストに対して生成されたアラートを表示する。 詳細については、「pull request の code scanning アラートのトリアージ」を参照してください。
- 実行完了の通知を設定する。 詳細については、「通知の設定」を参照してください。
- code scanning分析が生成したログを表示する。 詳細については、「code scanning ログの表示」を参照してください。
- CodeQL code scanning の初期セットアップで発生した問題を調査する。 詳細については、「CodeQL ワークフローのトラブルシューティング」を参照してください。
- code scanning がリポジトリ内のコードをスキャンする方法をカスタマイズする。 詳細については、「code scanning の設定」を参照してください。