私はherokuで認証されたgitリポジトリを取得しようとしていて、いくつかの問題が発生しました。
理想的には、ここでトークンソリューション を使用できるようにしたいと思います。トークンソリューションが使用できない場合は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
新しいバージョンのgit(v1.7.12)をherokuインスタンスにインストールし、それを使用すると正常に機能します。
$ 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を実行することができましたが.ssh
、httpsとトークンのみを使用することを好むため、これは私たちの状況には理想的ではありません)。