前几日尝试了Gogs 使用webhook来触发Jenkins构建, 但是今天查看Gogs 的历史webhook的请求,发现gogs会附带发送一些仓库信息的内容,但是Gogs plugin是无法解析这些参数信息的,所以此处用到了Generic Webhook Trigger这个插件.
Jenkins安装Generic Webhook Trigger插件:
打开 系统管理 -> 管理插件 -> 可选插件 ,在右上角的输入框中输入“Generic Webhook Trigger”来筛选插件:
因为我已经安装完了,所以截的是已安装里面的插件名称.
添加Gogs Webhook:
进入仓库页面 -> 仓库设置 -> 管理Web钩子 -> 添加一个新的Gogs Webhook
注意: token 的值在下面设置
启用Generic Webhook Trigger
在装完插件重启Jenkins之后,会在任务里面看到多出一个Generic Webhook Trigger选项,选中.
Post content parameters:
这类变量从 POST 的具体内容中获取,格式支持JSON/XPATH,具体为:
Variable:是变量名
Expression:是变量的获取方式
Value filter:需要过滤的变量内容,一般不填
Default value:变量默认值,一般不填
其中,如果将 Expression 中设置为 $.a.b.c,即可获取到出下面 JSON 中的“value”。
{ "a":{ "b":{ "c":"value" } } }
Header parameters:
这类变量从 Header 中获取,具体为:
Request header:变量名即参数名
Value filter:需要过滤的变量内容,一般不填
需要注意的是,获取到的变量名是小写字母的形式,且将会用 ‘_’ 字符代替 ‘-’ 字符。
Request parameters:
这类变量从 URL 的 Request 参数中获取,具体为:
Request parameter:变量名即参数名
Value filter:需要过滤的变量内容,一般不填
Token:
标识唯一性,只有和gogs中配置的token一致才能成功触发.
如果多个项目的此参数值一样,都会被触发。
打印内容:
提供了三个供日调试打印日志的参数
Silent response 当为true,只返回http 200 状态码,不返回触发结果
Print post content 将 webhook 请求的内容打印到日志上
Print contributed variables 将 提取后的变量打印到日志上
如何对 Webhook 进行过滤:
Generic Webhook Trigger 中 Optional filter 部分即可配置过滤策略。其中:
Expression:设置过滤(通过)的条件,通过正则方式进行判断
Text:带过滤的文本内容,可以使用系统变量(上一部中获取了很多系统变量就可以在这里使用)
测试:
参考文章:
还没有评论,来说两句吧...