패키지 레지스트리

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

GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자를 위한 개인 또는 공개 레지스트리로 GitLab을 사용할 수 있습니다. 패키지를 게시하고 공유할 수 있으며 하위 프로젝트에서 종속성으로 사용할 수 있습니다.

패키지 워크플로우

GitLab 패키지 레지스트리를 사용하여 자체 사용자 정의 패키지 워크플로우를 작성하는 방법을 알아보세요:

패키지 보기

프로젝트 또는 그룹의 패키지를 볼 수 있습니다.

  1. 프로젝트 또는 그룹으로 이동합니다.
  2. 배포 > 패키지 레지스트리로 이동합니다.

이 페이지에서 패키지를 검색, 정렬 및 필터링할 수 있습니다. 브라우저에서 URL을 복사하여 검색 결과를 공유할 수 있습니다.

또한 패키지 관리자 구성 또는 지정된 패키지 설치에 대한 도움이 되는 코드 조각을 찾을 수 있습니다.

그룹에서 패키지를 볼 때:

  • 그룹 및 해당 프로젝트에 발행된 모든 프로젝트가 표시됩니다.
  • 액세스할 수 있는 프로젝트만 표시됩니다.
  • 프로젝트가 비공개이거나 해당 프로젝트의 멤버가 아닌 경우 표시되지 않습니다.

패키지를 만들고 업로드하는 방법에 대한 정보는 패키지 타입에 따른 GitLab 문서를 참조하세요.

레지스트리와 인증

인증은 사용 중인 패키지 관리자에 따라 다릅니다. 자세한 내용은 사용하려는 특정 패키지 형식에 대한 문서를 참조하세요.

대부분의 패키지 유형에 대해 다음 자격 증명 유형을 사용할 수 있습니다.

  • 개인 액세스 토큰: 사용자 권한으로 인증을 수행합니다. 패키지 레지스트리의 개인 및 로컬 사용에 적합합니다.
  • 프로젝트 배포 토큰: 프로젝트의 모든 패키지에 액세스할 수 있습니다. 많은 사용자에게 프로젝트 액세스 권한을 부여하고 취소하기에 적합합니다.
  • 그룹 배포 토큰: 그룹 및 하위 그룹의 모든 패키지에 액세스할 수 있습니다. 많은 사용자에 대해 여러 패키지의 액세스 권한을 부여하고 취소하기에 적합합니다.
  • 잡 토큰: 작업을 실행하는 프로젝트에서 사용자가 실행하는 작업에 대한 패키지에 액세스할 수 있습니다. 다른 외부 프로젝트에 대한 액세스를 구성할 수 있습니다.
  • 조직에서 이중 인증(2FA)을 사용하는 경우 api로 설정된 개인 액세스 토큰을 사용해야 합니다.
  • CI/CD 파이프라인을 통해 패키지를 게시하는 경우 CI 작업 토큰을 사용해야 합니다.

참고: 프로젝트에서 설정 > 일반 > 가시성, 프로젝트 기능, 권한에서 “패키지 레지스트리” 기능을 활성화하지 않은 경우 403 Forbidden 응답을 받게 됩니다. 외부 권한 부여가 활성화된 경우 배포 토큰을 사용한 패키지 레지스트리에 액세스할 수 없습니다.

GitLab CI/CD 사용

GitLab CI/CD를 사용하여 패키지 레지스트리로 빌드하거나 가져올 수 있습니다.

패키지 빌드

Maven, NuGet, npm, Conan, Helm 및 PyPI 패키지 및 Composer 종속성을 위해 CI_JOB_TOKEN을 사용하여 GitLab 인증을 수행할 수 있습니다.

시작할 수 있는 CI/CD 템플릿은 이 저장소에 있습니다.

CI/CD를 사용하여 GitLab 패키지 레지스트리를 사용하는 자세한 내용은 다음을 참조하세요.

패키지를 빌드하는 경우 패키지 세부 정보를 볼 때 확장된 활동 정보가 표시됩니다:

패키지 CI/CD 활동

패키지를 게시한 파이프라인과 해당 커밋 및 트리거한 사용자가 표시됩니다. 그러나 이력은 특정 패키지의 다섯 가지 업데이트로 제한됩니다.

패키지 가져오기

다른 레지스트리에 이미 빌드된 패키지가 있다면 패키지 가져오기를 사용하여 GitLab 패키지 레지스트리로 가져올 수 있습니다.

지원되는 패키지 목록은 기타 레포지토리에서 패키지 가져오기를 참조하세요.

저장 공간 사용량 줄이기

패키지 레지스트리의 저장 공간 사용량을 줄이는 정보는 패키지 레지스트리 저장 공간 사용 줄이기를 참조하세요.

패키지 레지스트리 비활성화

패키지 레지스트리는 자동으로 활성화됩니다.

GitLab의 셀프 매니지드 인스턴스를 사용하는 경우 관리자는 GitLab 사이드바에서 메뉴 항목 패키지 및 레지스트리를 제거할 수 있습니다. 자세한 내용은 관리 문서를 참조하세요.

또한 프로젝트별로 패키지 레지스트리를 제거할 수도 있습니다:

  1. 프로젝트에서 설정 > 일반으로 이동합니다.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 패키지 기능을 비활성화합니다.
  3. 변경 사항 저장을 선택합니다.

배포 > 패키지 레지스트리 항목이 사이드바에서 제거됩니다.

패키지 레지스트리 가시성 권한

프로젝트 수준의 권한은 패키지 다운로드, 푸시 또는 삭제와 같은 작업을 결정합니다.

패키지 레지스트리의 가시성은 저장소와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어, 공개 프로젝트를 가지고 있고 저장소 가시성을 프로젝트 멤버 전용으로 설정한 경우 패키지 레지스트리는 공개됩니다. 패키지 레지스트리를 비활성화하면 모든 패키지 레지스트리 작업이 비활성화됩니다.

프로젝트 가시성 작업 필요 역할
공개 패키지 레지스트리 보기 해당없음, 인터넷 사용자 누구나 이 작업 수행 가능
공개 패키지 게시 개발자
공개 패키지 가져오기 해당없음, 인터넷 사용자 누구나 이 작업 수행 가능
내부 패키지 레지스트리 보기 게스트
내부 패키지 게시 개발자
내부 패키지 가져오기 게스트 (1)
비공개 패키지 레지스트리 보기 기록자
비공개 패키지 게시 개발자
비공개 패키지 가져오기 기록자 (1)

누구든지 패키지 레지스트리에서 가져오기 허용

프로젝트 가시성에 관계 없이 누구든지 패키지 레지스트리에서 가져오도록 허용하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. 누구나 패키지 레지스트리에서 가져오도록 허용 토글을 켭니다.
  5. 변경 사항 저장을 선택합니다.

인터넷 사용자는 이제 프로젝트의 패키지 레지스트리에 액세스할 수 있습니다.

누구든지 가져오기 허용 비활성화

사전 준비 사항:

  • 관리자여야 합니다.

누구든지 패키지 레지스트리에서 가져오도록 허용 토글을 전역적으로 숨기려면:

익명 다운로드는 누구든지 패키지 레지스트리에서 가져오도록 허용 토글을 켜도 프로젝트에 대해 비활성화됩니다.

누구든지 패키지 레지스트리에서 가져오도록 허용하면 다음과 같은 알려진 문제가 있습니다:

  • 프로젝트 수준 엔드포인트는 지원됩니다. 그룹 수준 및 인스턴스 수준 엔드포인트는 지원되지 않습니다. 그룹 수준 엔드포인트의 지원은 문제 383537에서 제안됩니다.
  • Composer와 함께 사용할 수 없습니다. Composer에는 그룹 엔드포인트만 있기 때문입니다.
  • Conan과 함께 작동하지만 conan search를 사용하지 못합니다.

기여 받아들이기

지원되지 않는 패키지 관리자 형식을 나열하는 이 표는 우리가 기여를 받아들이고 있다는 것입니다. GitLab에 기여하는 것을 고려해보세요. 개발 문서가 이 과정을 안내합니다.

형식 상태
Chef #36889
CocoaPods #36890
Conda #36891
CRAN #36892
Opkg #36894
P2 #36895
Puppet #36897
RPM #5932
SBT #36898
Swift #12233
Vagrant #36899