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"