ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
GitHub AEは、現在限定リリース中です。詳細については営業チームにお問い合わせください。

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

プルリクエストで 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は、ベータリリースの間は無料のGitHub Advanced Securityの一部として利用できます。 詳しい情報については、「GitHub Advanced Security について」を参照してください。

ノート: Code scanningは現在ベータで、変更されることがあります。

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

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

code scanning の結果に、重大度が error のものがある場合、そのチェックは失敗し、チェック結果でエラーが報告されます。 code scanning で出たすべての結果の重大度が低い場合、アラートは警告または通知として扱われ、チェックは成功となります。

If your pull request targets a protected branch that uses code scanning, and the repository owner has configured required status checks, then you must either fix or dismiss all error alerts before the pull request can be merged. 詳しい情報については保護されたブランチについてを参照してください。

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

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

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

リポジトリが CodeQL分析ワークフロー を使用している場合、CodeQL / Analyze (LANGUAGE) チェックを各言語で実行してから、結果チェックを実行します。 設定に問題がある場合、解析がコンパイルする必要がある言語 (C/C++、C#、Java など) でプルリクエストがビルドを中断している場合、解析は失敗することがあります。 他のプルリクエストと同様、チェック失敗の詳細内容を [Checks] タブで確認できます。 設定およびトラブルシューティングに関する詳しい情報については、「code scanning を設定する」または「CodeQL ワークフローのトラブルシューティング」を参照してください。

プルリクエストのアラートをトリガーする

プルリクエストの [Files changed] タブを見ると、アラートをトリガーしたコードの行にあるアノテーションがあります。

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

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

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

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

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

Fixing an alert on your pull request

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

Dismissing an alert on your pull request

An alternative way of closing an alert is to dismiss it. You can dismiss an alert if you don't think it needs to be fixed. たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。 If you have write permission for the repository, the Dismiss button is available in code annotations and in the alerts summary. When you click Dismiss you will be prompted to choose a reason for closing the alert.

Choosing a reason for dismissing an alert

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

CodeQLのアラートを、たとえばコードがサポートされていないサニタイズのライブラリを使っているといった理由で偽陽性の結果として却下する場合、CodeQLに貢献して分析を改善することを検討してください。 CodeQLに関する詳しい情報については「CodeQLに貢献する」を参照してください。

For more information about dismissing alerts, see "Managing code scanning alerts for your repository."

このドキュメントは役立ちましたか? プライバシーポリシー

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

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

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

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

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

GitHubコミュニティで質問する サポートへの連絡