*이 글은 https://docs.gitlab.com/를 참조하여 작성되었습니다.
License Compliance
GitLab CI / CD를 사용할때 License Compliance를 사용하여 라이센스에 대한 프로젝트 종속성을 검색 할 수 있습니다.
기존 파일에
.gitlab-ci.yml
작업 포함 시키거나 Auto DevOps에서 제공하는 자동 라이센스 준수 를 사용하여 라이센스 준수 를 활용할 수 있습니다 .GitLab은 라이센스 준수 보고서를 확인하고 소스와 대상 분기 간의 라이센스를 비교하고 병합 요청에 대한 정보를 바로 보여줍니다. 거부 된 라이센스는
x
표시와 빨간색 아이콘과 함께 사용자의 결정이 필요한 새 라이센스 로 명확하게 표시됩니다.프로젝트 설정에서 라이센스를 수동으로 허용하거나 거부할 수 있습니다 .
.gitlab-ci.yml
에서license_scanning
작업을 추가할 때 라이센스 준수 보고서와 비교할 내용이없는 경우 병합 요청 영역에 정보가 표시되지 않습니다.연속적인 병합 요청에는 비교할 내용이 있으며 라이센스 준수 보고서가 올바르게 표시됩니다.
프로젝트 또는 그룹 관리자 인 경우 라이센스를 클릭하여 라이센스를 허용하거나 거부 할 수 있습니다.
1. 지원되는 언어 및 패키지 관리자
Language | Package managers | Scan Tool |
---|---|---|
JavaScript | ||
Go | Godep, go get (experimental support), gvt (experimental support), glide (experimental support), dep (experimental support), trash (experimental support) and govendor (experimental support), go mod (experimental support) | |
Java | ||
.NET | Nuget (.NET Framework is supported via the mono project. Windows specific dependencies are not supported at this time.) | |
Python | pip (Python is supported through requirements.txt and Pipfile.lock.) | |
Ruby | ||
Erlang | ||
Objective-C, Swift | ||
Elixir | ||
C++/C | ||
Scala | ||
Rust | ||
PHP |
License Compliance 검사 작업을 실행하려면 Docker 실행자가 있는 GitLab Runner가 필요함
GitLab 12.8 및 이후 버전은 GitLab 설치의 일부로
License-Scanning.gitlab-ci.yml
템플릿을 포함하고 있습니다 License Compliance를 가능하게 하려면 다음을 수행해야합니다.11.9에서 12.7로 GitLab 이전 버전은
License-Management.gitlab-ci.yml
템플릿을 포함하고 있고 다음을 수행해야합니다11.9 이전의 GitLab 버전의 경우 해당 템플릿에 정의 된대로 작업을 복사하고 사용할 수 있습니다.
.gitlab-ci.yml
파일에 다음을 추가
include: - template: License-Scanning.gitlab-ci.yml
license_scanning
가 포함 된 템플릿은 CI / CD 파이프 라인에 작업을 생성하고 종속성을 검색하여 라이센스를 찾습니다.결과는 나중에 다운로드하여 분석 할 수 있는 License Compliance 보고서 아티팩트로 저장됩니다 . 구현 제한으로 인해 항상 최신 License Compliance 아티팩트를 사용합니다.
GitLab 라이센스 준수 Docker 이미지는 언어 / 프레임 워크를 감지하고 라이센스를 분석하는데 사용됩니다.
.gitlab-ci.yml
의 환경 변수를 통해 라이센스 준수 설정을variables
의 매개 변수를 사용하여 변경할 수 있습니다.
2. 사용 가능한 변수
환경 변수를 사용하여 License Compliance를 구성 할 수 있습니다.
환경 변수 | 필수 | 기술 |
---|---|---|
| no | mvn 실행 파일에 대한 추가 인수 제공되지 않은 경우 |
| no |
|
| no | Java 11. 버전으로 설정하면 Maven 및 Gradle은 Java 8 대신 Java 11을 사용합니다. |
| no | 파이썬의 3. 버전으로 설정하면 Python 2.7 대신 Python 3을 사용하여 종속성이 설치됩니다. |
| no | 종속성 설치를 위한 사용자 정의 설정. (experimental) |
| no | 파이썬 패키지 인덱스의 기본 URL |
| no | 신뢰할 수있는 CA 인증서 번들 (현재 Python 프로젝트에서 지원됨). |
3. 사용자 정의 종속성 설치
license_management
이미지는 이미 많은 자동 감지 스크립트 언어 및 패키지를 포함합니다. 그럼에도 불구하고 모든 프로젝트의 모든 사례를 다루는 것은 거의 불가능합니다. 그렇기 때문에 때때로 추가 패키지를 설치하거나 인증서 다운로드 및 설치와 같은 프로젝트 자동화 설정에 추가 단계를 수행해야하는 이유가 있습니다. 이를 위해LICENSE_MANAGEMENT_SETUP_CMD
라이센스 감지 전에 실행해야하는 필수 명령을 사용 하여 환경 변수를 컨테이너로 전달할 수 있습니다.이 변수가 있는 경우 응용프로그램의 모든 패키지를 설치하는 데 필요한 설정 단계를 재정의함
(예 : 프로젝트가있는 프로젝트의Gemfile
경우 설정 단계는bundle install
).예를 들면 아래와 같습니다
include: - template: License-Scanning.gitlab-ci.yml variables: LICENSE_MANAGEMENT_SETUP_CMD: sh my-custom-install-script.sh
이 예제는
my-custom-install-script.sh
프로젝트의 루트 디렉토리에 있는 쉘 스크립트입니다.
4. 템플릿 재정의
작업 정의를 재정의하려면 (예 :
variables
또는dependencies
)license_scanning
템플릿 포함 후license_scanning
작업 을 선언하고 그 아래에 추가 키를 지정해야합니다.예를 들면 아래와 같습니다.
include: - template: License-Scanning.gitlab-ci.yml license_scanning: variables: CI_DEBUG_TRACE: "true"
0 Comments