- 새 라이선스 승인 정책을 만들기 위한 준비 사항
- 새 라이선스 승인 정책 만들기
- 승인이 필요한 라이선스를 정의하는 기준
- Merge Request 브랜치에서 감지된 라이선스와 기본 브랜치에서 감지된 라이선스를 비교하는 기준
- 문제 해결
라이선스 승인 정책
- GitLab 15.9에 도입되었습니다.
license_scanning_policies
라는 플래그로.- GitLab 15.11에서 일반적으로 사용 가능해졌습니다. 피처 플래그
license_scanning_policies
이 제거되었습니다.
라이선스 승인 정책을 사용하면 Merge Request이 Merge되기 전에 승인이 필요한 여러 유형의 기준을 지정할 수 있습니다.
다음 비디오에서 이러한 정책에 대한 개요를 제공합니다.
새 라이선스 승인 정책을 만들기 위한 준비 사항
라이선스 승인 정책은 의존성 스캔 작업의 결과에 의존하여 요구 사항이 충족되었는지 확인합니다. 의존성 스캔이 제대로 구성되지 않았거나 열린 MR과 관련된 의존성 스캔 작업이 실행되지 않은 경우, 정책은 요구 사항을 확인할 데이터가 없습니다. 보안 정책이 평가를 위한 데이터가 부족한 경우, 결함이 포함될 수 있다고 가정하여 닫혀 실패합니다.
귀하의 정책을 강제 적용하려면 대상 개발 프로젝트에서 의존성 스캔을 활성화해야 합니다. 이를 위해 몇 가지 다양한 방법으로 달성할 수 있습니다:
- 모든 대상 개발 프로젝트에서 의존성 스캔을 실행하는 전역 스캔 실행 정책을 생성합니다.
- 컴플라이언스 파이프라인을 사용하여 특정 컴플라이언스 프레임워크에 따라 강제되는 프로젝트에 의존성 스캔 작업을 정의합니다.
- 개발 팀과 협력하여 각 프로젝트의
.gitlab-ci.yml
파일에서 의존성 스캔을 구성하거나 보안 구성 패널을 사용하여 활성화합니다.
새 라이선스 승인 정책 만들기
라이선스 규정 준수를 강제하도록 라이선스 승인 정책을 만듭니다.
라이선스 승인 정책을 만들려면 다음을 수행하세요:
- 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 보안 > 정책을 선택합니다.
- 새 스캔 결과 정책을 만듭니다.
- 정책 규칙에서 라이선스 스캔을 선택합니다.
승인이 필요한 라이선스를 정의하는 기준
승인이 필요한 라이선스를 결정하는 데 사용할 수 있는 다음 유형의 기준은 다음과 같습니다.
- 명시적으로 금지된 라이선스 디렉터리에서 어떤 라이선스든 감지되었을 때.
- 허용되는 명시적으로 나열된 라이선스를 제외한 모든 라이선스가 감지되었을 때.
Merge Request 브랜치에서 감지된 라이선스와 기본 브랜치에서 감지된 라이선스를 비교하는 기준
기본 브랜치에 있는 라이선스에 따라 승인이 필요한지 여부를 결정하는 데 사용할 수 있는 다음 유형의 기준은 다음과 같습니다:
- 거부된 라이선스는 기본 브랜치에 이미 존재하지 않는 의존성의 일부인 경우에만 승인이 필요합니다.
- 거부된 라이선스는 기본 브랜치에 이미 존재하는 컴포넌트 중에서 거부된 라이선스가 있는 경우 승인이 필요합니다.
라이선스 승인 정책을 위반하는 라이선스가 발견되면 해당 Merge Request을 차단하고, 해당 라이선스를 제거하도록 개발자에게 지시합니다. 참고로, 해당 거부된
라이선스가 제거될 때까지, 라이선스 승인 정책의 적격한 승인자가 Merge Request을 승인하기 전까지 해당 Merge Request은 Merge될 수 없습니다.
문제 해결
라이선스 규정 위젯이 로드 중 상태에서 멈춤
로딩 스피너는 다음과 같은 경우에 표시됩니다:
- 파이프라인 진행 중일 때.
- 파이프라인이 완료되었지만 결과를 백그라운드에서 파싱 중일 때.
- 라이선스 스캔 작업이 완료되었지만 파이프라인이 계속 실행 중일 때.
라이선스 규정 위젯은 몇 초마다 업데이트된 결과를 폴링합니다. 파이프라인이 완료되면, 파이프라인 완료 후 첫 번째 폴이 결과를 파싱합니다. 이는 생성된 보고서의 크기에 따라 몇 초가 걸릴 수 있습니다.
최종 상태는 성공적인 파이프라인 실행이 완료되었을 때, 파싱되고 위젯에 표시된 라이선스가 됩니다.