パッケージレジストリのRuby gem
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: 実験的機能
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。
プロジェクトのパッケージレジストリにRuby gemをプッシュできます。次に、UIまたはAPIからそれらをダウンロードできます。
これは実験的機能です。この機能の開発に関する詳細は、epic 3200を参照してください。
パッケージレジストリに対して認証する
パッケージレジストリを操作する前に、認証する必要があります。
これを行うには、以下を使用できます:
- スコープが
apiに設定されたパーソナルアクセストークン。 - スコープが
read_package_registryとwrite_package_registryのどちらか、または両方に設定されたデプロイトークン。 - CI/CDジョブトークン。
例:
アクセストークンで認証するには:
~/.gem/credentialsファイルを作成または編集して、以下を追加します:--- https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<token>'
この例では:
<token>は、パーソナルアクセストークンまたはデプロイトークンのトークン値である必要があります。<project_id>は、プロジェクトの概要ページに表示されます。
CI/CDジョブトークンで認証するには:
.gitlab-ci.ymlファイルを作成または編集して、以下を追加します:# assuming a my_gem.gemspec file is present in the repository with the version currently set to 0.0.1 image: ruby run: before_script: - mkdir ~/.gem - echo "---" > ~/.gem/credentials - | echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems: '${CI_JOB_TOKEN}'" >> ~/.gem/credentials - chmod 0600 ~/.gem/credentials # rubygems requires 0600 permissions on the credentials file script: - gem build my_gem - gem push my_gem-0.0.1.gem --host ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygemsGitLabにチェックインする
~/.gem/credentialsファイルでCI_JOB_TOKENを使用することもできます:--- https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'
Ruby gemをプッシュ
前提要件:
- パッケージレジストリで認証する必要があります。
- Ruby gemは3GB以下である必要があります。
これを行うには、次の手順を実行します:
次のようなコマンドを実行します:
gem push my_gem-0.0.1.gem --host <host>この例では、
<host>は認証の設定時に使用したURLです。例:gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/1/packages/rubygems
gemが正常に公開されると、次のようなメッセージが表示されます:
Pushing gem to https://gitlab.example.com/api/v4/projects/1/packages/rubygems...
{"message":"201 Created"}gemはパッケージレジストリに公開され、パッケージとレジストリページに表示されます。GitLabがgemを処理して表示するまでに、最大10分かかる場合があります。
同じ名前またはバージョンのgemをプッシュする
同じ名前とバージョンのパッケージがすでに存在する場合、gemをプッシュできます。両方ともUIで表示およびアクセスできます。
Gemをダウンロード
GitLabパッケージレジストリからRuby gemをインストールできません。ただし、ローカルで使用するためにgemファイルをダウンロードできます。
これを行うには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、デプロイ > パッケージレジストリを選択します。
- パッケージ名とバージョンを選択します。
- アセットで、ダウンロードするRuby gemを選択します。
Ruby gemをダウンロードするには、APIを使用することもできます。