正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Ruby gem

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

これはRuby gemのドキュメントです。

このは、Ruby gemとBundlerパッケージマネージャークライアントで使用され、通常、手動での消費を意図したものではありません。このは開発中であり、機能が制限されているため、本番環境での使用には適していません。

GitLabパッケージレジストリからgemをアップロードおよびインストールする方法については、Ruby gemレジストリドキュメントを参照してください。

これらのエンドポイントは、標準のAPI認証方式に準拠していません。どのヘッダーとトークンタイプがサポートされているかの詳細については、Ruby gemレジストリドキュメントを参照してください。記載されていない認証方法は、将来削除される可能性があります。

Ruby gemを有効にする

GitLabのRuby gemは、デフォルトで無効になっている機能フラグの背後にあります。GitLab Railsコンソールへのアクセス権を持つGitLabの管理者は、インスタンスのこのを有効にできます。

有効にするには、次の手順に従います:

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文字列はいプロジェクトのIDまたはフルパス。
file_name文字列はい.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のリストの依存のリストをフェッチします:

GET projects/:id/packages/rubygems/api/v1/dependencies
属性必須説明
id文字列はいプロジェクトのIDまたはフルパス。
gems文字列いいえ依存をフェッチするための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"

このエンドポイントは、リクエストされた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"))'

[{: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に書き込まれます。

gemをアップロード

gemをアップロード:

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>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/rubygems/api/v1/gems"