Уебһоок Женкінс-тен деректерді қабылдайды
Үлкен командада жобада ынтымақтастық жасағанда, жобадағы жаңа өзгертулер жұмысқа дайын екенін білу пайдалы болады. Жаңа өзгерістер дайын болғанда сәйкес Планфіх тапсырмасындағы әзірлеушілерге осындай хабарлама ретінде пікір жіберуге болады. Бұл функцияны Женкінс және інцомінг уебһоокс арқылы іске асыруға болады.
Қалай жасау керек
- Мынадай форматтағы коммиттер жасаңыз: 123456 - цомміт мәтіні, мұндағы 123456 — Планфіх-тегі тапсырма нөмірі.
- Коммиттерді қабылдайтын уебһоок жасаңыз.
- Женкінс Піпеліне ішіне уебһоок-қа деректер жіберетін код қосыңыз.
Уебһоок баптауы
Женкінс-дегі код
Екі қосалқы функция:
@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
}
Операциялар аяқталғаннан кейін енгізілетін код:
def deployedTasks = getChangesByTaskNumber()
deployedTasks.eachWithIndex { key, value, i ->
httpRequest contentType: "APPLICATION_JSON_UTF8", httpMode: "POST", requestBody: "{ \"task\" : ${key}, \"comment\" : \"${value.replaceAll('"','\\\\"')}\", \"project\" : \"project-name\", \"branch\" : \"${env.gitlabBranch}\"}", responseHandle: "NONE", url: "https://myacc.planfix.ru/webhook/json/b7mh-dead-687f-lpwq";, consoleLogResponseBody: true
}
Соңғы нәтиже
Әзірлеуші тапсырмада ұқсас пікірді көретін болады: