패키지 레지스트리의 Ruby gems
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 기능의 가용성은 기능 플래그로 제어됩니다. Ruby gems을 프로젝트의 패키지 레지스트리에 게시할 수 있습니다. 이 기능은 실험입니다. 패키지 레지스트리와 상호 작용하기 전에 인증해야 합니다. 이를 위해 다음을 사용할 수 있습니다:
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요. 이 기능은 테스트용으로 사용 가능하지만 프로덕션 사용에는 준비되지 않았습니다.
Ruby gems을 프로젝트의 패키지 레지스트리에 게시할 수 있습니다. 그런 다음 UI 또는 API를 사용하여 다운로드할 수 있습니다.
이 기능은 실험입니다. 이 기능 개발에 대한 자세한 내용은 에픽 3200을 참조하세요.
패키지 레지스트리 인증#
패키지 레지스트리와 상호 작용하기 전에 인증해야 합니다.
이를 위해 다음을 사용할 수 있습니다:
- 범위가
api로 설정된 개인 액세스 토큰. - 범위가
read_package_registry,write_package_registry또는 둘 다로 설정된 배포 토큰. - CI/CD 작업 토큰.
예를 들어:
액세스 토큰으로 인증하려면:
-
~/.gem/credentials파일을 생성하거나 편집하고 다음을 추가합니다:--- https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<token>'
이 예시에서:
<token>은 개인 액세스 토큰 또는 배포 토큰의 토큰 값이어야 합니다.<project_id>는 프로젝트 개요 페이지에 표시됩니다.
CI/CD 작업 토큰으로 인증하려면:
-
.gitlab-ci.yml파일을 생성하거나 편집하고 다음을 추가합니다:# assuming a my_gem.gemspec file is present in the repository with the version currently set to 0.0.1 image: ruby run: before_script: - mkdir ~/.gem - echo "---" > ~/.gem/credentials - | echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems: '${CI_JOB_TOKEN}'" >> ~/.gem/credentials - chmod 0600 ~/.gem/credentials # rubygems requires 0600 permissions on the credentials file script: - gem build my_gem - gem push my_gem-0.0.1.gem --host ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygemsGitLab에 체크인하는
~/.gem/credentials파일에서CI_JOB_TOKEN을 사용할 수도 있습니다:--- https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'
Ruby gem 푸시#
사전 조건:
- 패키지 레지스트리 인증이 필요합니다.
- Ruby gem은 3 GB 이하여야 합니다.
이를 위해:
-
다음과 같은 명령을 실행합니다:
gem push my_gem-0.0.1.gem --host <host>이 예시에서
<host>는 인증을 설정할 때 사용한 URL입니다. 예를 들어:gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/1/packages/rubygems
gem이 성공적으로 게시되면 다음과 같은 메시지가 표시됩니다:
Pushing gem to https://gitlab.example.com/api/v4/projects/1/packages/rubygems...
{"message":"201 Created"}
gem이 패키지 레지스트리에 게시되고 패키지 및 레지스트리 페이지에 표시됩니다. GitLab이 gem을 처리하고 표시하는 데 최대 10분이 걸릴 수 있습니다.
동일한 이름 또는 버전의 gems 푸시#
동일한 이름과 버전의 패키지가 이미 존재하는 경우에도 gem을 푸시할 수 있습니다. 둘 다 UI에서 표시되고 액세스할 수 있습니다.
Ruby gem 삭제#
사전 조건:
- Maintainer 또는 Owner 역할이 있어야 합니다.
패키지를 삭제하기 전에 관련 보안 위험을 이해하고 있는지 확인하세요.
패키지를 삭제하려면 다음 중 하나를 사용합니다:
gems 다운로드#
GitLab 패키지 레지스트리에서 Ruby gems를 설치할 수 없습니다. 그러나 로컬에서 사용하기 위해 gem 파일을 다운로드할 수 있습니다.
이를 위해:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 배포 > 패키지 레지스트리를 선택합니다.
- 패키지 이름과 버전을 선택합니다.
- 자산 아래에서 다운로드하려는 Ruby gem을 선택합니다.
Ruby gems를 다운로드하려면 API를 사용할 수도 있습니다.
