지원되는 패키지 기능
GitLab 패키지 레지스트리는 각 패키지 유형에 대해 다양한 기능을 지원합니다. 이 지원에는 패키지 게시 및 가져오기, 요청 전달, 중복 관리, 인증이 포함됩니다.
패키지 게시
패키지는 프로젝트, 그룹 또는 인스턴스에 게시할 수 있습니다.
패키지 유형 | 프로젝트 | 그룹 | 인스턴스 |
---|---|---|---|
Maven (with mvn ) |
Y | N | N |
Maven (with gradle ) |
Y | N | N |
Maven (with sbt ) |
N | N | N |
npm | Y | N | N |
NuGet | Y | N | N |
PyPI | Y | N | N |
Generic packages | Y | N | N |
Terraform | Y | N | N |
Composer | N | Y | N |
Conan | Y | N | Y |
Helm | Y | N | N |
Debian | Y | N | N |
Go | Y | N | N |
Ruby gems | Y | N | N |
패키지 가져오기
패키지는 프로젝트, 그룹 또는 인스턴스에서 가져올 수 있습니다.
패키지 유형 | 프로젝트 | 그룹 | 인스턴스 |
---|---|---|---|
Maven (with mvn ) |
Y | Y | Y |
Maven (with gradle ) |
Y | Y | Y |
Maven (with sbt ) |
Y | Y | Y |
npm | Y | Y | Y |
NuGet | Y | Y | N |
PyPI | Y | Y | N |
Generic packages | Y | N | N |
Terraform | N | Y | N |
Composer | Y | Y | N |
Conan | Y | N | Y |
Helm | Y | N | N |
Debian | Y | N | N |
Go | Y | N | Y |
Ruby gems | Y | N | N |
요청 전달
GitLab 프로젝트에서 찾을 수 없는 패키지에 대한 요청은 공개 레지스트리로 전달됩니다. 예를 들어, Maven Central, npmjs 또는 PyPI입니다.
패키지 유형 | 요청 전달 지원 여부 |
---|---|
Maven (with mvn ) |
예 (기본적으로 비활성화됨) |
Maven (with gradle ) |
예 (기본적으로 비활성화됨) |
Maven (with sbt ) |
예 (기본적으로 비활성화됨) |
npm | 예 |
NuGet | 아니요 |
PyPI | 예 |
Generic packages | 아니요 |
Terraform | 아니요 |
Composer | 아니요 |
Conan | 아니요 |
Helm | 아니요 |
Debian | 아니요 |
Go | 아니요 |
Ruby gems | 아니요 |
패키지 삭제
패키지 요청이 공개 레지스트리로 전달될 때, 패키지를 삭제하는 것은
의존성 혼란 취약점일 수 있습니다.
시스템이 삭제된 패키지를 가져오려고 할 경우, 요청은 공개
레지스트리로 전달됩니다. 공개 레지스트리에서 동일한 이름과 버전으로된 패키지가 발견되면, 해당 패키지가 대신 가져오기 됩니다.
레지스트리에서 가져온 패키지가 예상과 다를 수 있으며, 심지어 악성일 수도 있는 위험이 있습니다.
관련된 보안 위험을 줄이기 위해, 패키지를 삭제하기 전에 다음을 수행할 수 있습니다:
- 패키지가 활성적으로 사용되고 있지 않음을 확인하세요.
- 요청 전달 비활성화:
- 인스턴스 관리자는 관리자 영역의 지속적 통합 섹션에서 전달을 비활성화할 수 있습니다.
- 그룹 소유자는 그룹 설정의 패키지 및 레지스트리 섹션에서 전달을 비활성화할 수 있습니다.
다른 레지스트리에서 패키지 가져오기
GitLab 파이프라인을 사용하여 Maven Central 또는 Artifactory와 같은 다른 레지스트리에서 패키지를 가져올 수 있습니다.
패키지 가져오기 도구를 사용할 수 있습니다.
패키지 유형 | 가져오기 도구 사용 가능 여부 |
---|---|
Maven (with mvn ) |
예 |
Maven (with gradle ) |
예 |
Maven (with sbt ) |
예 |
npm | 예 |
NuGet | 예 |
PyPI | 예 |
Generic packages | 아니요 |
Terraform | 아니요 |
Composer | 아니요 |
Conan | 아니요 |
Helm | 아니요 |
Debian | 아니요 |
Go | 아니요 |
Ruby gems | 아니요 |
중복 허용 또는 방지
기본적으로, GitLab 패키지 레지스트리는 해당 특정 패키지 관리자 형식의 기본값에 따라 중복을 허용 또는 방지합니다.
패키지 유형 | 중복 허용? |
---|---|
Maven (with mvn ) |
Y (구성 가능) |
Maven (with gradle ) |
Y (구성 가능) |
Maven (with sbt ) |
Y (구성 가능) |
npm | N |
NuGet | Y |
PyPI | N |
Generic packages | Y (구성 가능) |
Terraform | N |
Composer | N |
Conan | N |
Helm | Y |
Debian | Y |
Go | N |
Ruby gems | Y |
인증 토큰
GitLab 토큰은 GitLab 패키지 레지스트리와 인증하는 데 사용됩니다.
지원되는 토큰은 다음과 같습니다:
패키지 유형 | 지원되는 토큰 |
---|---|
Maven (with mvn ) |
개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Maven (with gradle ) |
개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Maven (with sbt ) |
개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
npm | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
NuGet | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
PyPI | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Generic packages | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Terraform | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Composer | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스 |
Conan | 개인 액세스, 작업 토큰, 프로젝트 액세스 |
Helm | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹) |
Debian | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹) |
Go | 개인 액세스, 작업 토큰, 프로젝트 액세스 |
Ruby gems | 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹) |
인증 프로토콜
다음 인증 프로토콜이 지원됩니다:
패키지 유형 | 지원되는 인증 프로토콜 |
---|---|
Maven (with mvn ) |
헤더, 기본 인증 |
Maven (with gradle ) |
헤더, 기본 인증 |
Maven (with sbt ) |
기본 인증 (패키지 가져오기 전용) (1) |
npm | OAuth |
NuGet | 기본 인증 |
PyPI | 기본 인증 |
Generic packages | 기본 인증 |
Terraform | 토큰 |
Composer | OAuth |
Conan | OAuth, 기본 인증 |
Helm | 기본 인증 |
Debian | 기본 인증 |
Go | 기본 인증 |
Ruby gems | 토큰 |
- Maven 패키지에 대한 기본 인증은 GitLab 16.0에서 도입되었습니다.
지원되는 해시 유형
해시 값은 올바른 패키지를 사용하고 있는지 확인하는 데 사용됩니다. 사용자 인터페이스나 API를 통해 이 값을 볼 수 있습니다.
패키지 레지스트리는 다음 해시 유형을 지원합니다:
패키지 유형 | 지원되는 해시 |
---|---|
Maven (with mvn ) |
MD5, SHA1 |
Maven (with gradle ) |
MD5, SHA1 |
Maven (with sbt ) |
MD5, SHA1 |
npm | SHA1 |
NuGet | 해당 없음 |
PyPI | MD5, SHA256 |
Generic packages | SHA256 |
Composer | 해당 없음 |
Conan | MD5, SHA1 |
Helm | 해당 없음 |
Debian | MD5, SHA1, SHA256 |
Go | MD5, SHA1, SHA256 |
Ruby gems | MD5, SHA1, SHA256 (gemspec 전용) |