ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

プルリクエストでコードスキャンアラートをトリガーする

プルリクエストで code scanning が問題を特定した場合、強調表示されたコードを確認してアラートを解決できます。

If you have read permission for a repository, you can see annotations on pull requests. With write permission, you can see detailed information and resolve code scanning alerts for that repository.

Code scanning is available for organization-owned repositories where GitHub Advanced Security is enabled. 詳しい情報については、「GitHub Advanced Security について」を参照してください。

プルリクエストの code scanning 結果について

プルリクエストのチェック用に code scanning が設定されているリポジトリでは、code scanningがプルリクエストのコードをチェックします。 デフォルトでは、このチェックはデフォルトブランチを対象とするプルリクエストに限定されていますが、この設定は GitHub Actions またはサードパーティの CI/CD システム内で変更できます。 変更をマージすることで、対象となるブランチに新たな code scanning アラートが発生する場合には、そのアラートはプルリクエストのチェック結果として報告されます。 また、アラートではプルリクエストの [Files changed] タブでアノテーションとしても表示されます。 リポジトリへの書き込み権限がある場合、既存のすべての code scanning アラートを [Security] タブで表示できます。 リポジトリのアラートに関する詳しい情報については、「リポジトリの code scanning アラートを管理する」を参照してください。

If your pull request targets a protected branch that uses code scanning, and the repository owner has configured required status checks, then the "Code scanning results" check must pass before you can merge the pull request. 詳しい情報については保護されたブランチについてを参照してください。

プルリクエストのチェックとしての code scanning について

code scanning をプルリクエストのチェックとして設定するためのオプションは多いので、正確なセットアップはそれぞれのリポジトリで異なり、複数のチェックを行う場合もあります。

Code scanning results check

For all configurations of code scanning, the check that contains the results of code scanning is: Code scanning results. The results for each analysis tool used are shown separately. Any new alerts caused by changes in the pull request are shown as annotations.

Code scanning results check failures

If the code scanning results check finds any problems with a severity of error the check fails and the error is reported in the check results. If all the results found by code scanning have lower severities, the alerts are treated as warnings or notes and the check succeeds.

プルリクエストの失敗した code scanning チェック

Other code scanning checks

Depending on your configuration, you may see additional checks running on pull requests with code scanning configured. These are usually workflows that analyze the code or that upload code scanning results. These checks are useful for troubleshooting when there are problems with the analysis.

For example, if the repository uses the CodeQL分析ワークフロー a CodeQL / Analyze (LANGUAGE) check is run for each language before the results check runs. 設定に問題がある場合、解析がコンパイルする必要がある言語 (C/C++、C#、Java など) でプルリクエストがビルドを中断している場合、解析は失敗することがあります。

他のプルリクエストと同様、チェック失敗の詳細内容を [Checks] タブで確認できます。 設定およびトラブルシューティングに関する詳しい情報については、「code scanning を設定する」または「CodeQL ワークフローのトラブルシューティング」を参照してください。

Viewing an alert on your pull request

You can see any code scanning alerts introduced in a pull request by displaying the Files changed tab. Each alert is shown as an annotation on the lines of code that triggered the alert. The severity of the alert is displayed in the annotation.

プルリクエストの差分にあるアラートのアノテーション

リポジトリへの書き込み権限がある場合、一部のアノテーションにはアラートの追加的な背景を説明するリンクが含まれています。 上の例では、CodeQL 解析から [user-provided value] をクリックすると、データフローに信頼されていないデータが入っている場所 (ソース) が表示されます。 この場合、[Show paths] をクリックすることで、ソースからデータ (シンク) を使用するコードまでのフルパスを表示することもできます。 これにより、データが信頼されていないかや、ソースとシンクの間のデータサニタイズのステップを解析が認識できなかったかを簡単に確認できます。 CodeQL を使用したデータフローの解析に関する詳しい情報については、「データフロー解析について」を参照してください。

アラートの詳細情報を表示するには、書き込み権限を持つユーザが、アノテーションに表示されている [Show more details] のリンクをクリックします。 これにより、ツールが提供するコンテキストとメタデータのすべてをアラートビューで確認できます。 下の例では、問題の重要度、タイプ、および関連する共通脆弱性タイプ一覧 (CWE) を示すタグが表示されています。 また、どのコミットが問題を引き起したかも表示されています。

アラートの詳細画面において、CodeQL 解析のような一部の code scanning ツールでは、問題の説明や、コードを修正する方法を説明するためる [Show more] リンクも含まれています。

アラートの説明と、詳細情報を表示するリンク

Pull Requestのアラートの修正

プルリクエストへのプッシュアクセスがあるユーザなら誰でも、プルリクエストで特定された code scanning アラートを解決できます。 プルリクエストに変更をコミットすると、プルリクエストのチェック実行が新しくトリガーされます。 問題を修正すると、アラートは閉じられ、アノテーションは削除されます。

Pull Requestのアラートの却下

アラートを閉じる別の方法として、却下する方法があります。 修正する必要がないと考えられる場合は、アラートを却下できます。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。 リポジトリに書き込み権限を持っているなら、コードのアノテーションとアラートのサマリでDismiss(却下)ボタンが利用できます。 Dismiss(却下)をクリックすると、アラートをクローズする理由を選択することが求められます。

アラートを却下する理由の選択

クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。

If you dismiss a CodeQL alert as a false positive result, for example because the code uses a sanitization library that isn't supported, consider contributing to the CodeQL repository and improving the analysis. CodeQLに関する詳しい情報については「CodeQLに貢献する」を参照してください。

アラートの却下に関する詳しい情報については「リポジトリのcode scanningアラートの管理」を参照してください。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?