지원되는 패키지 기능

GitLab 패키지 레지스트리는 각 패키지 유형에 대해 다양한 기능을 지원합니다. 이 지원에는 패키지 게시 및 가져오기, 요청 전달, 중복 관리, 인증이 포함됩니다.

패키지 게시

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

패키지는 프로젝트, 그룹 또는 인스턴스에 게시할 수 있습니다.

패키지 유형 프로젝트 그룹 인스턴스
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

패키지 가져오기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

패키지는 프로젝트, 그룹 또는 인스턴스에서 가져올 수 있습니다.

패키지 유형 프로젝트 그룹 인스턴스
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

요청 전달

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

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 아니요

중복 허용 또는 방지

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

기본적으로, 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

인증 토큰

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 토큰은 GitLab 패키지 레지스트리와 인증하는 데 사용됩니다.

지원되는 토큰은 다음과 같습니다:

패키지 유형 지원되는 토큰
Maven (with mvn) 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Maven (with gradle) 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Maven (with sbt) 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
npm 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
NuGet 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
PyPI 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Generic packages 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Terraform 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Composer 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹), 프로젝트 액세스
Conan 개인 액세스, 작업 토큰, 프로젝트 액세스
Helm 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹)
Debian 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹)
Go 개인 액세스, 작업 토큰, 프로젝트 액세스
Ruby gems 개인 액세스, 작업 토큰, 배포 (프로젝트 또는 그룹)

인증 프로토콜

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

다음 인증 프로토콜이 지원됩니다:

패키지 유형 지원되는 인증 프로토콜
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 토큰
  1. Maven 패키지에 대한 기본 인증은 GitLab 16.0에서 도입되었습니다.

지원되는 해시 유형

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

해시 값은 올바른 패키지를 사용하고 있는지 확인하는 데 사용됩니다. 사용자 인터페이스나 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 전용)