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'
このとき以下のような間違いをよく犯す。
- GitHubのSSHキーが正しく設定されていることを確認する(git_sourceの通りhttpsで取得するのでSSHを確認しても無意味)
- IDとパスワードの入力プロンプトが出るのでGitHubのIDとパスワードを入れてみる(入力を求められるので「行けるのか?」と期待してしまうが、実際入れてみると「2021年でその機能は廃止された」と表示される)
正解は
である。何度やっても忘れるんだよこれ。というわけでタイトルが全ての記事でした。
参考
BUNDLE_GITHUB__COM
っていうダサい環境変数名一体なんなの?と長年思っていたが、ホスト名 github.com
に含まれるドットを__に変換するルールによるものだとわかった。
Any . characters in a host name are mapped to a double dash (__) in the corresponding environment variable.
きちんと一次ソースに当たるのは大事。