Json nodejs和gith没有';行不通

Json nodejs和gith没有';行不通,json,node.js,github,webhooks,autodeploy,Json,Node.js,Github,Webhooks,Autodeploy,我正在尝试使用github进行自动部署,我执行此js以拥有一个“服务器”来接收github的钩子,这工作非常出色,但我需要执行一个脚本来下载存储库,但此代码不执行我的hook.sh。我之前没有使用node的经验,所以我在这里迷路了 // Listen on port 9001 var gith = require('gith').create( 9001 ); // Import execFile, to run our bash script var execFile = require('c

我正在尝试使用github进行自动部署,我执行此js以拥有一个“服务器”来接收github的钩子,这工作非常出色,但我需要执行一个脚本来下载存储库,但此代码不执行我的hook.sh。我之前没有使用node的经验,所以我在这里迷路了

// Listen on port 9001
var gith = require('gith').create( 9001 );
// Import execFile, to run our bash script
var execFile = require('child_process').execFile;

gith({
    repo: 'username/autodeploy'
}).on( 'all', function( payload ) {
    if( payload.branch === 'master' )
    {
            // Exec a shell script
            execFile('/root/nodeapp/hook.sh', function(error, stdout, stderr) {
                    // Log success in some manner
                    console.log( 'exec complete' );
            });
    }
});
好的,我是手动测试的,似乎问题出在gith({….这里面的所有东西都不起作用,有人知道吗


多亏了大家

嗯,问题出在

gith({
    repo: 'username/autodeploy'
}).on( 'all', function( payload ) {....
我把它换成了

gith({
    repo: 'username/autodeploy'
}).on( 'file:all', function( payload ) {....

这就解决了我的问题。感谢@mscdex和@alandarev告诉我要测试。

你的
execFile()吗
回调被调用?如果是这样,那么
error.code
stdout
stderr
会说什么?是否将
/root/nodeapp/hook.sh
设置为可执行文件,并以适当的hashbang开头?我不知道如何读取错误,github会向脚本发送请求,脚本会做出响应,但我不知道如何查看i如果出现一个错误ocurr…是的,hook.sh是一个可执行脚本,并且有必要,我直接执行它并做必须做的事情。问题在于这个脚本。感谢您必须创建一个新的临时js文件,并将您的
execFile
代码放在那里,运行该文件并查看代码是否工作。分块调试程序更容易,而不是作为一个整体调试.ok,那么一个包含以下内容的文件?var execFile=require('child_process').execFile;execFile('/root/nodeapp/hook.sh',function(error,stdout,stderr){//Log success in this-ways-console.Log('exec complete');};然后我如何执行它?好的,我测试它,然后工作,做它必须做的事情。所以我认为问题在于有效载荷,谢谢mscdex和Alandarov。你能看到gith的错误吗?