InfoGrab DocsInfoGrab Docs

패키지 레지스트리

요약

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

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

패키지 워크플로#

GitLab 패키지 레지스트리를 사용하여 나만의 사용자 지정 패키지 워크플로를 구축하는 방법을 알아봅니다:

패키지 보기#

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. Deploy > Package registry를 선택합니다.

그룹에서 패키지를 볼 때:

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

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

패키지를 나열하려면 API를 사용할 수도 있습니다.

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 사이드바에서 Packages and registries 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 GitLab 패키지 레지스트리 관리를 참고합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > General을 선택합니다.
  3. Visibility, project features, permissions 섹션을 확장하고 Package registry 토글을 끕니다.
  4. Save changes를 선택합니다.

GitLab이 사이드바에서 Deploy > Package registry 항목을 제거합니다.

프로젝트의 패키지 레지스트리를 끄려면 API를 사용할 수도 있습니다.

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

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

패키지 레지스트리의 가시성은 리포지터리와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트가 있고 리포지터리 가시성을 Only Project Members로 설정하면 패키지 레지스트리는 공개됩니다. Package registry 토글을 끄면 모든 패키지 레지스트리 작업이 꺼집니다.

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

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

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

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

  1. 상단 바에서 Search or go to를 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
  2. Settings > General을 선택합니다.
  3. Visibility, project features, permissions를 확장합니다.
  4. Allow anyone to pull from package registry 토글을 켭니다.
  5. Save changes를 선택합니다.

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

누구나 가져오도록 허용하려면 API를 사용할 수도 있습니다.

누구나 패키지 레지스트리에서 가져오도록 허용하면 다음 엔드포인트가 지원됩니다:

  • 프로젝트 엔드포인트
  • NuGet 레지스트리 그룹 엔드포인트
  • Maven 레지스트리 그룹 엔드포인트
  • Terraform 모듈 레지스트리 네임스페이스 엔드포인트

이 설정에는 다음과 같은 알려진 이슈가 있습니다:

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

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

사전 요구 사항:

  • 관리자 액세스 권한이 있어야 합니다.

Allow anyone to pull from package registry 토글을 전역적으로 숨기려면:

Allow anyone to pull from package registry 토글을 켠 프로젝트의 경우에도 익명 다운로드가 꺼집니다.

감사 이벤트#

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

패키지가 게시되거나 삭제될 때 감사 이벤트를 생성합니다.

감사 이벤트 켜기#

감사 이벤트는 기본적으로 꺼져 있습니다.

사전 요구 사항:

  • 프로젝트가 포함된 그룹의 Owner 권한이 있거나, 프로젝트가 포함된 개인 네임스페이스의 소유자여야 합니다.

감사 이벤트를 켜려면:

  • GraphQL API로 네임스페이스의 auditEventsEnabled를 true로 설정합니다.

이 설정은 해당 네임스페이스에 직접 속한 프로젝트에만 적용됩니다. 하위 그룹에 있는 프로젝트의 경우 해당 하위 그룹에서 설정을 켭니다.

패키지 감사 이벤트가 표시되는 위치는 프로젝트의 네임스페이스에 따라 다릅니다:

  • 프로젝트가 그룹에 있으면 이벤트는 프로젝트가 아니라 해당 그룹의 감사 이벤트에 표시됩니다.
  • 프로젝트가 개인 네임스페이스에 있으면 이벤트는 프로젝트의 감사 이벤트에 표시됩니다.

자세한 내용은 감사 이벤트 보기를 참고합니다.

기여 수락#

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

형식 상태
Conda 이슈 36891
CRAN 이슈 36892
RPM 에픽 5128
Swift 이슈 12233

패키지 레지스트리

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

요약

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

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

패키지 워크플로#

GitLab 패키지 레지스트리를 사용하여 나만의 사용자 지정 패키지 워크플로를 구축하는 방법을 알아봅니다:

패키지 보기#

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. Deploy > Package registry를 선택합니다.

그룹에서 패키지를 볼 때:

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

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

패키지를 나열하려면 API를 사용할 수도 있습니다.

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 사이드바에서 Packages and registries 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 GitLab 패키지 레지스트리 관리를 참고합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > General을 선택합니다.
  3. Visibility, project features, permissions 섹션을 확장하고 Package registry 토글을 끕니다.
  4. Save changes를 선택합니다.

GitLab이 사이드바에서 Deploy > Package registry 항목을 제거합니다.

프로젝트의 패키지 레지스트리를 끄려면 API를 사용할 수도 있습니다.

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

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

패키지 레지스트리의 가시성은 리포지터리와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트가 있고 리포지터리 가시성을 Only Project Members로 설정하면 패키지 레지스트리는 공개됩니다. Package registry 토글을 끄면 모든 패키지 레지스트리 작업이 꺼집니다.

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

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

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

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

  1. 상단 바에서 Search or go to를 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
  2. Settings > General을 선택합니다.
  3. Visibility, project features, permissions를 확장합니다.
  4. Allow anyone to pull from package registry 토글을 켭니다.
  5. Save changes를 선택합니다.

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

누구나 가져오도록 허용하려면 API를 사용할 수도 있습니다.

누구나 패키지 레지스트리에서 가져오도록 허용하면 다음 엔드포인트가 지원됩니다:

  • 프로젝트 엔드포인트
  • NuGet 레지스트리 그룹 엔드포인트
  • Maven 레지스트리 그룹 엔드포인트
  • Terraform 모듈 레지스트리 네임스페이스 엔드포인트

이 설정에는 다음과 같은 알려진 이슈가 있습니다:

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

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

사전 요구 사항:

  • 관리자 액세스 권한이 있어야 합니다.

Allow anyone to pull from package registry 토글을 전역적으로 숨기려면:

Allow anyone to pull from package registry 토글을 켠 프로젝트의 경우에도 익명 다운로드가 꺼집니다.

감사 이벤트#

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

패키지가 게시되거나 삭제될 때 감사 이벤트를 생성합니다.

감사 이벤트 켜기#

감사 이벤트는 기본적으로 꺼져 있습니다.

사전 요구 사항:

  • 프로젝트가 포함된 그룹의 Owner 권한이 있거나, 프로젝트가 포함된 개인 네임스페이스의 소유자여야 합니다.

감사 이벤트를 켜려면:

  • GraphQL API로 네임스페이스의 auditEventsEnabled를 true로 설정합니다.

이 설정은 해당 네임스페이스에 직접 속한 프로젝트에만 적용됩니다. 하위 그룹에 있는 프로젝트의 경우 해당 하위 그룹에서 설정을 켭니다.

패키지 감사 이벤트가 표시되는 위치는 프로젝트의 네임스페이스에 따라 다릅니다:

  • 프로젝트가 그룹에 있으면 이벤트는 프로젝트가 아니라 해당 그룹의 감사 이벤트에 표시됩니다.
  • 프로젝트가 개인 네임스페이스에 있으면 이벤트는 프로젝트의 감사 이벤트에 표시됩니다.

자세한 내용은 감사 이벤트 보기를 참고합니다.

기여 수락#

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

형식 상태
Conda 이슈 36891
CRAN 이슈 36892
RPM 에픽 5128
Swift 이슈 12233