InfoGrab Docs

Ruby gems API

요약

이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다. 이 API는 Ruby gems 및 Bundler 패키지 관리자 클라이언트가 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.

이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다.

Warning

이 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"

Ruby gems API

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다. 이 API는 Ruby gems 및 Bundler 패키지 관리자 클라이언트가 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.

이 API를 사용하여 Ruby gems 및 Bundler 패키지 관리자 클라이언트와 상호 작용합니다.

Warning

이 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"