머지 리퀘스트 리포트
GitLab v19.4Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
머지 리퀘스트의 Reports 탭은 CI/CD 파이프라인 스캔의 상세 결과를 보여줍니다. 보안 스캔 리포트는 소스 브랜치를 머지할 경우 결과에 발생하는 변경 사항의 요약을 제공합니다. 예를 들어 다음과 같은 스캔 결과를 가진 두 파이프라인을 가정합니다.
히스토리
- GitLab 19.0에서
mr_reports_tab이라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 19.1에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에 활성화되었습니다.
- GitLab 19.1에서 일반 사용 가능해졌습니다. 기능 플래그
mr_reports_tab은 제거되었습니다.
머지 리퀘스트의 Reports 탭은 CI/CD 파이프라인 스캔의 상세 결과를 보여줍니다. 이 탭은 보안 스캔 결과, 라이선스 컴플라이언스 결과, 코드 품질 리포트를 전용 전체 페이지 보기로 표시합니다.
보안 스캔 리포트#
보안 스캔 리포트는 소스 브랜치를 머지할 경우 결과에 발생하는 변경 사항의 요약을 제공합니다.
예를 들어 다음과 같은 스캔 결과를 가진 두 파이프라인을 가정합니다.
- 대상 브랜치 파이프라인은
V1과V2로 식별된 취약점 두 건을 탐지합니다. - 소스 브랜치 파이프라인은
V1과V3으로 식별된 취약점 두 건을 탐지합니다.
보안 스캔 리포트는 다음 결과를 보여줍니다.
V1은 두 브랜치 모두에 존재하므로 리포트에 표시되지 않습니다.V2는 fixed로 리포트에 표시됩니다.V3은 added로 리포트에 표시됩니다.
보안 스캔 리포트가 소스 브랜치와 대상 브랜치의 차이를 표시하려면 두 브랜치 모두에 보안 리포트가 있어야 합니다. 시스템은 유효한 보안 파이프라인이 있는지 대상 브랜치의 최근 커밋 10개를 확인합니다. 각 커밋에 대해 보안 리포트가 있는지 최근 파이프라인 10개까지 확인합니다.
이 방식은 커밋이 파이프라인을 건너뛰더라도 이전 커밋의 유효한 보안 리포트를 찾도록 보장합니다. 보안 리포트를 찾지 못하면 모든 결과가 신규로 나열됩니다. 머지 리퀘스트에서 보안 스캐닝을 활성화하기 전에 기본 브랜치에 보안 스캐닝이 활성화되어 있는지 확인합니다.
각 보안 리포트 유형에 대해 리포트는 심각도순으로 정렬한 추가 결과 25건과 수정 결과 25건을 표시합니다. 머지 리퀘스트 소스 브랜치의 모든 결과를 보려면 View all pipeline findings를 선택합니다.
보안 스캔 결과 보기#
사전 요구 사항:
- 프로젝트에 대해 최소 Developer 권한이 있어야 합니다.
- 프로젝트에 대해 보안 스캐닝을 구성해야 합니다.
- 머지 리퀘스트 소스 브랜치의 최신 파이프라인에서 보안 스캐닝이 실행되어 리포트가 생성되어 있어야 합니다.
보안 스캔 결과를 보려면 다음 단계를 수행합니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Code > Merge requests를 선택합니다.
- 머지 리퀘스트를 선택합니다.
- Reports 탭을 선택합니다.
- Security scan을 선택합니다.
라이선스 컴플라이언스 리포트#
라이선스 컴플라이언스 리포트는 소스 브랜치 파이프라인 결과와 대상 브랜치 파이프라인 결과를 비교하여 프로젝트 의존성에서 탐지된 라이선스를 보여줍니다.
라이선스는 세 가지 범주로 분류됩니다.
- New licenses: 대상 브랜치에는 없고 소스 브랜치에서 탐지된 라이선스입니다.
- Existing licenses: 두 브랜치 모두에 존재하는 라이선스입니다.
- Removed licenses: 대상 브랜치에는 존재하지만 소스 브랜치에는 없는 라이선스입니다.
각 라이선스에 대해 리포트는 다음 정보를 보여줍니다.
- 라이선스 이름과 분류(허용됨, 거부됨, 알 수 없음)
- 해당 라이선스를 사용하는 의존성 수
- 패키지 매니저와 버전 정보를 포함한 영향받는 의존성 목록
라이선스 분류는 프로젝트의 라이선스 승인 정책에 따라 결정됩니다.
라이선스 컴플라이언스 결과 보기#
사전 요구 사항:
- 프로젝트에 대해 최소 Developer 권한이 있어야 합니다.
- 프로젝트에 라이선스 스캐닝이 구성되어 있어야 합니다.
라이선스 컴플라이언스 결과를 보려면 다음 단계를 수행합니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Code > Merge requests를 선택합니다.
- 머지 리퀘스트를 선택합니다.
- Reports 탭을 선택합니다.
- License compliance를 선택합니다.
코드 품질 리포트#
코드 품질 리포트는 소스 브랜치 파이프라인 결과와 대상 브랜치 파이프라인 결과를 비교하여 머지 리퀘스트에서 탐지된 코드 품질 위반을 보여줍니다. 비교에 사용할 대상 브랜치의 리포트가 있는 경우에만 이 리포트를 사용할 수 있습니다.
리포트는 다음을 보여줍니다.
- New violations: 대상 브랜치에는 없고 소스 브랜치에서 탐지된 코드 품질 위반입니다.
- Resolved violations: 대상 브랜치에는 존재하지만 소스 브랜치에는 없는 코드 품질 위반입니다. 해결된 위반은 배지로 표시됩니다.
각 위반은 다음 정보를 보여줍니다.
- 코드 품질 이슈 설명
- 심각도 수준(blocker, critical, major, minor, info)
- 위반이 발생한 파일 경로와 줄 번호
- 체크 이름(위반을 탐지한 규칙 또는 린터)
지문이 동일한 중복 위반은 제거됩니다. 항목 하나만 표시됩니다.
코드 품질 결과 보기#
사전 요구 사항:
- Developer, Maintainer, Owner 권한
- 프로젝트에 코드 품질 스캐닝이 구성되어 있어야 합니다
코드 품질 결과를 보려면 다음 단계를 수행합니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Code > Merge requests를 선택합니다.
- 머지 리퀘스트를 선택합니다.
- Reports 탭을 선택합니다.
- Code quality를 선택합니다.
문제 해결#
리포트를 볼 때 다음과 같은 문제가 발생할 수 있습니다.
해제된 취약점이 보안 스캔 리포트에 표시됨#
머지 리퀘스트에서 보안 스캔 리포트를 볼 때 이미 해제된 취약점이 리포트에 포함될 수 있습니다.
이 이슈에는 해결 방법이 없습니다. 제안된 해결 방법을 추적하려면 이슈 411235를 참고합니다.
라이선스 컴플라이언스 리포트가 로딩 상태에서 멈춤#
다음 상황에서 로딩 스피너가 표시됩니다.
- 파이프라인이 진행 중인 경우.
- 파이프라인은 완료되었으나 백그라운드에서 결과를 파싱하고 있는 경우.
- 라이선스 스캐닝 job은 완료되었으나 파이프라인이 아직 실행 중인 경우.
라이선스 컴플라이언스 리포트는 갱신된 결과를 얻기 위해 몇 초마다 폴링합니다. 파이프라인이 완료되면 완료 후 첫 폴링이 결과 파싱을 트리거합니다. 생성된 리포트 크기에 따라 몇 초가 걸릴 수 있습니다.
최종 상태는 파이프라인 실행이 성공하여 결과가 파싱되고 리포트에 표시된 상태입니다.