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