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
Ruby Heroku Post hook处理器的工作原理,以及如何学习更多关于构建此类动物的知识_Ruby_Heroku_Github_Git Post Receive - Fatal编程技术网

Ruby Heroku Post hook处理器的工作原理,以及如何学习更多关于构建此类动物的知识

Ruby Heroku Post hook处理器的工作原理,以及如何学习更多关于构建此类动物的知识,ruby,heroku,github,git-post-receive,Ruby,Heroku,Github,Git Post Receive,我最近部署了一个ruby应用程序,它利用一些原生heroku特性通过github运行提交后钩子 现在我很好奇它是如何工作的,我可能会如何构建一个类似于heroku的低级插件,可能是另一种语言 课程内容的简要总结: 基本上,这个ruby程序: 每次我推到github时自动部署我的heroku 仅由4个参数配置(主要参数是heroku API密钥) 完全可以开箱即用:无需与heroku进行具体的混泥土处理。我只是将此应用程序部署为一个新的heroku应用程序,并将post recieve挂钩添加

我最近部署了一个ruby应用程序,它利用一些原生heroku特性通过github运行提交后钩子

现在我很好奇它是如何工作的,我可能会如何构建一个类似于heroku的低级插件,可能是另一种语言

课程内容的简要总结:

基本上,这个ruby程序:

  • 每次我推到github时自动部署我的heroku

  • 仅由4个参数配置(主要参数是heroku API密钥)

  • 完全可以开箱即用:无需与heroku进行具体的混泥土处理。我只是将此应用程序部署为一个新的heroku应用程序,并将post recieve挂钩添加到github,然后发现heroku在每次我提交给github时都会自动为我构建应用程序

我的问题是,这个ruby脚本(https://github.com/ajlai/github-heroku-pusher/blob/master/web.rb)正在努力将此github驱动到heroku自动部署服务

  • 它似乎运行一个shell命令。希罗库允许这样做吗

  • github的实际“git拉动”发生在哪里?我看到了一个“GitPusher”对象,但不清楚该对象是在哪里定义的(我怀疑它是静态导入到类中的ruby gem对象,但我不知道它可能来自哪个gem)

  • 我想知道,创建这个项目的勇敢的灵魂在哪里找到了为Heroku构建这样一个低级钩子所需的文档。任何关于如何构建同一类的定制工作者挂钩(最好使用Ruby以外的语言)的提示都将不胜感激


源代码很简单,也不是太大或太复杂。我想说,它只是在重新推送到heroku(遥控器名为heroku)。。。这就是你在本地,从内存中做的。这不同于对heroku进行炮击并提取。@jayunit100,伙计,源代码(在lib中)总共有70行,超过3个文件。读一读;)抱歉让这个问题看起来微不足道:)。。。。我的问题不是“代码在做什么”。。。但是“它是如何工作的”。特别是-(1)关于GitPusher对象-它是如何工作的以及它来自哪里,(2)heroku文档和安全设置将如何用于让此源代码工作。在中,当您看到实际上正在执行bash命令的
`rm-r{local_folder}`
时。是的,看起来heroku让你管理他们。试试heroku run bash