루비 젬 API
Tier: Free, Premium, Ultimate
Offering: Self-managed, GitLab Dedicated
이 문서는 루비 젬에 대한 API 문서입니다.
이 API는 루비 젬 및 버들러 패키지 관리자 클라이언트에서 사용되며 일반적으로 매뉴얼으로 사용하기 위한 것이 아닙니다. 이 API는 개발 중이며 한정적인 기능으로 인해 프로덕션 환경에 사용하기에 준비되지 않았습니다.
GitLab 패키지 레지스트리에서 젬을 업로드하고 설치하는 방법은 루비 젬 레지스트리 문서를 참조하세요.
이 엔드포인트는 표준 API 인증 방법을 준수하지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 루비 젬 레지스트리 문서를 참조하세요. 문서화되지 않은 인증 방법은 향후에 제거될 수 있습니다.
루비 젬 API 활성화
GitLab의 루비 젬 API는 기본적으로 비활성화된 피처 플래그로 설정되어 있습니다. GitLab Rails 콘솔에 액세스 권한이 있는 GitLab 관리자는 이 API를 인스턴스에 대해 활성화할 수 있습니다.
활성화하려면:
Feature.enable(:rubygem_packages)
비활성화하려면:
Feature.disable(:rubygem_packages)
특정 프로젝트에 대해 활성화 또는 비활성화하려면:
Feature.enable(:rubygem_packages, Project.find(1))
Feature.disable(:rubygem_packages, Project.find(2))
젬 파일 다운로드
- GitLab 13.10에서 소개됨.
젬 다운로드:
GET projects/:id/packages/rubygems/gems/:file_name
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 문자열 | 예 | 프로젝트의 ID 또는 전체 경로. |
file_name
| 문자열 | 예 |
.gem 파일의 이름.
|
curl --header "Authorization:<개인_액세스_토큰>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/gems/my_gem-1.0.0.gem"
파일로 출력 작성:
curl --header "Authorization:<개인_액세스_토큰>" "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에서 소개됨.
여러 젬의 의존성 디렉터리을 가져옵니다:
GET projects/:id/packages/rubygems/api/v1/dependencies
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 문자열 | 예 | 프로젝트의 ID 또는 전체 경로. |
gems
| 문자열 | 아니오 | 의존성을 가져올 젬의 쉼표로 구분된 디렉터리. |
curl --header "Authorization:<개인_액세스_토큰>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/dependencies?gems=my_gem,foo"
이 엔드포인트는 요청된 젬의 모든 버전에 대한 해시 배열을 반환합니다. 응답은 해싱되어 있으므로 파일에 저장할 수 있습니다. 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
| 문자열 | 예 | 프로젝트의 ID 또는 전체 경로. |
curl --request POST \
--upload-file path/to/my_gem_file.gem \
--header "Authorization:<개인_액세스_토큰>" \
"https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/gems"