为了账号安全,请及时绑定邮箱和手机立即绑定

尝试Coding.net的Webhook

Coding或者GitHub上都有Webhook这个功能,以前不知道这个有什么用,今天看到一篇关于Webhook的文章,一时兴起就尝试Coding上的Webhook(主要原因是GitHub上的关于Webhook的文档看不太懂)。

什么是Webhook?

Webhook 允许第三方应用监听 Coding.net 上的特定事件,在这些事件发生时通过 HTTP POST 方式通知( 超时5秒) 到第三方应用指定的 Web URL。WebHook 可方便用户实现自动部署,自动测试,自动打包,监控项目变化等。

写了几遍,感觉自己解释不清楚,所以直接复制Coding官方文档中的一段话。

Coding的Webhook事件

Ping 
Push
Member
Task
Topic
Document
Star
MR/PR

Webhook中的每个POST请求都包含特殊的Header

Header 说明
X-Coding-Event 事件名(具体每个事件对应的 event 就是上面事件列表的事件名字)
User-Agent Coding.net Hook

附上测试代码吧

等我研究透彻了,在写一篇详细的文章给大家。

var express = require('express');
var bodyParser = require('body-parser');
var process = require('child_process');
var app = express();

app.use(bodyParser.json()); 


app.post('/webhook', function(req,res){
   
    if('xxx' === req.body['token'] ){
         console.log(req.headers['user-agent']);
        //console.log(req.body.event);
    process.exec('git pull origin master', {'cwd':'/root/whtest'},
            function (error, stdout, stderr) {
                console.log('stdout========================\n' + stdout);
                console.log('stderr========================\n' + stderr);
                if (error !== null) {
                    res.send('<pre>fail!!!\n' + stdout + error + '</pre>');
                } else {
                    res.send('<pre>done!!!\n' + stdout + '</pre>');
                }
            });
    } else {
        console.log('failed token')
        res.send('<pre>token不正确?</pre>');
    }
});

app.set('port', 9000);

var server = app.listen(9000, function() {
    console.log('Listening on port %d', server.address().port);
})

作者:小忆
未经作者允许严禁转载

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
9
获赞与收藏
71

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消