jenkins 如何仅在合并时触发gitlab webhook

kcwpcxri  于 2023-01-08  发布在  Jenkins
关注(0)|答案(1)|浏览(388)

先谢谢你的帮助,
我目前有一个Gitlab Webhook成功地触发了Jenkins作业的'merge request events'选项:enter image description here
但是,这会为合并请求的每个阶段触发Jenkins作业,因此,无论何时创建、更新、合并和关闭请求,都会触发URL,并为每个阶段运行作业。
是否可以将Webhook限制为在合并批准时触发(因此仅在按下合并按钮时触发)。enter image description here
Webhook有效负载在“action”标签下的每个阶段传递,但只关心“merged”操作。2至于请求的创建、更新或关闭,我不需要在这些阶段运行作业。
..我已经尝试在Jenkins端解决这个问题-我正在使用Generic Webhook触发器插件,并为触发器传入JSON有效负载-因此我可以根据发送的“action”值来操作作业。
然而,这是不够的,因为Gitlab Webhook将始终在每个“合并事件”从Gitlab端触发,导致多次调用Jenkins作业。

hsgswve4

hsgswve41#

我已经找到了答案,这是在通用的Webhook触发器插件的方式来。
因为我已经从Gitlab Webhook有效负载中提取了'action'变量:
adding Json payload variable
现在我可以将此变量添加到同一Jenkins插件中的“可选过滤器”中:
use the variable as a filter with the relevant expression
这里我可以重用merge操作变量并查找传入的“merge”值。
现在,我的作业将只运行,如果这个表达式,如果在变量中找到我拉虽然。
我还可以在“可选过滤器”中添加多个变量,使它们依赖于传入的表达式。

相关问题