我在我的Ubuntu 14.04实例中运行了一个rails服务器,并且我在github.com上托管了我的代码。对于用户推送到github,我已经设置了一个webhook到我的应用程序,它监听来自github的任何POST调用,并尝试在POST具有所有正确的有效负载时执行ruby脚本gitscript.rb。
不幸的是,剧本没有做一个git pull而且我很难完美地运行它。任何帮助将不胜感激。
下面是我的代码,用于监听webhooks并运行脚本,但脚本中的命令不运行,我拥有ruby脚本所需的所有权限。
def webhooks
push = JSON.parse(request.body.read)
if some_condition_that_should_be_true
logger.info "Yes go ahead and pull"
logger.info "Ran the git pull command" if `cd /home/server && git pull >> cat.txt`
logger.info "Ran the ruby" if `ruby /home/server/gitscript.rb`
logger.info "Last command"
else
logger.info push
end
render :json => { :code => 'Webhooks came good' }, :status => 200
end
我的红宝石脚本在下面,是的,所有权限都是正确的,为了测试我做了777
!/bin/env ruby
cd /home/server && git pull
答案 0 :(得分:0)
运行脚本的用户可能没有git存储库的读/写权限(不是在这里讨论权限,而是关于deploy-keys
的更多信息,它们只是允许用户读取和/或写入的SSH密钥/到远程git仓库。)
您可以git pull
作为在您的服务器上运行此脚本的用户吗?