Pull Requestの code scanning 結果について
プルリクエストのチェック用に code scanning が設定されているリポジトリでは、code scanningがプルリクエストのコードをチェックします。 デフォルトでは、このチェックはデフォルトブランチを対象とするプルリクエストに限定されていますが、この設定は GitHub Actions またはサードパーティの CI/CD システ� 内で変更できます。 変更をマージすることで、対象となるブランチに新たな code scanning アラートが発生する� �合には、そのアラートは複数の� �所で� �告されます。
- pull request のチェック結果
- pull request の [変更されたファイル] タブ
リポジトリへの書き込み権限がある� �合は、 [セキュリティ] タブに既存の code scanning アラートが表示されます。リポジトリ アラートの詳細については、「リポジトリの code scanning アラートの管理」を参照してく� さい。
タイ� コードがプッシュされるたびにスキャンされるように code scanning が設定されているリポジトリでは、code scanning の結果がすべてのオープンな pull request にマップされ、アラートは他の pull request でチェックされるのと同じ� �所にアノテーションとして追� されます。 詳細については、「プッシュ時のスキャン」を参照してく� さい。
pull request が code scanning を使用する保護されたブランチをターゲットとし、リポジトリの所有者が必要なステータス チェックを設定している� �合、pull request をマージするには "Code scanning の結果" チェックに合� �する必要があります。 詳細については、「保護されたブランチについて」を参照してく� さい。
Pull Requestのチェックとしての code scanning について
code scanning をプルリクエストのチェックとして設定するためのオプションは多いので、正確なセットアップはそれぞれのリポジトリで異なり、複数のチェックを行う� �合もあります。
Code scanning の結果チェック
code scanning のすべての設定で、code scanning の結果を含むチェックが、 Code scanning の結果 です。 使用される分析ツールの結果はそれぞれ個別に表示されます。 pull request の変更によって発生した新しいアラートは、すべてアノテーションとして表示されます。
分析されたブランチのアラートの完全なセットを表示するには、 [すべてのブランチ アラートを表示する] をクリックします。 これにより、ブランチのすべてのアラートを種類、重大度、タグなどでフィルター処理できる完全なアラート ビューが開きます。詳細については、「リポジトリの code scanning アラートの管理」を参照してく� さい。
Code scanning の結果チェックのエラー
code scanning の結果チェックで、重大度が error
、critical
、または high
の問題が検出された� �合、チェックは失敗し、チェック結果にエラーが� �告されます。 code scanning で検出されたすべての結果の重大度が低い� �合、アラートは警告または通知として扱われ、チェックは成功となります。
リポジトリ設定で既定の動作をオーバーライドできます。そのためには、重大度のレベルと、pull request のチェック エラーが発生するセキュリティ重大度を指定します。 詳細については、「pull request チェック エラーの原� となっている重大度の定義」を参照してく� さい。
その他のcode scanning チェック
設定によっては、code scanning が設定された pull request で実行される追� のチェックが表示される� �合があります。 これらは通常、コードを分析する、またはcode scanning の結果をアップロードするワークフローです。 これらのチェックは、分析に問題がある� �合のトラブルシューティングに役立ちます。
たとえば、リポジトリが CodeQL analysis workflow を使用している� �合、 CodeQL / 分析 (言語) チェックを各言語で実行してから、結果チェックを実行します。 設定に問題がある� �合、解析がコンパイルする必要がある言語 (C/C++、C#、Java など) でプルリクエストがビルドを中断している� �合、解析は失敗することがあります。
他の pull request のチェックと同様に、 [チェック] タブでチェック エラーの詳細を確認できます。設定とトラブルシューティングの詳細については、「code scanning の設定」または「CodeQL ワークフローのトラブルシューティング」を参照してく� さい。
pull request でのアラートの表示
pull request によって� えられた code scanning アラートは、 [変更されたファイル] タブを表示することで確認できます。各アラートは、アラートのトリガーとなったコード行に注釈として表示されます。 アノテーションにはアラートの重大度が表示されます。
リポジトリへの書き込み権限がある� �合、一部のアノテーションにはアラートの追� 的な背景を説明するリンクが含まれています。 上の例では、CodeQL 分析から [ユーザー指定の値] をクリックすると、データ フローに信� �されていないデータが入っている� �所 (ソース) が表示されます。 この� �合、 [パスの表示] をクリックすることで、ソースからデータ (シンク) を使用するコードまでのフル パスを表示することもできます。 これにより、データが信� �されていないかや、ソースとシンクの間のデータサニタイズのステップを解析が認識できなかったかを簡単に確認できます。 CodeQL を使用したデータ フローの分析については、「データ フロー分析について」を参照してく� さい。
アラートの詳細情� �を表示するには、書き込み権限を持つユーザが、アノテーションに表示されている [詳細を表示] のリンクをクリックします。 これにより、ツールが提供するコンテキストとメタデータのすべてをアラートビューで確認できます。 下の例では、問題の重要度、タイプ、および関連する共通脆弱性タイプ一覧 (CWE) を示すタグが表示されています。 また、どのコミットが問題を引き起したかも表示されています。
アラートの詳細画面において、CodeQL 分析のような一部のcode scanning ツールでは、問題の説明や、コードを修正する方法を説明するための [詳細を表示] リンクも含まれています。
Pull Requestのアラートの修正
プルリクエストへのプッシュアクセスがあるユーザなら誰でも、プルリクエストで特定された code scanning アラートを解決できます。 プルリクエストに変更をコミットすると、プルリクエストのチェック実行が新しくトリガーされます。 問題を修正すると、アラートは閉じられ、アノテーションは削除されます。
Pull Requestのアラートの却下
アラートを閉じる別の方法として、却下する方法があります。 修正する必要がないと考えられる� �合は、アラートを却下できます。 たとえば、テストで使われる� けのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい� �合です。 リポジトリに書き込み権限を持っているなら、コードのアノテーションとアラートのサマリで [却下] ボタンが利用できます。 [却下] をクリックすると、アラートをクローズする理由の選択が求められます。 クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。
たとえばコードがサポートされていないサニタイズ ライブラリを使っているといった理由で、CodeQL のアラートを擬陽性の結果として却下する� �合、CodeQL に貢献して分析を改善することを検討してく� さい。 CodeQL の詳細については、「CodeQL に貢献する」を参照してく� さい。
アラートの無視に関する詳しい情� �については、「リポジトリの code scanning アラートの管理」を参照してく� さい。