リポジトリのアラートを表示する
リポジトリへの書き込み権限があるユーザなら誰でも、プルリクエストの code scanning アノテーションを表示できます。 詳しくは、「Pull RequestでCode scanningアラートをトリアージする」を参照してください。
[セキュリティ] タブでリポジトリのすべてのアラートの概要を表示するには、書き込みアクセス許可が必要です。
デフォルトでは、リポジトリのデフォルトのブランチのアラートのみが表示されるように、code scanning アラートがフィルター処理されています。
-
お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
左側のサイドバーで、[ Code scanning をクリックします。
-
必要に応じて、フリー テキスト検索ボックスまたはドロップダウン メニューを使用してアラートをフィルター処理します。 たとえば、アラートを識別するために使われたツールによってフィルタリングできます。
-
[Code scanning] で、調査するアラートをクリックすると、詳しいアラート ページが表示されます。 [アラート] ページのステータスと詳細は、他のブランチにアラートが存在する場合であっても、リポジトリの既定のブランチに対するアラートのステータスを反映するのみです。 既定以外のブランチのアラートの状態は、[アラート] ページの右側にある [影響を受けるブランチ] セクションで確認できます。 既定のブランチにアラートが存在しない場合、アラートの状態は、[in pull request] または [in branch] として、グレー表示されます。
-
アラートでデータ フローの問題が強調表示された場合は、必要に応じて [パスの表示] をクリックし、データソースから、それが使用されているシンクまでのパスを表示します。
-
CodeQL 解析によるアラートには、問題の説明も含まれています。 コードの修正方法に関するガイダンスについては、 [さらに表示] をクリックします。
詳しくは、「Code scanningアラートについて」を参照してください。
注記: code scanning 解析の前回の実行日時をツール ステータス ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」を参照してください。
code scanning アラートのフィルター処理
code scanning アラート ビューに表示されるアラートをフィルター処理できます。 これにより、特定の種類のアラートに集中できるため、数多くのアラートがある場合に便利です。 表示されるアラートの一覧を絞り込むために使用できるいくつかの定義済みのフィルターとさまざまなキーワードがあります。
ドロップダウン リストからキーワードを選ぶか、検索フィールドにキーワードを入力すると、結果が含まれる値のみが表示されます。 結果のないフィルターを設定せずに済みます。
複数のフィルターを入力すると、ビューには、これらの _すべて_のフィルターと一致するアラートが表示されます。 たとえば、is:closed severity:high branch:main
の場合、main
ブランチに存在し、クローズされた重大度が高いアラートのみが表示されます。 例外は、refs (ref
、branch
、pr
) に関連するフィルターです。is:open branch:main branch:next
の場合、main
ブランチと next
ブランチの両方のオープンなアラートが表示されます。
既定ではないブランチでフィルター処理したのと同じアラートが、既定のブランチに存在する場合、そのアラートのアラート ページには、その状態が既定ではないブランチでの状態と競合する場合でも、既定のブランチのアラートの状態のみが反映されることに注意してください。 たとえば、アラートの概要の branch-x
の [Open](オープン) リストに表示されるアラートは、そのアラートが既定のブランチで既に修正されている場合、アラート ページに "Fixed"(修正済み) の状態で表示される場合があります。 フィルター処理したブランチのアラートの状態は、アラート ページの右側の [Affected branches](影響を受けるブランチ) セクションで確認できます。
tag
フィルターにプレフィックス -
を付けると、そのタグを含む結果を除外できます。 たとえば、-tag:style
には style
タグのないアラートのみが表示されます。
結果をアプリケーション コードのみに制限する
"Only alerts in application code" フィルターまたは autofilter:true
キーワードと値を使用して、結果をアプリケーション コード内のアラートに制限できます。 アプリケーション コードではなく自動的にラベル付けされるコードの種類の詳細については、「Code scanningアラートについて」を参照してください。
code scanningアラートの検索
アラートのリストを検索できます。 これは、リポジトリ中に大量のアラートがある場合や、たとえばアラートの正確な名前を知らないような場合に役立ちます。 GitHub Enterprise Serverは以下に渡って自由テキスト検索を行います。
- アラートの名前です。
- アラート詳細 (これには、折り畳み可能なセクション [詳細を表示] では既定で非表示になる情報も含まれます)
サポートされている検索 | 構文の例 | 結果 |
---|---|---|
単一語検索 | injection | 語 injection を含むすべてのアラートが返されます |
複数語検索 | sql injection | sql または injection を含むすべてのアラートが返されます |
完全一致検索 (二重引用符を使用) | "sql injection" | 句 sql injection をこのとおりに含むすべてのアラートが返されます |
OR検索 | sql OR injection | sql または injection を含むすべてのアラートが返されます |
AND検索 | sql AND injection | sql と injection の両方の語を含むすべてのアラートが返されます |
ヒント:
- 複数語検索はOR検索と等価です。
- AND 検索により、検索語句がアラート名または詳細の 任意の位置 に任意の順序で見つかった場合に結果が返されます。
- お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
- リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
- 左側のサイドバーで、[ Code scanning をクリックします。
- [フィルター] ドロップダウン メニューの右側にあるフリー テキスト検索ボックスに、検索するキーワードを入力します。
- Return キーを押します。 アラートリストには、検索条件にマッチしたオープンなcode scanningアラートが含まれます。
アラートを解決する
リポジトリへの書き込み権限があるユーザなら誰でも、コードに修正をコミットしてアラートを解決できます。 リポジトリでプルリクエストに対して code scanning が実行されるよう予定されている場合は、修正してプルリクエストを発行するようお勧めします。 これにより、変更の code scanning 解析がトリガーされ、修正で新しい問題が入り込まないようテストされます。 詳細については、「コード スキャン用の高度なセットアップのカスタマイズ」および「Pull RequestでCode scanningアラートをトリアージする」を参照してください。
リポジトリに対して書き込みアクセス許可がある場合、アラートの概要を表示し、 [クローズ済み] をクリックして、解決されたアラートを表示することができます。 詳細については、「Viewing the alerts for a repository」 (リポジトリのアラートの表示) を参照してください。 "Closed"リストは、修正されたアラートと、ユーザが却下したアラートを示します。
自由テキスト検索またはフィルターを使ってアラートの一部を表示し、一致するすべてのアラートをクローズ済みとマークすることができます。
あるブランチでは解決されたアラートが、別のブランチでは解決されていないことがあります。 アラートの概要で "Branch" フィルターを使用して、特定のブランチでアラートが解決されているかどうかを確認できます。
既定ではないブランチでフィルター処理したのと同じアラートが、既定のブランチに存在する場合、そのアラートのアラート ページには、その状態が既定ではないブランチでの状態と競合する場合でも、既定のブランチのアラートの状態のみが反映されることに注意してください。 たとえば、アラートの概要の branch-x
の [Open](オープン) リストに表示されるアラートは、そのアラートが既定のブランチで既に修正されている場合、アラート ページに "Fixed"(修正済み) の状態で表示される場合があります。 フィルター処理したブランチのアラートの状態は、アラート ページの右側の [Affected branches](影響を受けるブランチ) セクションで確認できます。
**注:**複数の構成を使用して code scanning を実行すると、1 つ以上の構成によって同じアラートが生成されることがあります。 すべての構成を定期的に実行する場合を除いて、ある構成では解決されており、別の構成では解決されていないアラートが表示される可能性があります。 これらの古い構成とアラートは、ブランチから削除できます。 詳しくは、「ブランチから古い構成とアラートを削除する」をご覧ください。
アラートを無視する
アラートをクローズする方法は2つあります。 コード中の問題を修正するか、アラートを却下できます。
アラートを無視することは、修正する必要がないと思われるアラートを閉じる方法です。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。 アラートは、コード内の code scanning 注釈、または [セキュリティ] タブの概要リストから削除できます。
アラートを却下すると:
- それはすべてのブランチで却下されます。
- アラートはプロジェクトの現在のアラート数から除外されます。
- アラートはアラートのサマリの"Closed"リストに移動されます。必要な場合は、そこからアラートを再オープンできます。
- アラートをクローズした理由は記録されます。
- 必要に応じて、却下についてコメントを残し、アラートを却下したコンテキストを記録することもできます。
- 次にcode scanningが実行されたとき、同じコードはアラートを生成しません。
アラートを無視するには:
-
お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
左側のサイドバーで、[ Code scanning をクリックします。
-
アラートを却下したい場合、そのアラートをまず調べて、却下する正しい理由を選択できるようにすることが重要です。 調べたいアラートをクリックしてください。
-
アラートを確認してから Dismiss alert(アラートの却下) をクリックし、アラートをクローズする理由を選ぶか入力します。 pull request の code scanning アラートのチェック エラーの
クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。 必要に応じて、無視にコメントを付けて、アラートを無視するコンテキストを記録できます。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 コード スキャン REST API を使用して、コメントを取得または設定できます。 コメントは、alerts/{alert_number}
エンドポイントのdismissed_comment
に含まれます。 詳しくは、「コード スキャン用の REST API エンドポイント」を参照してください。たとえばコードがサポートされていないサニタイズ ライブラリを使っているといった理由で、CodeQL のアラートを擬陽性の結果として却下する場合、CodeQL に貢献して分析を改善することを検討してください。 CodeQL の詳細については、「CodeQL に貢献する」を参照してください。
複数のアラートを一度に却下する
同じ理由で却下したい複数のアラートがプロジェクトにあるなら、アラートのサマリからそれらをまとめて却下できます。 通常は、リストをフィルタしてマッチするアラートをすべて却下することになるでしょう。 たとえば、プロジェクト中で特定の共通脆弱性タイプ (CWE)の脆弱性がタグ付けされた現在のアラートをすべて却下したいことがあるでしょう。
無視されたアラートを再び開く
アラートを解除した後、アラートを修正する必要があることがわかった場合は、アラートを再度オンにしてコードで問題を修正します。 アラームがオフになったリストを表示し、アラームを検索し、アラームを表示し、再びアラームをオンにします。 その後、他のアラートと同じ方法でアラートを修正できます。
ブランチから古い構成とアラートを削除する
1 つのリポジトリに複数のコード スキャン構成が含まれる場合があります。 実行すると、複数の構成で同じアラートが生成されることがあります。 さらに、構成を異なるスケジュールで実行した場合、頻度の低い構成または古い構成ではアラートの状態が古くなる可能性があります。 複数の構成からのアラートについて詳しくは、「Code scanningアラートについて」をご覧ください。
-
お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
左側のサイドバーで、[ Code scanning をクリックします。
-
[Code scanning] で、code scanning アラートをクリックします。
-
サイドバーの [影響を受けるブランチ] セクションで、目的のブランチをクリックします。
-
[構成の分析] ダイアログで、選択したブランチでこのアラートを報告した構成の詳細を確認します。 目的のブランチの不要な構成を削除するには、 をクリックします。
誤って構成を削除した場合は、 [キャンセル] をクリックして変更を適用しないようにします。
-
不要な構成を削除し、期待される構成が表示されていることを確認したら、 [変更の保存] をクリックします。
誤って構成を削除した後で変更を保存した場合は、構成をもう一度実行してアラートを更新します。 GitHub Actions を使う構成の再実行について詳しくは、「ワークフローとジョブの再実行」をご覧ください。
注:
- リポジトリのデフォルトのブランチのすべての code scanning 構成を削除した場合、デフォルトのブランチは [影響を受けるブランチ] サイドバーに残っていますが、どの構成でも分析されません。
- リポジトリのデフォルトのブランチ以外のブランチのすべての code scanning 構成を削除した場合は、[影響を受けるブランチ] サイドバーからそのブランチが削除されます。
code scanning アラートへの応答を監査する
GitHub ツールを使用して、code scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。