Вебхук принимает данные из Jenkins

Материал из Planfix
Перейти к: навигация, поиск

Вебхуки ПланФикса умеют принимать данные из Jenkins. Это реализовано следующим образом:

Есть Jenkins, который делает build & deploy, настроенные через Jenkins Pipeline. Нам необходимо по завершению действия deploy получать в соответствующих задачах ПланФикса комментарий об этом.


Пошаговый план реализации:

  • Коммиты отправляем в таком виде: 123456 - текст коммита, где 123456 - номер задачи в ПланФиксе.
  • Создаём вебхук, на который отправляем данные.
  • В Jenkins Pipeline допишем код, который будет слать данные на вебхук.


Настройка вебхука

Bvldiw.png


Код в Jenkins

Две вспомогательные функции:

@NonCPS def getTaskNumber(text) { def m = (text =~ /\d+/); def taskNumber = m ? m[0] : ""; return taskNumber }

@NonCPS def getChangesByTaskNumber() { def changes = [:] def maxMessages = 50; def changeLogSets = currentBuild.changeSets for (int i = 0; i < changeLogSets.size(); i++) { def entries = changeLogSets[i].items for (int j = 0; j < entries.length && i + j < maxMessages; j++) { def entry = entries[j] def taskNumber = getTaskNumber(entry.msg); if(taskNumber != "") { if(!changes.containsKey(taskNumber)) { changes[taskNumber] = ""; } changes[taskNumber] += entry.msg + "<br>" } } } return changes }


Перейти