kariaの日記 @ Alice::Diary

ノリツッコミの鳩子がはてなブログ書いちゃうよ

bundle install時にGitHubが認証を求めてきたら環境変数を設定しろ

bundle installを実行したとき、途中でGitHubが認証を求めてくるケースがある。具体的には、GitHubのprivate repoに置かれているソースを直接gemとして利用したい場合である。

つまりGemfileにこういう書かれ方をしてて、 karia/hogefuga がprivate repoなときね。

git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'hogefuga', github: 'karia/hogefuga'

このとき以下のような間違いをよく犯す。

  • GitHubSSHキーが正しく設定されていることを確認する(git_sourceの通りhttpsで取得するのでSSHを確認しても無意味)
  • IDとパスワードの入力プロンプトが出るのでGitHubのIDとパスワードを入れてみる(入力を求められるので「行けるのか?」と期待してしまうが、実際入れてみると「2021年でその機能は廃止された」と表示される)

正解は

である。何度やっても忘れるんだよこれ。というわけでタイトルが全ての記事でした。

参考

bundler.io

bundler.io

BUNDLE_GITHUB__COM っていうダサい環境変数名一体なんなの?と長年思っていたが、ホスト名 github.com に含まれるドットを__に変換するルールによるものだとわかった。

Any . characters in a host name are mapped to a double dash (__) in the corresponding environment variable.

きちんと一次ソースに当たるのは大事。