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