碼雲webhook node版

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);  

說明

  1. 碼雲的驗證token設置一致即可
    在這裏插入圖片描述

使用

  1. 複製代碼保存爲hook.js
  2. 安裝好node環境,測試通過版本node v10 快捷安裝yum install node(centos)
  3. 安裝pm2 npm install -g pm2
  4. 配置git 編輯.git目錄下面的config文件最下面加上

[credential]
    helper = store

輸入一次賬戶密碼就保存下來了

  1. 服務器端口需要開放,雲服務器需要設置安全組開放
  2. 啓動 pm2 start hook.js
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章