webhook+jenkins实现分支监控(邮件+调用外部http请求)

需求:对于特殊分支上的push操作需要有监控提醒,现在代码仓库用的是gitlab。

假设:大家看这篇文章的时候对于gitlab已经有一些

实现:

1. 去gitlab上设置一个webhook的链接,关联到对应的jenkins项目。

    webhook+jenkins实现分支监控(邮件+调用外部http请求)

链接填写后,点击add webhooks。添加成功后下面列表会有链接,但这里不一定就可以关联成功。

点击下面的test,gitlab会去请求jenkins链接,如果成功返回200;如果返回403,一般是jenkins的权限问题。

webhook+jenkins实现分支监控(邮件+调用外部http请求)

这里取消勾选,wehbook test一般就可以了。如果还是不行,可以再自己搜素一下,答案很多。不要懒==

到此,gitlab需要做的工作就已经完成了。

2.jenkins相关操作:

  1.插件插件插件!!

     首先你得有一个管理员账号!

     git hook; http request(如果不打算调用第三方接口可以不装);Editable Email Notification(用于自定义邮件模板)

     刚开始安装git hook插件的时候,莫名报错,一直fail。后来重启后,再安装就可以了。不知道为啥, 但重启大法就是生效了。

  2. jenkins配置

     webhook+jenkins实现分支监控(邮件+调用外部http请求)

  第一个框填写gitlab项目的地址;第二个框填你自己想监控的分支。

  3.配置通知格式

     http请求(http request插件安装好)

      webhook+jenkins实现分支监控(邮件+调用外部http请求)

  几点注意事项:

   1.目前utf-8的编码只能通过custom headers来指定

   2.我之前遇到过一个很头疼的问题,Body里只要传了中文,解析出来就是问号,我编码设置的也正常。搞了很久==,后来升级了下插件版本就可以了,一般新下载的都没有问题,有问题的可能是之前有下载过没有更新的。

   3. body里如果想传一些全局变量,比如JOB_NAME是可以的,但是像commit_author,change并不能拿到,这点也让我很头疼,目前还没有解决。如果有小伙伴知道解法,欢迎赐教!

4. 配置邮件发送

    不得不说,Editable Email Notification 这个插件还是很强大的。你几乎 can do anything you want.

    可以在content token reference这里查询提供的变量。

     webhook+jenkins实现分支监控(邮件+调用外部http请求)


       邮件内容是html格式的,网上模板很多,自己找吧,啊,不想写了,就先这些。有问题欢迎讨论。