场景是:
Git -> JIRA -> 詹金斯
Git 中的提交必须更改 JIRA 中的问题状态,这反过来又应该触发 Jenkins 中作业的构建。
尝试过的方法:
- 我在 JIRA 中创建了一个 WebHook。此 Webhook 包含 Jenkins 作业的 URL。
- 将此 WebHook 附加到 JIRA 中的工作流程,作为后置功能.
- 工作流程很简单。它说:[审核中]-->[进行中]-(批准)->[完成]
- Webhook 附加到从 [InProgress] 到 [Done] 的转换
- WebHook 中已经提到了 IssueKey 和 Issue-Updated。 IssueKey 将使 WebHook 仅适用于特定问题。 Issue-Updated 是当特定问题更新时将触发 WebHook 的事件。
现在,当我进行 Git 提交时,Jira 问题的状态从 InReview 更改为 InProgress,并且会出现 Approve 按钮。当我签入 Jenkins 时,由于此问题更改而触发了构建。我将再次返回 JIRA,点击“批准”按钮,问题状态从“进行中”更改为“完成”,这也会触发 Jenkins 中的构建。
我的要求是 Jenkins 构建应该仅在 InProgress 到 Done 状态更改时发生。我无法指出 InReview 到 InProgress 转换触发 Jenkins 构建的原因。
对此的任何指示都会有很大帮助。提前致谢。
经过多次的打击和尝试,终于JQL为我成功了。我对WebHook进行了如下编辑:
In the Events(问题相关事件)部分,其中显示(问题和工作日志的事件。您可以指定 JQL 查询以仅发送由匹配问题触发的事件。),我输入:
issuekey = "Issue-ID" AND status = "In Review"
上面代码行中提到的“Issue-ID”仅供参考。实际上,它是一个 3 个字母的单词,后跟问题编号,例如:ABC-1
这将触发从特定状态转换的操作(webhook)。这个故事的寓意是:所有的转变都源于"this value"
在JQL查询中status="this value"
,将触发 webhook。
Edit 1:为了使 webhook 更加特定于转换,以便它触发一个且仅一个转换,我们可以将 JQL 用作:
status CHANGED FROM "In Progress" TO "Open"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)