패키지 레지스트리의 Ruby gems
GitLab v19.2Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 기능의 가용성은 기능 플래그로 제어됩니다. Ruby gems을 프로젝트의 패키지 레지스트리에 게시할 수 있습니다. 이 기능은 실험입니다. 패키지 레지스트리와 상호 작용하기 전에 인증해야 합니다. 이를 위해 다음을 사용할 수 있습니다:
Status: Experiment
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요. 이 기능은 테스트용으로 사용 가능하지만 프로덕션 사용에는 준비되지 않았습니다.
Ruby gems을 프로젝트의 패키지 레지스트리에 게시할 수 있습니다. 그런 다음 UI 또는 API를 사용하여 다운로드할 수 있습니다.
이 기능은 실험입니다. 이 기능 개발에 대한 자세한 내용은 에픽 3200을 참조하세요.
패키지 레지스트리 인증#
패키지 레지스트리와 상호 작용하기 전에 인증해야 합니다.
이를 위해 다음을 사용할 수 있습니다:
예를 들어:
액세스 토큰으로 인증하려면:
~/.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/rubygems
GitLab에 체크인하는 ~/.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 권한이 있어야 합니다.
패키지를 삭제하기 전에 관련 보안 위험을 이해하고 있는지 확인하세요.
패키지를 삭제하려면 다음 중 하나를 사용합니다:
Ruby gem 설치#
사전 조건:
- 패키지 레지스트리 인증이 필요합니다.
gem을 설치하려면 HTTP Basic 인증으로 소스 URL에 자격 증명을 전달합니다.
사용자 이름으로 __token__을 사용하고, 개인 액세스 토큰, 배포 토큰 또는 CI/CD 작업 토큰을 비밀번호로 사용합니다.
다음 예시에서:
-
<token>은 개인 액세스 토큰, 배포 토큰 또는 CI/CD 작업 토큰입니다. -
<project_id>는 프로젝트 개요 페이지에 표시됩니다.
다음과 같은 명령을 실행합니다:
gem install my_gem --source "https://__token__:<token>@gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems"
Gemfile에 source 블록을 추가합니다:
source "https://__token__:<token>@gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems" do
gem "my_gem"
end
gem 파일 다운로드#
설치하지 않고 로컬에서 사용하기 위해 gem 파일을 다운로드하려면:
-
상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 배포 > 패키지 레지스트리를 선택합니다.
-
패키지 이름과 버전을 선택합니다.
-
자산 아래에서 다운로드하려는 Ruby gem을 선택합니다.
gem 파일을 다운로드하려면 API를 사용할 수도 있습니다.