将Heroku应用链接到私有(组织)GitHub仓库

4
在本地工作时,将更改推送到Heroku可以正常运行应用程序。但是,我在将Heroku应用程序链接到Github上的私人存储库时遇到了问题。
当前配置大致如下:
git@github.com:{Organization}/{project}.git

我应该在哪里配置私有仓库的用户名和密码?

我已经尝试过(即使这不是首选方式)

username:password@github.com/{organization}/{project}.git

我需要关于此事的任何指引。 编辑: 我没提到我是在Heroku的应用设置中进行设置的。

你能明确一下你所说的“链接”Github和Heroku是什么意思吗?你期望发生什么? - nickgrim
2个回答

0
 git@github.com:{Organization}/{project}.git

这是一个ssh地址,身份验证由公钥/私钥管理:请确保您的公钥已发布在该组织的协作者密钥中。
这里没有“用户名”或“密码”。

username:password@github.com/{organization}/{project}.git

如果您将该远程地址使用为HTTPS地址,则可能是正确的。


请注意,Honza Javorek在2020年11月的文章 "How do I access a private github repo from heroku?" 中提到:

Heroku只支持HTTP(S)基本认证与Git。这是不幸的,因为这意味着您需要将凭据添加到安装URL中,并将其作为明文提交到依赖列表中。

他建议创建一个新的GitHub SSH密钥并按照heroku-buildpack-ssh-key的过程操作:

heroku buildpacks:add https://github.com/heroku/heroku-buildpack-ssh-key.git -i 1
heroku config:set BUILDPACK_SSH_KEY=$(cat ~/.ssh/id_rsa_heroku)

1
如果我在我的机器上设置ssh地址,那么在heroku应用程序设置中设置它有什么帮助呢?我试图理解整个过程是如何工作的。Heroku是否会代表我将代码推送到GitHub,还是我的SSH客户端将其推送到Heroku GitHub和我的私人GitHub? - BinnyG
1
@BinnyG 好的,请注意你提到的第二个地址是 https,而不是 ssh。推送时将使用附加到远程 GitHub 存储库地址的身份验证。如果您的应用程序是在本地工作站上开发的,则可以将其推送到 Heroku(如 https://devcenter.heroku.com/articles/git),然后再推送到 GitHub 存储库(私有或公共)。 - VonC
感谢您的快速和耐心回复。我已经理解了https部分。如果我理解正确,我猜你是说我必须手动将它独立地推送到Heroku和我的私人/公共Github存储库中。这很有道理,我可以接受,但我不明白Heroku上的应用程序设置部分。那怎么帮助我? - BinnyG
@BinnyG,由于我不了解“Heroku上的应用程序设置”的具体情况,所以我暂时还不知道。我的观点只是你可以将代码同时推送到Heroku和GitHub(不涉及推送什么的细节)。请注意:您可以同时推送到两个存储库(https://dev59.com/cXRA5IYBdhLWcg3wuAcp#3195446) - VonC
Heroku应用程序设置下有一个设置,看起来像这样。 [GitHub存储库: 将您的应用程序链接到GitHub存储库以在活动日志中查看提交差异。] - BinnyG
@BinnyG 好的,我不知道。这在Heroku文档中吗?https://dev59.com/hlnUa4cB1Zd3GeqPfvyC和https://dev59.com/z3E95IYBdhLWcg3wGqEH都建议Heroku只是像GitHub一样的另一个远程仓库。 - VonC

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接