Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。
現在、GitHub AE は限定的リリースです。

リポジトリのコード スキャンのアラートを管理する

セキュリティの観点から、プロジェクトのコード内の潜在的な脆弱性またはエラーに関するアラートの表示、修正、却下、または削除を行うことができます。

この機能を使用できるユーザー

If you have write permission to a repository you can manage code scanning alerts for that repository.

Code scanning は、GitHub AE の Organization 所有のリポジトリで利用できます。 これは GitHub Advanced Security の機能です (ベータ リリース中は無料)。 詳細については、「GitHub Advanced Security について」を参照してください。

リポジトリのアラートを表示する

リポジトリへの書き込み権限があるユーザなら誰でも、プルリクエストの code scanning アノテーションを表示できます。 詳細については、「pull request の code scanning アラートのトリアージ」を参照してください。

[セキュリティ] タブでリポジトリのすべてのアラートの概要を表示するには、書き込みアクセス許可が必要です。

既定では、コード スキャン アラート ページがフィルター処理され、リポジトリの既定のブランチに関するアラートのみが表示されます。

  1. your enterprise で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ 1. 左側のサイドバーの [Code scanning alerts](コード スキャンのアラート) をクリックします。 [Code scanning alerts](コード スキャンのアラート) タブ

  2. 必要に応じて、フリー テキスト検索ボックスまたはドロップダウン メニューを使用してアラートをフィルター処理します。 たとえば、アラートを識別するために使われたツールによってフィルタリングできます。 [Filter by tool](ツール別のフィルター) 1. [Code scanning] で、調査するアラートをクリックします。 アラートの概要

  3. アラートでデータ フローの問題が強調表示された場合は、必要に応じて [パスの表示] をクリックし、データソースから、それが使用されているシンクまでのパスを表示します。 アラートの "Show paths" リンク

  4. CodeQL 解析によるアラートには、問題の説明も含まれています。 コードの修正方法に関するガイダンスについては、 [さらに表示] をクリックします。 アラートの詳細

詳細については、「code scanning アラートについて」を参照してください。

注: CodeQL による code scanning分析の場合、リポジトリの code scanning アラートの一覧の上部にあるヘッダーで、最新の実行に関する情報を確認することができます。

たとえば、最後のスキャンが実行されたのがいつか、リポジトリ中のコードの合計行数に対する分析されたコードの行数、生成されたアラートの合計数を見ることができます。 UI バナー

code scanning アラートのフィルター処理

code scanning アラート ビューに表示されるアラートをフィルター処理できます。 これにより、特定の種類のアラートに集中できるため、数多くのアラートがある場合に便利です。 表示されるアラートの一覧を絞り込むために使用できるいくつかの定義済みのフィルターとさまざまなキーワードがあります。

  • 定義済みのフィルターを使用するには、 [フィルター] 、またはアラートの一覧のヘッダーに表示されているフィルターをクリックし、ドロップダウン リストからフィルターを選択します。 定義済みのフィルター
  • キーワードを使用するには、フィルター テキスト ボックスに直接入力するか、または
    1. フィルター テキスト ボックスをクリックして、使用可能なすべてのフィルター キーワードの一覧を表示します。
    2. 使用するキーワードをクリックし、ドロップダウン リストから値を選択します。 キーワード フィルター リスト

キーワード フィルターを使用する利点は、結果が見つかる値のみがドロップダウン リストに表示されます。 これにより、結果が見つからないフィルターの設定を簡単に回避できます。

複数のフィルターを入力すると、ビューには、これらの すべてのフィルターと一致するアラートが表示されます。 たとえば、is:closed severity:high branch:main の場合、main ブランチに存在し、クローズされた重大度が高いアラートのみが表示されます。 例外は、refs (refbranchpr) に関連するフィルターです。is:open branch:main branch:next の場合、main ブランチと next ブランチの両方のオープンなアラートが表示されます。

結果をアプリケーション コードのみに制限する

"Only alerts in application code" フィルターまたは autofilter:true キーワードと値を使用して、結果をアプリケーション コード内のアラートに制限できます。 アプリケーション コード以外のコードの種類の詳細については、上記の「About labels for alerts not in application code」 (アプリケーション コード内にないアラートのラベルについて) を参照してください。

Issues で code scanning アラートを追跡する

注: Issue の code scanning アラートの追跡はベータ版であり、変更される可能性があります。

この機能では、GitHub Actions を使用してネイティブで、または既存の CI/CD インフラストラクチャを使用して外部で分析を実行すること、およびサードパーティの code scanning ツールがサポートされていますが、サードパーティの追跡ツールはサポート されていません

Code scanning アラートは GitHub Issues のタスク リストと統合されており、すべての開発タスクで簡単にアラートに優先順位を付け、追跡することができます。 issue の詳細については、「[Issue について](/issues/tracking-your-work-with-issues/about-issues)」を参照してください。

issue のコード スキャン アラートを追跡するには、issue のタスク リスト項目としてアラートの URL を追加します。 タスク リストの詳細については、「タスク リストについて」を参照してください。 code scanning アラートの追跡を目的とした issue の作成に関する詳細については、「タスク リストを使った issue 内の code scanning アラートの追跡」を参照してください。

アラートを解決する

リポジトリへの書き込み権限があるユーザなら誰でも、コードに修正をコミットしてアラートを解決できます。 リポジトリでプルリクエストに対して code scanning が実行されるよう予定されている場合は、修正してプルリクエストを発行するようお勧めします。 これにより、変更の code scanning 解析がトリガーされ、修正で新しい問題が入り込まないようテストされます。 詳細については、「code scanning のカスタマイズ」と「pull request の code scanning アラートのトリアージ」を参照してください。

リポジトリに対して書き込みアクセス許可がある場合、アラートの概要を表示し、 [クローズ済み] をクリックして、解決されたアラートを表示することができます。 詳細については、「Viewing the alerts for a repository」 (リポジトリのアラートの表示) を参照してください。 "Closed"リストは、修正されたアラートと、ユーザが却下したアラートを示します。

自由テキスト検索またはフィルターを使ってアラートの一部を表示し、一致するすべてのアラートをクローズ済みとマークすることができます。

あるブランチでは解決されたアラートが、別のブランチでは解決されていないことがあります。 アラートの概要で "Branch" フィルターを使用して、特定のブランチでアラートが解決されているかどうかを確認できます。

ブランチによるアラートのフィルタリング

アラートの却下または削除

アラートをクローズする方法は2つあります。 コード中の問題を修正するか、アラートを却下できます。 または、リポジトリの管理者アクセス許可を持っている場合は、アラートを削除できます。 アラートの削除は、code scanningツールをセットアップした後に、それを削除する事にした場合、あるいは使い続けたいよりも大きなクエリセットでCodeQL分析を設定してしまい、ツールからいくつかのクエリを削除した場合といった状況で役立ちます。 どちらの場合も、アラートを削除することでcode scanningの結果をクリーンアップできます。 アラートは、 Security タブ内の概要リストから削除できます。

アラートを無視することは、修正する必要がないと思われるアラートを閉じる方法です。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。 アラートは、コード内の code scanning 注釈、または [セキュリティ] タブの概要リストから削除できます。

アラートを却下すると:

  • それはすべてのブランチで却下されます。
  • アラートはプロジェクトの現在のアラート数から除外されます。
  • アラートはアラートのサマリの"Closed"リストに移動されます。必要な場合は、そこからアラートを再オープンできます。
  • アラートをクローズした理由は記録されます。
  • 次にcode scanningが実行されたとき、同じコードはアラートを生成しません。

アラートを削除した場合:

  • それはすべてのブランチで削除されます。
  • アラートはプロジェクトの現在のアラート数から除外されます。
  • これは、アラートの概要の "クローズ" リストには追加 されません
  • アラートを生成したコードが同じままであり、構成の変更なしで同じ code scanning ツールをもう一度実行すると、分析結果にはアラートが再度表示されます。

アラートを却下または削除するには:

  1. your enterprise で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ 1. 左側のサイドバーの [Code scanning alerts](コード スキャンのアラート) をクリックします。 [Code scanning alerts](コード スキャンのアラート) タブ

  2. リポジトリに対して管理アクセス許可を持っていて、この code scanning ツールのアラートを削除する必要がある場合は、チェック ボックスの一部またはすべてを選択して、 [削除] をクリックします。

    アラートの削除

    必要に応じて、自由テキスト検索またはフィルターを使ってアラートの一部を表示し、一致したすべてのアラートを一度に削除することもできます。 たとえば、クエリをCodeQL分析から削除したら、"Rule"フィルタを使ってそのクエリに対するアラートだけをリストして、それらのアラートをすべて選択して削除できます。

    [Filter alerts by rule](アラートを規則によってフィルター処理する)

  3. アラートを却下したい場合、そのアラートをまず調べて、却下する正しい理由を選択できるようにすることが重要です。 調べたいアラートをクリックしてください。 概要リストからアラートを開く

  4. アラートをレビューした後、 [却下] をクリックし、アラートをクローズする理由を選択します。 アラートを却下する理由を選びます クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。

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

複数のアラートを一度に却下する

同じ理由で却下したい複数のアラートがプロジェクトにあるなら、アラートのサマリからそれらをまとめて却下できます。 通常は、リストをフィルタしてマッチするアラートをすべて却下することになるでしょう。 たとえば、プロジェクト中で特定の共通脆弱性タイプ (CWE)の脆弱性がタグ付けされた現在のアラートをすべて却下したいことがあるでしょう。

参考資料