JIRA: Как сделать так, чтобы webhook срабатывал только за один переход рабочего процесса?

Сценарий это:

Git -> JIRA -> Дженкинс

Коммит в Git должен изменить статус проблемы в JIRA, что, в свою очередь, должно вызвать сборку для задания в Jenkins.

Метод попробовал:

  1. Я создал WebHook в JIRA. Этот веб-крючок содержит URL-адрес работы Дженкинса.
  2. Прикрепил этот WebHook к рабочему потоку в JIRA в качестве функции публикации.
  3. Рабочий процесс прост. Там написано: [InReview] ->[InProgress]-(Aprrove)->[Done]
  4. Веб-крючок привязан к переходу с [InProgress] на [Готово]
  5. IssueKey и Issue-updated уже упоминались в WebHook. IssueKey заставит этот WebHook работать только для определенной проблемы. Issue-updated - это событие, которое запускает WebHook, когда эта конкретная проблема обновляется.

Теперь, когда я делаю коммит в Git, состояние проблемы Jira меняется с InReview на InProgress, и появляется кнопка "Утвердить". Когда я регистрируюсь в Jenkins, сборка запускается из-за этой проблемы. Я снова вернусь к JIRA, нажму кнопку "Утвердить", измените статус выпуска с InProgress на Done, и это также приведет к сборке в Jenkins.

Мое требование состоит в том, чтобы сборка Jenkins происходила только при изменении состояния InProgress to Done. Я не могу указать причину, по которой переход InReview к InProgress вызывает сборку Jenkins.

Любые указатели на это будут очень полезны. Заранее спасибо.

1 ответ

После многих попыток, наконец, JQL помог мне. Я отредактировал WebHook следующим образом:

В разделе " События (события, связанные с проблемой)", в котором говорится (События для проблем и рабочих журналов. Вы можете указать JQL-запрос для отправки только событий, вызванных совпадающими проблемами.) Я ввел:

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

"Issue-ID", упомянутый в приведенной выше строке кода, предназначен для справки. На самом деле, это трехбуквенное слово, за которым следует номер вопроса, например: ABC-1

Это запустит действие (webhook) для перехода из определенного статуса. Мораль этой истории такова: все переходы, которые происходят из "this value" в запросе JQL status="this value", уволят вешалку.

Изменить 1: Чтобы сделать веб-крюк более специфичным для перехода, чтобы он срабатывал для одного и только одного перехода, мы можем использовать JQL как:

status CHANGED FROM "In Progress" TO "Open"
Другие вопросы по тегам