Heroku вытащить частный репозиторий github

Я пробовал разные подходы к использованию ссылки на частный репозиторий Github в приложении Rails Gemfile.

1) Gemfile:
gem 'my_gem', :git => "https://#{github_user}:#{github_pw}@github.com/me/my_gem.git"

результат от 'git push heroku':

Fetching https://user:pw@github.com/me/my_gem.git
error: The requested URL returned error: 401 while accessing https://user:pw@github.com/me/my_gem.git/info/refs
Git error: command `git clone 'https://user:pw@github.com/me/my_gem.git' "/tmp/build_2wxmqutch8gy7/vendor/bundle/jruby/1.9/cache/bundler/git/my_gem-929bddeee3dd4a564c2689e189190073df01431e" --bare --no-hardlinks` in directory /tmp/build_2wxmqutch8gy7 has failed.
Dependencies installed

затем я нашел эту статью https://help.github.com/articles/creating-an-oauth-token-for-command-line-use и создал токен OAuth.

2) Gemfile:
gem 'my_gem', :git => "https://#{github_oauth_token}@github.com/me/my_gem.git"

результат от 'git push heroku':

Fetching https://0123456789abcdef0123456789abcdef01234567@github.com/me/my_gem.git
Password:

Heroku стойло и подскажите пароль:.

на моей локальной машине так:

git clone https://user:pw@github.com/me/my_gem.git

и

git clone https://0123456789abcdef0123456789abcdef01234567@github.com/me/my_gem.git

работает perfekt!

Local:

# git --version
git version 1.7.9.5

здесь:

# heroku run git --version
git version 1.7.0

2 ответов


Heroku запускает более старую версию Git, которая, к сожалению, не полностью поддерживает часть auth URL-адресов.

Вы можете обойти это путем добавления манекен пароль поставляется GitHub. Поэтому вместо использования:

https://#{github_oauth_token}@github.com/me/my_gem.git

использование:

https://#{github_oauth_token}:x-oauth-basic@github.com/me/my_gem.git

Git Heroku (версия 1.7) не поддерживает использование электронной почты в качестве имени пользователя для репозиториев Github.

вы должны использовать свое имя пользователя Github.

кроме того, git Heroku не поддерживает использование токена oauth.

надеюсь, Heroku скоро обновит свой git, чтобы они могли продолжать делать мою жизнь проще : -)