JIRA:如何仅为工作流程的单个转换制作webhook?

时间:2015-12-24 10:52:23

标签: git jenkins jira webhooks

情景

Git - > JIRA - >詹金斯

Git中的提交必须在JIRA中更改问题状态,而JIRA应该触发Jenkins中的作业构建。

已尝试的方法

  1. 我在JIRA中创建了一个WebHook。此webhook包含Jenkins作业的URL。
  2. 将此WebHook附加到JIRA中的工作流程,作为发布功能
  3. 工作流程很简单。它说:[InReview] - > [InProgress] - (Aprrove) - > [完成]
  4. webhook附加到从[InProgress]到[Done]
  5. 的过渡
  6. 在WebHook中提到了IssueKey和Issue-Updated。 IssueKey将使WebHook仅适用于特定问题。 Issue-Updated是一个事件,当更新特定问题时将触发WebHook。
  7. 现在,当我进行Git提交时,Jira问题的状态从InReview变为InProgress,并出现一个Approve按钮。当我签入Jenkins时,由于此问题更改而触发了构建。再次,我将返回JIRA,点击Approve按钮,将状态更改从InProgress发送到Done,这也会触发Jenkins的构建。

    我的要求是Jenkins构建只应在InProgress上进行,以完成状态更改。我无法指出为什么InReview到InProgress转换触发Jenkins构建的原因。

    对此有任何指示都会有很大帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

经过大量的打击和试验,最后 JQL 为我做了诀窍。我编辑了WebHook如下:

事件(问题相关事件)部分中,其中显示了(事件和工作日志事件。您可以指定JQL查询仅发送由匹配问题触发的事件。),我输入了:< / p>

issuekey = "Issue-ID" AND status = "In Review"

上面代码行中提到的“问题ID”仅供参考。实际上,它是一个3字母的单词,后跟问题编号,如: ABC-1

这将触发从特定状态转换的操作(webhook)。故事的寓意是:在JQL查询"this value"中从status="this value"获取的所有转换都将触发webhook。

编辑1:为了使webhook更具特定于转换,以便仅针对一次转换触发,我们可以将JQL用作:

status CHANGED FROM "In Progress" TO "Open"