Skip to content

Webhook Jenkins-تەن دەرەكتەردى قابىلدايدى

ۇلكەن كوماندادا جوبادا ىنتىماقتاستىق جاساعاندا، جوباداعى جاڭا وزگەرتۋلەر جۇمىسقا دايىن ەكەنىن ٴبىلۋ پايدالى بولادى. جاڭا وزگەرىستەر دايىن بولعاندا سايكەس Planfix تاپسىرماسىنداعى ازىرلەۋشىلەرگە وسىنداي حابارلاما رەتىندە پىكىر جىبەرۋگە بولادى. بۇل فۋنكتسىييانى Jenkins جانە incoming webhooks ارقىلى ىسكە اسىرۋعا بولادى.

قالاي جاساۋ كەرەك

  • مىناداي فورماتتاعى كوممىيتتەر جاساڭىز: ۱۲۳۴۵۶ - commit ٴماتىنى، مۇنداعى ۱۲۳۴۵۶ — Planfix-تەگى تاپسىرما ٴنومىرى.
  • كوممىيتتەردى قابىلدايتىن webhook جاساڭىز.
  • Jenkins Pipeline ىشىنە webhook-قا دەرەكتەر جىبەرەتىن كود قوسىڭىز.

Webhook باپتاۋى

۰Zvave.jpg

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
}


وپەراتسىييالار اياقتالعاننان كەيىن ەنگىزىلەتىن كود:

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
}


سوڭعى ناتىيجە

ازىرلەۋشى تاپسىرمادا ۇقساس پىكىردى كورەتىن بولادى:

E۶hGY۱.jpg


ٴوتۋ