我一直在尝试在 heroku 上引入一些经过身份验证的 git repos,并遇到了一些问题。
理想情况下,我希望能够在此处使用令牌解决方案, 或者如果令牌解决方案不是,则git pull https://<token>@github.com/username/bar.git
甚至可以接受解决方案。git pull https://username:password@github.com/username/bar.git
但是,似乎 heroku 版本的 git (v1.7.0) 与 https 身份验证的克隆作斗争:
$ heroku run bash
$ git --version
git version 1.7.0
$ git clone https://username:password@github.com/username/bar.git
Initialized empty Git repository in /app/bevry-website/.git/
error: The requested URL returned error: 401 while accessing https://username:password@github.com/username/bar.git/info/refs
fatal: HTTP request failed
在 heroku 实例上安装较新版本的 git (v1.7.12) 并使用它可以正常工作:
$ heroku run bash
$ curl --silent --location http://git-core.googlecode.com/files/git-1.7.12.tar.gz | tar xz; cd git-1.7.12; make NO_TCLTK=YesPlease NO_PERL=YesPlease NO_GETTEXT=YesPlease NO_SVN_TESTS=YesPlease NO_MSGFMT=YesPlease NO_MSGFMT_EXTENDED_OPTIONS=YesPlease prefix=$HOME install; cd ..; rm -Rf git-1.7.12
$ ./bin/git --version
git version 1.7.12
$ ./bin/git clone https://username:password@github.com/username/bar.git
works fine :)
但是,在实例上安装我们自己的 git 版本并不理想,因为编译和安装需要很长时间。
似乎 heroku 不提供任何免费支持,这很不幸,因为我只需要告诉他们升级他们的 git 版本,一切都很好。但是,由于这是不可能的,是否有人对在 heroku 上进行经过身份验证的 https git 克隆有任何建议?(我已经设法通过.ssh
使用 repo 上传一个特殊目录来获得经过身份验证的 ssh,但这对于我们的情况并不理想,因为我们更愿意只使用 https 和令牌)。