使用另一个heroku存储库作为heroku服务器的子模块?

时间:2017-01-10 08:05:00

标签: git heroku ssh-keys

我有两个项目,其中一个使用另一个作为子模块。经过大量尝试和失败后,我最终想要将远程子模块移动到与新项目相同的heroku帐户,并认为我可以取消用户授权。

但授权仍无效:

remote: Git submodules detected, installing:
remote: Submodule 'foo' (ssh://git@heroku.com/foo.git) registered for path 'foo'
remote: Cloning into 'foo'...
remote: Host key verification failed.
remote: fatal: Could not read from remote repository.
remote:
remote: Please make sure you have the correct access rights
remote: and the repository exists.

我应该给Heroku什么样的设置?设置heroku ssh密钥似乎不起作用,或者我做错了什么:ssh -vvv heroku.com似乎返回授权。

2 个答案:

答案 0 :(得分:1)

你不想这样做,因为Heroku的Git存储库托管是私有的,需要你的SSH密钥才能工作。

你的子模块工作的原因是你的SSH密钥能够拉下你所有的Heroku Git回购。它不能在Heroku上工作的原因是Heroku环境非常有限。它不会有本地SSH密钥。这意味着无法做到这一点。

您可以做一些事情:

  • 在Github或其他主机上公开您的子模块。
  • 将您的子模块转换为自己的Heroku项目,并公开您从现有Heroku项目中调用的API。
  • 完全摆脱子模块,只需嵌入你的来源。

我意识到这有点烦人,但问题在于你不能在不受信任的环境中使用私有子模块而没有SSH凭据。

答案 1 :(得分:0)

我上周一直试图找到这个问题的解决方案。最后一个选择听起来越来越像我最终的方式。我讨厌将两个单独的回购合并,但我无法找到解决办法。