const http = require('http');
const passwd = '123456'; //见说明1
const path = '/home/www/omange'; //配置需要拉取的路径
const process = require('child_process');
const port = 8888; // 服务器端口
const server = http.createServer((req, res) => {
});
server.on('clientError', (err, socket) => {
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});
server.on('request',function(r,s){
let headers = r.headers;
let token =headers['x-gitee-token'];
let userAgent = headers['user-agent'];
let event = headers['x-gitee-event'];
if (headers && token == passwd && userAgent == "git-oschina-hook" && event == "Push Hook")
{
process.exec(`cd ${path} && git pull`,function (error, stdout, stderr) {
if (error !== null) {
console.log('exec error: ' + error);
s.write('-1')
}
console.log(stdout);
});
s.write('1');
}
else
{
s.write('0');
}
});
server.listen(port);
说明
- 码云的验证token设置一致即可
使用
- 复制代码保存为hook.js
- 安装好node环境,测试通过版本node v10 快捷安装yum install node(centos)
- 安装pm2 npm install -g pm2
- 配置git 编辑.git目录下面的config文件最下面加上
[credential]
helper = store
输入一次账户密码就保存下来了
- 服务器端口需要开放,云服务器需要设置安全组开放
- 启动 pm2 start hook.js