InfoGrab Docs

패키지 레지스트리

요약

GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자에 대해 GitLab을 비공개 또는 공개 레지스트리로 사용할 수 있습니다. GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:

히스토리
  • GitLab 13.3에서 GitLab Premium에서 GitLab Free로 이동되었습니다.

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

패키지 워크플로우#

GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:

패키지 보기#

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

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

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

패키지 관리자 구성 또는 특정 패키지 설치를 위한 유용한 코드 스니펫도 찾을 수 있습니다.

그룹에서 패키지를 볼 때:

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

패키지를 만들고 업로드하는 방법은 패키지 유형에 대한 지침을 따르세요.

GitLab CI/CD 사용#

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

패키지 빌드#

CI_JOB_TOKEN을 사용하여 GitLab으로 인증할 수 있습니다.

시작하려면 사용 가능한 CI/CD 템플릿을 사용할 수 있습니다.

CI/CD와 함께 GitLab 패키지 레지스트리 사용에 대한 자세한 내용은 다음을 참조하세요:

CI/CD를 사용하여 패키지를 빌드하면 패키지 세부 정보를 볼 때 확장된 활동 정보가 표시됩니다:

패키지 CI/CD 활동

패키지를 게시한 파이프라인과 이를 트리거한 커밋 및 사용자를 볼 수 있습니다. 단, 히스토리는 특정 패키지의 최신 5번의 업데이트로 제한됩니다.

패키지 가져오기#

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

지원되는 패키지 목록은 다른 저장소에서 패키지 가져오기를 참조하세요.

스토리지 사용 줄이기#

패키지 레지스트리의 스토리지 사용을 줄이는 방법에 대한 자세한 내용은 패키지 레지스트리 스토리지 사용 줄이기를 참조하세요.

패키지 레지스트리 끄기#

패키지 레지스트리는 자동으로 켜집니다.

GitLab Self-Managed 인스턴스에서 관리자는 GitLab 사이드바에서 패키지 및 레지스트리 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 GitLab 패키지 레지스트리 관리를 참조하세요.

특정 프로젝트에서 패키지 레지스트리를 제거할 수도 있습니다:

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

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

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

프로젝트 권한은 멤버와 사용자가 패키지를 다운로드, 푸시 또는 삭제할 수 있는지 결정합니다.

패키지 레지스트리의 가시성은 저장소와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트가 있고 저장소 가시성을 프로젝트 멤버만으로 설정하면 패키지 레지스트리는 공개됩니다. 패키지 레지스트리 토글을 끄면 모든 패키지 레지스트리 작업이 꺼집니다.

프로젝트 가시성 작업 최소 필요 역할
공개 패키지 레지스트리 보기 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다.
공개 패키지 게시 Developer
공개 패키지 가져오기 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다.
내부 패키지 레지스트리 보기 Guest
내부 패키지 게시 Developer
내부 패키지 가져오기 Guest (1)
비공개 패키지 레지스트리 보기 Reporter
비공개 패키지 게시 Developer
비공개 패키지 가져오기 Reporter (1)

누구나 패키지 레지스트리에서 가져오도록 허용#

히스토리
  • GitLab 15.7에서 도입되었습니다.
  • GitLab 17.4에서 NuGet 그룹 엔드포인트 지원을 위해 변경되었습니다.
  • GitLab 17.5에서 Maven 그룹 엔드포인트 지원을 위해 변경되었습니다.
  • GitLab 17.5에서 Terraform 모듈 네임스페이스 엔드포인트 지원을 위해 변경되었습니다.

프로젝트 가시성에 상관없이 누구나 패키지 레지스트리에서 가져올 수 있도록 허용하려면:

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

인터넷상의 누구나 프로젝트의 패키지 레지스트리에 액세스할 수 있습니다.

누구나 가져오기 허용 비활성화#

사전 조건:

  • 관리자여야 합니다.

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

패키지 레지스트리에서 누구나 가져오도록 허용 토글을 켠 프로젝트의 경우에도 익명 다운로드가 꺼집니다.

누구나 패키지 레지스트리에서 가져올 수 있도록 허용하는 경우 몇 가지 알려진 이슈가 있습니다:

  • 프로젝트 엔드포인트가 지원됩니다.
  • 그룹에 대한 NuGet 레지스트리 엔드포인트가 지원됩니다. 그러나 NuGet 클라이언트가 인증 자격 증명을 보내는 방식 때문에 익명 다운로드는 허용되지 않습니다. 이 설정이 켜져 있더라도 GitLab 사용자만 패키지 레지스트리에서 가져올 수 있습니다.
  • 그룹에 대한 Maven 레지스트리 엔드포인트가 지원됩니다.
  • 네임스페이스에 대한 Terraform 모듈 레지스트리 엔드포인트가 지원됩니다.
  • 다른 그룹 및 인스턴스 엔드포인트는 완전히 지원되지 않습니다. 그룹 엔드포인트 지원은 에픽 14234에서 제안됩니다.
  • Composer는 그룹 엔드포인트만 있어서 Composer와는 작동하지 않습니다.
  • Conan과는 작동하지만 conan search 사용은 작동하지 않습니다.

감사 이벤트#

히스토리
  • GitLab 17.10에서 package_registry_audit_events라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.
  • GitLab 18.2에서 일반 제공됩니다. 기능 플래그 package_registry_audit_events가 제거되었습니다.

패키지가 게시되거나 삭제될 때 감사 이벤트를 생성합니다. 네임스페이스 소유자는 GraphQL API를 통해 audit_events_enabled 설정을 켤 수 있습니다.

감사 이벤트를 볼 수 있습니다:

기여 수락#

다음 표에는 지원되지 않는 패키지 형식이 나열되어 있습니다. 이러한 형식에 대한 지원을 추가하기 위해 GitLab에 기여하는 것을 고려해 보세요.

형식 상태
Conda #36891
CRAN #36892
RPM #5932
Swift #12233

패키지 레지스트리

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자에 대해 GitLab을 비공개 또는 공개 레지스트리로 사용할 수 있습니다. GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:

히스토리
  • GitLab 13.3에서 GitLab Premium에서 GitLab Free로 이동되었습니다.

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

패키지 워크플로우#

GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:

패키지 보기#

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

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

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

패키지 관리자 구성 또는 특정 패키지 설치를 위한 유용한 코드 스니펫도 찾을 수 있습니다.

그룹에서 패키지를 볼 때:

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

패키지를 만들고 업로드하는 방법은 패키지 유형에 대한 지침을 따르세요.

GitLab CI/CD 사용#

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

패키지 빌드#

CI_JOB_TOKEN을 사용하여 GitLab으로 인증할 수 있습니다.

시작하려면 사용 가능한 CI/CD 템플릿을 사용할 수 있습니다.

CI/CD와 함께 GitLab 패키지 레지스트리 사용에 대한 자세한 내용은 다음을 참조하세요:

CI/CD를 사용하여 패키지를 빌드하면 패키지 세부 정보를 볼 때 확장된 활동 정보가 표시됩니다:

패키지 CI/CD 활동

패키지를 게시한 파이프라인과 이를 트리거한 커밋 및 사용자를 볼 수 있습니다. 단, 히스토리는 특정 패키지의 최신 5번의 업데이트로 제한됩니다.

패키지 가져오기#

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

지원되는 패키지 목록은 다른 저장소에서 패키지 가져오기를 참조하세요.

스토리지 사용 줄이기#

패키지 레지스트리의 스토리지 사용을 줄이는 방법에 대한 자세한 내용은 패키지 레지스트리 스토리지 사용 줄이기를 참조하세요.

패키지 레지스트리 끄기#

패키지 레지스트리는 자동으로 켜집니다.

GitLab Self-Managed 인스턴스에서 관리자는 GitLab 사이드바에서 패키지 및 레지스트리 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 GitLab 패키지 레지스트리 관리를 참조하세요.

특정 프로젝트에서 패키지 레지스트리를 제거할 수도 있습니다:

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

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

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

프로젝트 권한은 멤버와 사용자가 패키지를 다운로드, 푸시 또는 삭제할 수 있는지 결정합니다.

패키지 레지스트리의 가시성은 저장소와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트가 있고 저장소 가시성을 프로젝트 멤버만으로 설정하면 패키지 레지스트리는 공개됩니다. 패키지 레지스트리 토글을 끄면 모든 패키지 레지스트리 작업이 꺼집니다.

프로젝트 가시성 작업 최소 필요 역할
공개 패키지 레지스트리 보기 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다.
공개 패키지 게시 Developer
공개 패키지 가져오기 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다.
내부 패키지 레지스트리 보기 Guest
내부 패키지 게시 Developer
내부 패키지 가져오기 Guest (1)
비공개 패키지 레지스트리 보기 Reporter
비공개 패키지 게시 Developer
비공개 패키지 가져오기 Reporter (1)

누구나 패키지 레지스트리에서 가져오도록 허용#

히스토리
  • GitLab 15.7에서 도입되었습니다.
  • GitLab 17.4에서 NuGet 그룹 엔드포인트 지원을 위해 변경되었습니다.
  • GitLab 17.5에서 Maven 그룹 엔드포인트 지원을 위해 변경되었습니다.
  • GitLab 17.5에서 Terraform 모듈 네임스페이스 엔드포인트 지원을 위해 변경되었습니다.

프로젝트 가시성에 상관없이 누구나 패키지 레지스트리에서 가져올 수 있도록 허용하려면:

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

인터넷상의 누구나 프로젝트의 패키지 레지스트리에 액세스할 수 있습니다.

누구나 가져오기 허용 비활성화#

사전 조건:

  • 관리자여야 합니다.

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

패키지 레지스트리에서 누구나 가져오도록 허용 토글을 켠 프로젝트의 경우에도 익명 다운로드가 꺼집니다.

누구나 패키지 레지스트리에서 가져올 수 있도록 허용하는 경우 몇 가지 알려진 이슈가 있습니다:

  • 프로젝트 엔드포인트가 지원됩니다.
  • 그룹에 대한 NuGet 레지스트리 엔드포인트가 지원됩니다. 그러나 NuGet 클라이언트가 인증 자격 증명을 보내는 방식 때문에 익명 다운로드는 허용되지 않습니다. 이 설정이 켜져 있더라도 GitLab 사용자만 패키지 레지스트리에서 가져올 수 있습니다.
  • 그룹에 대한 Maven 레지스트리 엔드포인트가 지원됩니다.
  • 네임스페이스에 대한 Terraform 모듈 레지스트리 엔드포인트가 지원됩니다.
  • 다른 그룹 및 인스턴스 엔드포인트는 완전히 지원되지 않습니다. 그룹 엔드포인트 지원은 에픽 14234에서 제안됩니다.
  • Composer는 그룹 엔드포인트만 있어서 Composer와는 작동하지 않습니다.
  • Conan과는 작동하지만 conan search 사용은 작동하지 않습니다.

감사 이벤트#

히스토리
  • GitLab 17.10에서 package_registry_audit_events라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.
  • GitLab 18.2에서 일반 제공됩니다. 기능 플래그 package_registry_audit_events가 제거되었습니다.

패키지가 게시되거나 삭제될 때 감사 이벤트를 생성합니다. 네임스페이스 소유자는 GraphQL API를 통해 audit_events_enabled 설정을 켤 수 있습니다.

감사 이벤트를 볼 수 있습니다:

기여 수락#

다음 표에는 지원되지 않는 패키지 형식이 나열되어 있습니다. 이러한 형식에 대한 지원을 추가하기 위해 GitLab에 기여하는 것을 고려해 보세요.

형식 상태
Conda #36891
CRAN #36892
RPM #5932
Swift #12233