Ruby gems API

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

이 문서는 Ruby gems에 대한 API 문서입니다.

경고:
이 API는 Ruby gems 및 Bundler 패키지 매니저 클라이언트에서 사용되며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 API는 개발 중이며 제한된 기능으로 인해 프로덕션 환경에서 사용하기에 적합하지 않습니다.

GitLab 패키지 레지스트리에서 gem을 업로드하고 설치하는 방법에 대한 지침은 Ruby gems 레지스트리 문서를 참조하십시오.

참고:
이 엔드포인트들은 표준 API 인증 방법을 준수하지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 Ruby gems 레지스트리 문서를 참조하십시오. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

Ruby gems API 활성화

GitLab의 Ruby gems API는 기본적으로 비활성화된 기능 플래그 뒤에 있습니다. GitLab Rails 콘솔에 액세스 할 수있는 관리자는 이 API를 활성화할 수 있습니다.

활성화 방법: ruby Feature.enable(:rubygem_packages)

비활성화 방법: ruby Feature.disable(:rubygem_packages)

특정 프로젝트에 대해 활성화 또는 비활성화하는 방법: ruby Feature.enable(:rubygem_packages, Project.find(1)) Feature.disable(:rubygem_packages, Project.find(2))

gem 파일 다운로드

  • GitLab 13.10에서 소개되었습니다.

gem을 다운로드합니다: plaintext GET projects/:id/packages/rubygems/gems/:file_name

속성 유형 필수 설명
id string yes 프로젝트의 ID 또는 전체 경로.
file_name string yes .gem 파일의 이름
curl --header "Authorization:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/gems/my_gem-1.0.0.gem"

파일을 다운로드하여 출력에 기록합니다: shell curl --header "Authorization:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/gems/my_gem-1.0.0.gem" >> my_gem-1.0.0.gem

다운로드 된 파일이 현재 디렉토리에 my_gem-1.0.0.gem으로 기록됩니다.

종속성 목록 가져오기

  • GitLab 13.10에서 소개되었습니다.

여러 gem에 대한 종속성 목록을 가져옵니다: plaintext GET projects/:id/packages/rubygems/api/v1/dependencies

속성 유형 필수 설명
id string yes 프로젝트의 ID 또는 전체 경로.
gems string no 종속성을 가져올 gem의 쉼표로 구분된 목록.
curl --header "Authorization:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/dependencies?gems=my_gem,foo"

이 엔드포인트는 요청 된 gem의 모든 버전에 대한 해시 배열을 반환합니다. 응답이 해싱되어 있기 때문에 파일에 저장할 수 있습니다. Ruby가 설치되어 있으면 다음 Ruby 명령을 사용하여 응답을 읽을 수 있습니다. 이 작업을 수행하려면 ~/.gem/credentials에 자격 증명을 설정해야합니다.:

$ ruby -ropen-uri -rpp -e \
  'pp Marshal.load(open("https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/dependencies?gems=my_gem,rails,foo"))'

다운로드 된 파일이 현재 디렉토리에 mypkg-1.0-SNAPSHOT.jar으로 기록됩니다.

젬 업로드

  • GitLab 13.11에 도입되었습니다.

젬을 업로드합니다:

POST projects/:id/packages/rubygems/api/v1/gems
속성 유형 필수 설명
id string yes 프로젝트의 ID 또는 전체 경로
curl --request POST \
     --upload-file path/to/my_gem_file.gem \
     --header "Authorization:<personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/gems"