首页 > 解决方案 > 无法过滤 jenkins 中的 github webhook 触发器

问题描述

只有在主分支上发生推送时, 我才按照下面给出的链接触发我的詹金斯管道作业。https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin

github中的配置: Github Webhook 配置

为了根据有效负载'ref'标签进行过滤,在 jenkins 管道作业中设置了可选过滤器。 将 ref 值分配给“ref”变量

然后我在'ref'变量上应用了可选过滤器,只允许分支 过滤“参考”变量

最后添加了一个令牌过滤器,这是我的存储库所独有的 令牌过滤器

令牌过滤器按预期工作,但 ref 变量上的过滤器对管道作业没有任何影响。无论在正则表达式上给出什么值,都会触发作业。

例如。即使我删除标签,作业也会被触发! 删除标签时的'ref'标签

我无法理解这种行为,我也不认为我在配置中遗漏了一些东西。您的帮助将不胜感激。

标签: gitjenkinscontinuous-integrationjenkins-pluginsjenkins-pipeline

解决方案


由于您使用的是令牌,这可能解释了为什么作业操作系统总是触发:

仅触发特定作业

在多个作业中使用该插件时,您将有相同的 URL 触发所有作业。如果您只想触发某个工作,您可以:

  • 使用令牌参数并为不同的工作使用不同的令牌。仅使用令牌意味着该请求只能看到具有该确切令牌的作业。这将提高性能并减少每次调用的响应。
    • 或者,添加一些请求参数(或标头,或发布内容)并使用正则表达式过滤器仅在该参数具有特定值时触发。

在您的情况下,请尝试仅un:pw在您的 URL 中使用(用户名/密码),而不使用令牌,以查看您的可选过滤器是否适用。


推荐阅读