Generic Webhook Trigger 是一款Jenkins插件,安装后会暴露出来一个公共API,该插件接收到 JSON 或 XML 的 HTTP POST 请求后,根据咱们配置的规则决定触发哪一个Jenkins项目。
一、安装Generic Webhook Trigger插件
首先jenkins需要打开系统管理>管理插件>可选插件,搜索Generic Webhook Trigger插件,直接点击安装即可,安装成功后如下图所示:
从下图所示插件的介绍可以看出
这个插件是通用的,支持GitHub,Gitlab,jira等,也支持gogs。
二、Jenkins中配置Generic Webhook Trigger
插件安装后在Jenkins的Job配置页面的Build Triggers下会多出一个"Generic Webhook Trigger"选项, 勾选后有不少参数配置
Post content parameters
这类变量从 POST 的具体内容中获取,格式支持JSON/XPATH,具体为:
Variable:是变量名
Expression:是变量的获取方式
Value filter:需要过滤的变量内容,一般不填
Default value:变量默认值,一般不填
Header parameters:
这类变量从 Header 中获取,具体为:
Request header:变量名即参数名
Value filter:需要过滤的变量内容,一般不填
需要注意的是,获取到的变量名是小写字母的形式,且将会用 ‘_’ 字符代替 ‘-’ 字符。
Request parameters
这类变量从 URL 的 Request 参数中获取,具体为:
Request parameter:变量名即参数名
Value filter:需要过滤的变量内容,一般不填
Token
标识唯一性,只有和gogs、gitlab等中webhook配置的token一致才能成功触发.
如果多个项目的此参数值一样,都会被触发。
打印内容
提供了三个供日调试打印日志的参数
Silent response 当为true,只返回http 200 状态码,不返回触发结果
Print post content 将 webhook 请求的内容打印到日志上
Print contributed variables 将 提取后的变量打印到日志上
Optional filter
配置过滤策略,其中:
Expression:设置过滤(通过)的条件,通过正则方式进行判断
Text:带过滤的文本内容,可以使用系统变量(上一部中获取了很多系统变量就可以在这里使用)
三、Gitlib、Gogs中配置Webhook(Web钩子)
url通用地址:
http://<jenkins地址:端口号>/generic-webhook-trigger/invoke
带token地址
http://<jenkins地址:端口号>/generic-webhook-trigger/invoke?token=<Jenkins中配置的token>