JIRA:如何让 webhook 仅在工作流的一次转换时触发?
JIRA: How to make a webhook fire for only a single transition, of a workflow?
场景是:
Git -> JIRA -> 詹金斯
Git 中的提交必须更改 JIRA 中的问题状态,这反过来应该触发 Jenkins 中的作业构建。
尝试过的方法:
- 我在 JIRA 中创建了一个 WebHook。此 webhook 包含 Jenkins 作业的 URL。
- 将此 WebHook 附加到 JIRA 中的工作流程,作为 post 函数。
- 工作流程很简单。它说:[InReview]-->[InProgress]-(Aprrove)->[Done]
- webhook 附加到从 [InProgress] 到 [Done] 的过渡
- IssueKey 和 Issue-Updated 已在 WebHook 中提及。 IssueKey 将使该 WebHook 仅适用于特定问题。 Issue-Updated 是一个将在特定问题更新时触发 WebHook 的事件。
现在,当我执行 Git 提交时,Jira 问题的状态从 InReview 变为 InProgress,并且出现 Approve 按钮。当我签入 Jenkins 时,由于此问题更改而触发构建。我将再次返回 JIRA,点击批准按钮,问题状态从 InProgress 更改为 Done,这也会触发 Jenkins 中的构建。
我的要求是 Jenkins 构建应该只在 InProgress 到 Done 状态更改时发生。我无法指出 InReview 到 InProgress 转换触发 Jenkins 构建的原因。
关于此的任何指示都会有很大帮助。提前致谢。
经过多次尝试,终于 JQL 帮了我大忙。我按如下方式编辑了 WebHook:
在 Events(问题相关事件)部分,其中显示(问题和工作日志的事件。您可以指定 JQL 查询以仅发送由匹配问题触发的事件。) ,我输入了:
issuekey = "Issue-ID" AND status = "In Review"
以上代码行中提到的"Issue-ID"仅供参考。实际上,它是一个 3 个字母的单词,后跟问题编号,例如:ABC-1
这将触发从特定状态转换的操作(webhook)。这个故事的寓意是:所有源自 JQL 查询 status="this value"
中 "this value"
的转换都将触发 webhook。
编辑 1: 为了使 webhook 更加特定于转换,以便它触发一个且仅一个转换,我们可以使用 JQL 作为:
status CHANGED FROM "In Progress" TO "Open"
场景是:
Git -> JIRA -> 詹金斯
Git 中的提交必须更改 JIRA 中的问题状态,这反过来应该触发 Jenkins 中的作业构建。
尝试过的方法:
- 我在 JIRA 中创建了一个 WebHook。此 webhook 包含 Jenkins 作业的 URL。
- 将此 WebHook 附加到 JIRA 中的工作流程,作为 post 函数。
- 工作流程很简单。它说:[InReview]-->[InProgress]-(Aprrove)->[Done]
- webhook 附加到从 [InProgress] 到 [Done] 的过渡
- IssueKey 和 Issue-Updated 已在 WebHook 中提及。 IssueKey 将使该 WebHook 仅适用于特定问题。 Issue-Updated 是一个将在特定问题更新时触发 WebHook 的事件。
现在,当我执行 Git 提交时,Jira 问题的状态从 InReview 变为 InProgress,并且出现 Approve 按钮。当我签入 Jenkins 时,由于此问题更改而触发构建。我将再次返回 JIRA,点击批准按钮,问题状态从 InProgress 更改为 Done,这也会触发 Jenkins 中的构建。
我的要求是 Jenkins 构建应该只在 InProgress 到 Done 状态更改时发生。我无法指出 InReview 到 InProgress 转换触发 Jenkins 构建的原因。
关于此的任何指示都会有很大帮助。提前致谢。
经过多次尝试,终于 JQL 帮了我大忙。我按如下方式编辑了 WebHook:
在 Events(问题相关事件)部分,其中显示(问题和工作日志的事件。您可以指定 JQL 查询以仅发送由匹配问题触发的事件。) ,我输入了:
issuekey = "Issue-ID" AND status = "In Review"
"Issue-ID"仅供参考。实际上,它是一个 3 个字母的单词,后跟问题编号,例如:ABC-1
这将触发从特定状态转换的操作(webhook)。这个故事的寓意是:所有源自 JQL 查询 status="this value"
中 "this value"
的转换都将触发 webhook。
编辑 1: 为了使 webhook 更加特定于转换,以便它触发一个且仅一个转换,我们可以使用 JQL 作为:
status CHANGED FROM "In Progress" TO "Open"