Ruby gems API
Offering: GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다. 이 API는 Ruby gems 및 Bundler 패키지 관리자 클라이언트가 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.
이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다.
이 API는 Ruby gems 및 Bundler 패키지 관리자 클라이언트가 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 API는 개발 중이며 기능이 제한되어 프로덕션 사용에 준비되지 않았습니다.
이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 Ruby gems 레지스트리 문서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.
Ruby gems API 활성화#
GitLab의 Ruby gems 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))
gem 파일 다운로드#
프로젝트에 대한 지정된 gem 파일을 다운로드합니다.
GET projects/:id/packages/rubygems/gems/:file_name
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
file_name |
string | 예 | .gem 파일의 이름. |
curl --header "Authorization:<personal_access_token>" \
--url "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에 기록됩니다.
의존성 조회#
지정된 gem의 의존성 목록을 조회합니다.
응답은 요청된 gem의 모든 버전에 대한 해시의 마샬링된 배열입니다. 응답이 마샬링되어 있으므로 파일에 저장할 수 있습니다.
GET projects/:id/packages/rubygems/api/v1/dependencies
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
gems |
string | 아니오 | 의존성을 가져올 gem의 쉼표로 구분된 목록. |
curl --header "Authorization:<personal_access_token>" \
--url "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(URI.open("https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/dependencies?gems=my_gem,rails,foo", "Authorization" => <personal_access_token>))'
[{: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"]]}]
gem 업로드#
지정된 프로젝트에 gem을 업로드합니다.
POST projects/:id/packages/rubygems/api/v1/gems
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
curl --request POST \
--upload-file path/to/my_gem_file.gem \
--header "Authorization:<personal_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/gems"
