マージリクエストレポート
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
マージリクエストのレポートタブには、CI/CDパイプラインのスキャンからの詳細な検出結果が表示されます。このタブには、セキュリティスキャンの検出結果、ライセンスコンプライアンスの結果、およびコード品質のレポートが専用の全ページビューで表示されます。
セキュリティスキャンレポート
セキュリティスキャンレポートは、ソースブランチがマージされた場合に検出結果で発生する変更の要約を提供します。
たとえば、次のスキャン結果を含む2つのパイプラインについて考えてみましょう:
- ターゲットブランチパイプラインで、
V1およびV2として識別される2つの脆弱性が検出される。 - ソースブランチパイプラインで、
V1およびV3として識別される2つの脆弱性が検出される。
セキュリティスキャンレポートには、次の結果が表示されます:
V1は両方のブランチに存在するため、レポートには表示されません。V2はレポートでfixedとして表示されます。V3はレポートで追加として表示されます。
セキュリティスキャンレポートがソースブランチとターゲットブランチ間の違いを表示するには、両方のブランチからのセキュリティレポートが必要です。システムは、ターゲットブランチ上の最新の10個のコミットで有効なセキュリティパイプラインをチェックします。各コミットについて、最新の10個までのパイプラインがセキュリティレポートについてチェックされます。
このアプローチにより、コミットがパイプラインをスキップした場合でも、以前のコミットからの有効なセキュリティレポートが見つかります。セキュリティレポートが見つからない場合、すべての検出結果は新規としてリストされます。マージリクエストでセキュリティスキャンを有効にする前に、デフォルトブランチでセキュリティスキャンが有効になっていることを確認してください。
各セキュリティレポートタイプについて、レポートには、重大度でソートされた最初の25件の追加された検出結果と25件の修正された検出結果が表示されます。マージリクエストのソースブランチ上のすべての検出結果を表示するには、すべてのパイプラインの検証結果を表示するを選択します。
セキュリティスキャンの検出結果を表示
前提条件:
- プロジェクトのデベロッパーロール以上が必要です。
- プロジェクトに対してセキュリティスキャンを設定する必要があります。
- デフォルトブランチでセキュリティスキャンが有効になっている必要があります。
セキュリティスキャンの検出結果を表示するには:
- 左サイドバーで、検索または移動先を選択し、プロジェクトを見つけます。
- コード > マージリクエストを選択します。
- マージリクエストを選択します。
- レポートタブを選択します。
- セキュリティスキャンを選択します。
ライセンスコンプライアンスレポート
ライセンスコンプライアンスレポートには、ソースブランチパイプラインの結果とターゲットブランチパイプラインの結果を比較することで、プロジェクトの依存関係で検出されたライセンスが表示されます。
ライセンスは3つのカテゴリにグループ化されます:
- New licenses: ターゲットブランチに存在しないソースブランチで検出されたライセンス。
- Existing licenses: 両方のブランチに存在するライセンス。
- Removed licenses: ターゲットブランチには存在するが、ソースブランチには存在しないライセンス。
各ライセンスについて、レポートには次の情報が表示されます:
- ライセンス名と分類(許可、拒否、または不明)
- ライセンスを使用している依存関係の数
- 影響を受ける依存関係のリスト(パッケージマネージャーおよびバージョン情報を含む)
ライセンスの分類は、プロジェクトのライセンス承認ポリシーによって決定されます。
ライセンスコンプライアンスの検出結果を表示
前提条件:
- プロジェクトのデベロッパーロール以上が必要です。
- プロジェクトに対してライセンススキャンを設定する必要があります。
ライセンスコンプライアンスの検出結果を表示するには:
- 左サイドバーで、検索または移動先を選択し、プロジェクトを見つけます。
- コード > マージリクエストを選択します。
- マージリクエストを選択します。
- レポートタブを選択します。
- ライセンスのコンプライアンスを選択します。
コード品質レポート
コード品質レポートは、ソースブランチパイプラインの結果とターゲットブランチパイプラインの結果を比較することで、マージリクエストで検出されたコード品質の違反を表示します。比較のためにターゲットブランチからのレポートが利用可能な場合、このレポートは利用できます。
レポートには以下が表示されます:
- New violations: ターゲットブランチに存在しないソースブランチで検出されたコード品質の違反。
- Resolved violations: ターゲットブランチには存在するが、ソースブランチには存在しないコード品質の違反。解決された違反はバッジでマークされます。
各違反には次の情報が表示されます:
- コード品質イシューの説明
- 重大度レベル(ブロッカー、クリティカル、メジャー、マイナー、または情報)
- 違反が発生したファイルパスと行番号
- チェック名(違反を検出したルールまたはLinter)
同一のフィンガープリントを持つ重複した違反は削除されます。単一のエントリのみが表示されます。
コード品質の検出結果を表示
前提条件:
- デベロッパー、メンテナー、またはオーナーのロール
- プロジェクト用に設定されたコード品質スキャン
コード品質の検出結果を表示するには:
- 左サイドバーで、検索または移動先を選択し、プロジェクトを見つけます。
- コード > マージリクエストを選択します。
- マージリクエストを選択します。
- レポートタブを選択します。
- コード品質を選択します。
トラブルシューティング
セキュリティスキャンが有効になっている場合、次のイシューが発生する可能性があります。
無視された脆弱性がセキュリティスキャンレポートに表示される
マージリクエストでセキュリティスキャンレポートを表示すると、すでに無視された脆弱性がレポートに含まれる場合があります。
このイシューに対する解決策はありません。提案されている解決策を追跡するには、イシュー411235を参照してください。