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

パッケージレジストリのRuby gem

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: 実験的機能

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。

プロジェクトのパッケージレジストリにRuby gemをプッシュできます。次に、UIまたはAPIからそれらをダウンロードできます。

これは実験的機能です。この機能の開発に関する詳細は、epic 3200を参照してください。

パッケージレジストリに対して認証する

パッケージレジストリを操作する前に、認証する必要があります。

これを行うには、以下を使用できます:

例:

アクセストークンで認証するには:

  • ~/.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/rubygems

    GitLabにチェックインする~/.gem/credentialsファイルでCI_JOB_TOKENを使用することもできます:

    ---
    https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'

Ruby gemをプッシュ

前提要件:

これを行うには、次の手順を実行します:

  • 次のようなコマンドを実行します:

    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ファイルをダウンロードできます。

これを行うには、次の手順を実行します:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左側のサイドバーで、デプロイ > パッケージレジストリを選択します。
  3. パッケージ名とバージョンを選択します。
  4. アセットで、ダウンロードするRuby gemを選択します。

Ruby gemをダウンロードするには、APIを使用することもできます。