Задача — добавлять комментарий в Jira-тикет после выполнения Jenkins-билда в scripted pipeline job.
Используем JIRA Pipeline Steps.
Докмументация и примеры — тут>>>.
Устанавливаем его — Manage Jenkins > Manage Plugins:
Настраиваем доступ к Jira — переходим в Manage Jenkins > Configure system, в JIRA Steps добавляем сайт:
Добавляем тестовую задачу:
node {
echo "Run job"
jiraAddComment idOrKey: 'BMEDIOS-198', comment: 'Test', site: 'TestSite'
}
Запускаем джобу:
Проверяем коммент в Jira:
Что бы получить текст коммита, в котором можно, например, передавать ID тикета в Jira, который надо обновить — используем sh и git log: — заносим stdout в переменную message, которую потом передаём в jiraAddComment comment:
node {
echo "Run job"
dir ('ci') {
git branch: "master", url: "[email protected]:projectname/devops.git", credentialsId: "jenkins-github"
commit = sh(returnStdout: true, script: 'git log -1 --pretty=%B').trim()
}
message = "Commit build:" + commit
jiraAddComment idOrKey: 'BMEDIOS-198', comment: message, site: 'TestSite'
}
Результат:
Комментарий:
И тут же можно распарсить ID тикета из текста «[BMEDIOS-198] Test Jira plugin«, подставить его в переменную — и использовать в значении для idOrKey.
Аналогично — можно использовать стандартные переменные Jenkins типа $BUILD_NUMBER и т.д.
P.S. Ну или старый добрый curl:
[simterm]
$ curl -D- -u user:pass -X POST --data "@jira_api_test.json" -H "Content-Type: application/json" https://team.atlassian.net/rest/api/2/issue/BMEDIOS-198/comment
[/simterm]
И файл jira_api_test.json с данными:
{
"body": "curl test"
}
Такой вариант можно использовать в post-step Freestyle-проекта, т.к. Jira Steps в нём не запустишь, а Jira Issue Updater завести не получилось пока.






