Help us understand the problem. What is going on with this article?

GitHubのプライベートリポジトリのgemをbundle installする

More than 3 years have passed since last update.

結論

bundler 1.11以上で export BUNDLE_GITHUB__COM=<username>:<personal access token> する

補足

諸般の事情でプライベートリポジトリで管理したいgemがある場合、bundle installするにはどのようにすればよいのか。

ぐぐると、こんなかんじで、GitHubのuser/passwordやpersonal access tokenを環境変数で渡す例が見つかるんですが、

How can I specify a gem to pull from a private github repository?

gem 'my_gem', :git => 'https://my_username:my_password@github.com/my_github_account/my_repo.git', :ref => 'revision_no'

Building a project with private gems

gem 'ventana', git: "https://#{ENV['GITHUB_TOKEN']}:x-oauth-basic@github.com/thoughtbot/ventana.git"

この方法は、Gemfile.lockにパスワードやトークンが残ってしまうので、セキュリティ的には片手落ちでよくありません。

もうちょっと調べてみると、bundler 1.11以上であれば、Gemfileに書かなくても環境変数から読んでくれるようになってました。

https://github.com/bundler/bundler/pull/3898

github.comにホストしている場合は、 BUNDLE_GITHUB__COM という環境変数でユーザ名とパーソナルアクセストークンをexportしておくと見てくれます。

export BUNDLE_GITHUB__COM=<username>:<personal access token>

試してないですが、github.com以外もドメインに対応した同じルールで環境変数を見てくれるみたい。
あとbundle configにセットする方法もある。bundlerの公式ドキュメントは以下をどうぞ。

http://bundler.io/man/bundle-config.1.html#CONFIGURATION-KEYS

crowdworks
21世紀の新しいワークスタイルを提供する日本最大級のクラウドソーシング「クラウドワークス」のエンジニアチームです!
https://crowdworks.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away