構成によっては、 code scanning 結果がプル要求のチェック結果と注釈として表示される場合があります。 詳しくは、「Code scanningアラートについて」をご覧ください。
code scanning チェックの結果の表示
code scanningのすべての構成について、code scanningの結果を含むチェックは次のとおりです:**Code scanning結果**。 使用される分析ツールの結果はそれぞれ個別に表示されます。 pull request で変更されたコード行に関する新しいアラートは、注釈として表示されます。
分析されたブランチのアラートの完全なセットを表示するには、 [すべてのブランチ アラートを表示する] をクリックします。 これにより、ブランチのすべてのアラートを種類、重大度、タグなどでフィルタリングできる完全なアラート ビューが開きます。詳細については、「リポジトリのコード スキャンのアラートの評価」を参照してください。
![pull request 上の Code scanning の結果チェックのスクリーンショット。 [すべてのブランチ アラートを表示する] リンクが濃いオレンジ色の枠線で囲まれています。](/proxy/https/docs.github.com/assets/cb-74306/images/help/repository/code-scanning-results-check.png)
チェックエラーの重大度レベルの管理
code scanning結果のチェックで重大度が`error`、`critical`、または`high`の問題が検出された場合、チェックは失敗し、チェック結果にエラーが報告されます。
code scanningによって検出されたすべての結果の重大度が低い場合、アラートは警告またはメモとして扱われ、チェックは成功します。
![pull request のマージ ボックスのスクリーンショット。 [コード スキャン結果 / CodeQL] チェックには [新しいアラートが 1 件、その中で重大度が高のセキュリティ...] があります。](/proxy/https/docs.github.com/assets/cb-65667/images/help/repository/code-scanning-check-failure.png)
リポジトリ設定で既定の動作をオーバーライドできます。そのためには、重大度のレベルと、pull request のチェック エラーが発生するセキュリティ重大度を指定します。 詳しくは、「コード スキャンのワークフロー構成オプション」をご覧ください。
code scanning構成に関する問題の診断
構成によっては、 code scanning が構成された pull request で実行されている追加のチェックが表示される場合があります。 これらは通常、コードを分析したり、結果 code scanning アップロードしたりするワークフローです。 これらのチェックは、分析に問題がある場合のトラブルシューティングに役立ちます。
たとえば、リポジトリが CodeQL 分析ワークフロー を使用している場合、結果チェックが実行される前に、言語ごとに CodeQL /分析 (LANGUAGE) チェックが実行されます。 構成に問題がある場合や、プル要求によって分析がコンパイルされる言語 (たとえば、 C/C++、C#、Go、Java、Kotlin、Rust、、Swift) のビルドが中断された場合、分析チェックが失敗する可能性があります。
その他の pull request のチェックと同様に、[チェック] タブでチェック エラーの完全な詳細情報を確認できます。構成とトラブルシューティングの詳細については、「コード スキャンのワークフロー構成オプション」または「コード スキャン分析エラーのトラブルシューティング」を参照してください。
pull request でのアラートの表示
プル要求で導入された変更の差分内にある code scanning アラートは、[ 会話 ] タブを表示することで確認できます。 Code scanning は、アラートをトリガーしたコード行に注釈として各アラートを表示するプル要求レビューを投稿します。 注釈から直接、アラートにコメントを付け、アラートを無視し、アラートのパスを表示できます。 アラートの詳細を表示するには、[詳細の表示] リンクをクリックします。すると、アラートの詳細ページに移動します。
![pull request の [会話] タブのアラート注釈のスクリーンショット。 [詳細の表示] リンクが濃いオレンジ色の枠線で囲まれています。](/proxy/https/docs.github.com/assets/cb-186253/images/help/repository/code-scanning-pr-conversation-tab.png)
プル要求で導入された変更の差分内にあるすべての code scanning アラートを [ ファイルの変更 ] タブで表示することもできます。
pull request に新しいコード スキャン構成を追加すると、pull request に関するコメントが表示され、リポジトリの [ Security and quality ] タブに移動して、pull request ブランチのすべてのアラートを表示できます。 リポジトリのアラートの表示について詳しくは、「リポジトリのコード スキャンのアラートの評価」を参照してください。
リポジトリへの書き込み権限がある場合、一部のアノテーションにはアラートの追加的な背景を説明するリンクが含まれています。 上記の例では、 CodeQL 分析から、 ユーザー指定の値 をクリックして、信頼されていないデータがデータ フローに入る場所を確認できます (これはソースと呼ばれます)。 この場合、 [パスの表示] をクリックすることで、ソースからデータ (シンク) を使用するコードまでのフル パスを表示することもできます。 これにより、データが信頼されていないかや、ソースとシンクの間のデータサニタイズのステップを解析が認識できなかったかを簡単に確認できます。 CodeQLを使用したデータ フローの分析については、「データ フロー分析について」を参照してください。
アラートの詳細情報を表示するには、書き込み権限を持つユーザが、アノテーションに表示されている [詳細を表示] のリンクをクリックします。 これにより、ツールが提供するコンテキストとメタデータのすべてをアラートビューで確認できます。 下の例では、問題の重要度、タイプ、および関連する共通脆弱性タイプ一覧 (CWE) を示すタグが表示されています。 また、どのコミットが問題を引き起したかも表示されています。
[アラート] ページのステータスと詳細は、他のブランチにアラートが存在する場合であっても、リポジトリの既定のブランチに対するアラートのステータスを反映するのみです。 既定以外のブランチのアラートの状態は、[アラート] ページの右側にある [影響を受けるブランチ] セクションで確認できます。 既定のブランチにアラートが存在しない場合、アラートの状態は、[in pull request] または [in branch] として、グレー表示されます。 [Development] セクションには、アラートを修正するリンク ブランチと pull request が表示されます。
アラートの詳細ビューには、code scanning分析などの一部のCodeQL ツールに、問題の説明と、コードの修正方法に関するガイダンスの詳細リンクも含まれています。
![code scanning アラートの説明を示すスクリーンショット。 [詳細を表示] というラベルが付いたリンクが濃いオレンジ色の枠線で囲まれています。](/proxy/https/docs.github.com/assets/cb-157462/images/help/repository/code-scanning-pr-alert.png)
pull request のアラートに対するコメント
プル要求に表示されるすべての code scanning アラートにコメントできます。 アラートは、pull request レビューの一部として pull request の [会話] タブに注釈として表示され、[変更されたファイル] タブにも表示されます。
プル要求をマージする前に、プル要求内のすべての会話 ( code scanning アラートの会話を含む) を解決するように要求することができます。 詳しくは、「保護されたブランチについて」をご覧ください。
GitHubを離れることなくチームのワークフローで修復作業を追跡するには、アラートを問題にリンクできます。 「[AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/linking-code-scanning-alerts-to-github-issues)」を参照してください。
Pull Requestのアラートの修正
プル要求へのプッシュ アクセス権を持つすべてのユーザーは、そのプル要求で識別された code scanning アラートを修正できます。 プルリクエストに変更をコミットすると、プルリクエストのチェック実行が新しくトリガーされます。 問題を修正すると、アラートは閉じられ、アノテーションは削除されます。
プル要求でのアラートに対するCopilot Autofix提案を操作する
GitHub Copilotの自動修正機能は、プル要求のcode scanningアラート (code scanning アラートを含む) を修正するのに役立つ、対象を絞った推奨事項を提供するCodeQLの拡張です。 潜在的な修正は、コードベース、プル要求、および code scanning 分析からのデータを使用して、大規模な言語モデル (LLM) によって自動的に生成されます。
メモ
GitHub Copilotの自動修正機能 の使用には、GitHub Copilot のサブスクリプションは不要です。 Copilot Autofix は、GitHub.com のすべてのパブリック リポジトリだけでなく、GitHub Code Security のライセンスを持つ organization や Enterprise が所有する内部またはプライベート リポジトリでも使用できます。
![pull request の code scanning アラートのチェック エラーのスクリーンショット。 [自動修正] 候補の一部が、濃いオレンジ色の枠線で囲まれています。](/proxy/https/docs.github.com/assets/cb-110660/images/help/code-scanning/alert+autofix.png)
Copilot Autofix提案の生成とプル要求への発行
リポジトリ Copilot Autofix 有効にすると、通常どおりプル要求にアラートが表示され、 code scanning によって検出されたすべてのアラートからの情報が自動的に LLM に送信され、処理されます。 LLM 分析が完了すると、すべての結果が関連するアラートに対するコメントとして発行されます。 詳しくは、「コード スキャンにおけるCopilotの自動修正の責任ある使用」をご覧ください。
メモ
* Copilot Autofix では、 CodeQL クエリのサブセットがサポートされます。 Copilot Autofixの可用性の詳細については、CodeQL 分析のクエリ からリンクされているクエリ テーブルを参照してください。
- 分析が完了すると、関連するすべての結果が一度に pull request に発行されます。 pull request 内の少なくとも 1 つのアラートに Copilot Autofix 提案がある場合は、LLM がコードの潜在的な修正プログラムの特定を完了したと想定する必要があります。
Copilot Autofixでサポートされていないクエリから生成されたアラートには、クエリがサポートされていないことを示すメモが表示されます。 サポートされているクエリの候補が生成されない場合は、アラートには別のコミットをプッシュしてみるか、サポートに問い合わせるよう促すメモが表示されます。
Copilot Autofix
code scanningアラートでは、あらゆる状況のすべてのアラートに対して修正プログラムを生成することはできません。 この機能はベスト エフォート ベースで動作し、常に成功する保証はありません。 自動的に生成されるフィックスの制限については、「[提案の制限事項](/code-security/code-scanning/managing-code-scanning-alerts/about-autofix-for-codeql-code-scanning#limitations-of-suggestions)」を参照してください。
通常、pull request に変更を提案するときには、pull request で変更された 1 つのファイルに対する変更をコメントに含めます。 次のスクリーンショットは、アラートが表示されるCopilot Autofix ファイルへの変更を提案するindex.js コメントを示しています。 潜在的な修正には escape-html に関する新しい依存関係が必要であるため、元の pull request が package.json ファイルに変更を加えない場合でも、コメントはこの依存関係をこのファイルに追加することも提案します。

Copilot Autofix提案の評価とコミット
各 Copilot Autofix 提案は、コードベースの code scanning アラートの潜在的な解決策を示しています。 提案された変更を評価して、それらがコードベースに適したソリューションであるかどうかを判断し、意図した動作が維持されていることを確認する必要があります。
-
**[編集]** をクリックして編集オプションを表示し、希望する方法を選択します。- [GitHub CLIで編集] で、プル要求をローカルでチェックアウトし、推奨される修正プログラムを適用する手順に従います。
- 修正候補が適用された**** でファイルを直接編集するには、[GitHub を選択します。
- 必要に応じて、ローカル リポジトリまたはブランチに修正プログラムを適用する場合は、提案の ドロップダウン メニューを選択します。 * [自動修正パッチの確認] を選択して、推奨される修正プログラムをローカル リポジトリまたはブランチに適用する手順を表示します。 * [修正行 LINE_NUMBER のコピー] を選択して、修正候補の特定の行をコピーします。
- 必要に応じて、提案された修正をテストして変更します。
- 変更のテストが完了したら、変更をコミットして、ブランチにプッシュします。
- 変更をブランチにプッシュすると、pull request に対するすべての通常のテストがトリガーされます。 単体テストが引き続き合格し、 code scanning アラートが修正されたことを確認します。
Copilot Autofix提案を無視する
Copilot Autofix提案を却下する場合は、コメントの [**提案を無視**] をクリックして、修正候補を無視します。
Pull Requestのアラートの却下
アラートを閉じる別の方法として、却下する方法があります。 修正する必要がないと考えられる場合は、アラートを却下できます。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。 リポジトリに対する書き込みアクセス許可がある場合は、コード注釈とアラートの概要で [無視 ] アラート ボタンを使用できます。 [アラートの却下] をクリックすると、アラートをクローズする理由の選択が求められます。
![コード スキャンのチェック エラーのスクリーンショット。 [アラートを無視] ボタンが濃いオレンジ色で囲まれています。 [アラートを無視] ドロップダウンが表示されます。](/proxy/https/docs.github.com/assets/cb-126828/images/help/repository/code-scanning-alert-dropdown-reason.png)
クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。 必要に応じて、却下についてコメントを残し、アラートを却下したコンテキストを記録することもできます。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 コード スキャン REST API を使用して、コメントを取得または設定できます。 コメントは、dismissed_comment エンドポイントの alerts/{alert_number} に含まれます。 詳しくは、「コード スキャン用の REST API エンドポイント」をご覧ください。
たとえばコードがサポートされていないサニタイズ ライブラリを使っているといった理由で、CodeQL のアラートを擬陽性の結果として却下する場合、CodeQL に貢献して分析を改善することを検討してください。 CodeQL の詳細については、「CodeQL に貢献する」を参照してください。
アラート無視の詳細については、「コード スキャン アラートを解決する」を参照してください。