Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Hubot将Github repo部署到Heroku?_Node.js_Heroku_Github - Fatal编程技术网

Node.js 如何使用Hubot将Github repo部署到Heroku?

Node.js 如何使用Hubot将Github repo部署到Heroku?,node.js,heroku,github,Node.js,Heroku,Github,当他们Hubot时,GitHub说他们用他们的Hubot做的一件事就是部署。我正试图为我的项目做同样的事情,该项目的代码托管在GitHub上,而应用程序本身在Heroku上。我的丈夫也住在Heroku,但我先在本地做所有的测试 我的想法是在tmp中克隆目标repo,在该repo中添加一个远程设备以指向Heroku应用程序,然后运行git push Heroku,或者(像这样)创建两个远程设备并以这种方式推送。当我尝试运行时,我已经让git克隆在本地工作 Exec "cd #{dir}; git

当他们Hubot时,GitHub说他们用他们的Hubot做的一件事就是部署。我正试图为我的项目做同样的事情,该项目的代码托管在GitHub上,而应用程序本身在Heroku上。我的丈夫也住在Heroku,但我先在本地做所有的测试

我的想法是在tmp中克隆目标repo,在该repo中添加一个远程设备以指向Heroku应用程序,然后运行
git push Heroku
,或者(像这样)创建两个远程设备并以这种方式推送。当我尝试运行时,我已经让
git克隆
在本地工作

Exec "cd #{dir}; git remote add #{proj_loc} git@heroku.com:#{heroku_app}.git"
它最终将远程添加到git repo,该git repo存在于我启动的目录
bin/hubot
中,而不是现在存在于tmp中的git repo。我知道dir设置正确,
cd
工作正常,因为我已经运行了

Exec "cd #{dir}; pwd"
结果正是我所期望的。因此,
git-remote
的行为让我感到困惑

有没有人做过类似的事情,或者至少可以告诉我为什么
git remote
没有将远程设备添加到tmp中的temp中,以及如何修复它


我还没有尝试解决1)访问GitHub上的私人回购协议所需的密钥问题;2)部署到Heroku。我会弄清楚我是否能让它工作。

当我听说Github如何使用Hubot时,我也考虑过同样的问题。不过,据猜测,他们将其托管在自己管理的机器上,比如物理机器或VPS,在部署代码时,VPS更像是本地机器。虽然您可能会在Heroku上获得一些信息,但我认为您将在密钥和实际部署方面遇到困难,但我很容易被证明是错误的:)

我创建了一个Java/Play框架应用程序,它可能会满足您的需要:

该应用程序执行以下操作:

  • 从git url克隆(或更新)git回购
  • 为现有Heroku用户创建新的ssh密钥
  • 将密钥添加到用户的帐户
  • 在Heroku上发布新应用程序
  • 将克隆的应用程序推送到Heroku
  • 将另一个用户添加为协作者
  • 将所有权转移给用户
  • 从应用程序中删除原始用户
  • 从原始用户中删除ssh密钥
  • 您可以在:

    我是用我的系统做的。我让hubot通过SSH联系我的构建箱,并运行git pull/deploy命令。deploy命令将向hubot实例发送一个POST有效负载,并将所有状态发布到hubot的聊天客户端。我写了一整篇关于它的博文: