7

我有一个私人仓库,我在部署到 Heroku 时尝试访问它。但是,Heroku 不允许我克隆私人仓库,并给我以下错误(如我所料):

Host key verification failed.
       fatal: The remote end hung up unexpectedly
       Git error: command `git clone
       'git@github.com:pr/lm-models.git'
       "/tmp/build_3r0z0znww0zda/vendor/bundle/ruby/1.9.1/cache/bundler/git/lm-models-aab025aaadbe07202b16e1db7505ae1726f8723a"
       --bare --no-hardlinks` in directory /tmp/build_3r0z0znww0zda has failed.
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

我找到了这个,但不想以明文形式显示我的用户名/密码:

将heroku应用程序链接到私人(组织)github repo

4

3 回答 3

6

这对我有用:

  1. 生成Github 访问令牌
  2. 在 requirements.txt 列出私有模块如下:

    git+https://your_user_name:your_git_token@github.com/your_company/your_module.git
    
于 2016-10-15T22:13:42.557 回答
3

Heroku 仅支持使用 Git 开箱即用的 HTTP(S) Basic 身份验证。这很不幸,因为这意味着您需要将您的凭据添加为安装 URL 的一部分,并将其作为纯文本提交到您的依赖项列表中。要让您的应用支持 SSH 密钥,请执行以下操作:

  1. 创建一个新的 SSH 密钥,Heroku 将使用它来访问 GitHub 存储库。选择一个不同的名称,例如id_rsa_heroku
  2. 将密钥的公共部分添加到您的 GitHub 帐户(设置链接)。
  3. 使用heroku-buildpack-ssh-keyheroku buildpacks:add https://github.com/heroku/heroku-buildpack-ssh-key.git -i 1
  4. 将密钥的私有部分设置为 Heroku 应用程序的环境变量:heroku config:set BUILDPACK_SSH_KEY=$(cat ~/.ssh/id_rsa_heroku)

从这一刻起,Heroku 应该能够从您有权访问的任何私有存储库中访问和下载代码。

于 2020-11-02T12:17:10.787 回答
2

您需要在 Gemfile 中使用用户名/密码,或者提供依赖项。你也可以使用 Gemfury(假设它是一个 gem):

于 2013-04-02T02:40:18.850 回答