루비 젬 API
이 문서는 루비 젬에 대한 API 문서입니다.
GitLab 패키지 레지스트리에서 젬을 업로드하고 설치하는 방법에 대한 지침은 루비 젬 레지스트리 문서를 참조하세요.
루비 젬 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))
젬 파일 다운로드
젬을 다운로드합니다:
GET projects/:id/packages/rubygems/gems/:file_name
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id |
문자열 | 예 | 프로젝트의 ID 또는 전체 경로. |
file_name |
문자열 | 예 |
.gem 파일의 이름. |
curl --header "Authorization:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/gems/my_gem-1.0.0.gem"
출력을 파일에 작성합니다:
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
이라는 이름의 다운로드된 파일을 기록합니다.
의존성 목록 가져오기
젬 목록에 대한 의존성 목록을 가져옵니다:
GET projects/:id/packages/rubygems/api/v1/dependencies
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id |
문자열 | 예 | 프로젝트의 ID 또는 전체 경로. |
gems |
문자열 | 아니오 | 의존성을 가져올 젬의 쉼표로 구분된 목록. |
curl --header "Authorization:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/dependencies?gems=my_gem,foo"
이 엔드포인트는 요청한 젬의 모든 버전의 해시 배열을 반환합니다. 응답이 마샬된 형태이므로 파일에 저장할 수 있습니다. 루비가 설치되어 있는 경우 다음 루비 명령을 사용하여 응답을 읽을 수 있습니다. 이를 위해서는
자격 증명을 ~/.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"))'
[{:name=>”my_gem”, :number=>”0.0.1”, :platform=>”ruby”, :dependencies=>[]},
{:name=>”my_gem”,
:number=>”0.0.3”,
:platform=>”ruby”,
:dependencies=>
[[“dependency_1”, “~> 1.2.3”],
[“dependency_2”, “= 3.0.0”],
[“dependency_3”, “>= 1.0.0”],
[“dependency_4”, “>= 0”]]},
{:name=>”my_gem”,
:number=>”0.0.2”,
:platform=>”ruby”,
:dependencies=>
[[“dependency_1”, “~> 1.2.3”],
[“dependency_2”, “= 3.0.0”],
[“dependency_3”, “>= 1.0.0”],
[“dependency_4”, “>= 0”]]},
{:name=>”foo”,
:number=>”0.0.2”,
:platform=>”ruby”,
:dependencies=>
[“dependency_2”, “= 3.0.0”],
[“dependency_4”, “>= 0”]]}]
```
이것은 현재 디렉토리에 mypkg-1.0-SNAPSHOT.jar
라는 이름의 다운로드된 파일을 기록합니다.
젬 업로드
젬 업로드:
POST projects/:id/packages/rubygems/api/v1/gems
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
문자열 | 예 | 프로젝트의 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"