2014-08-18 3 views
3

Я хочу получить имя пользователя и/или адрес электронной почты создателя запроса сборки в сценарии после сборки.Получить запрос на создание запроса с использованием скрипта Groovy (Jenkins/email-ext)

Sidenote: Я хочу, чтобы запросчик мог установить отправителя электронной почты для сообщения электронной почты после сборки динамически в сценарии предварительной отправки плагина электронной почты-ext.

AbstractBuild имеет встроенную поддержку для AbstractBuild.getCulprits() и AbstractBuild.hasParticipant(User user), но я не могу найти способ получения запрашивающего. Я не могу найти полезную ссылку в reference list классу User.

ответ

3

Мне удалось решить это с помощью Cause сборки, так как recommended in this answer.

Причина, по которой запрос на построение сборки может быть найден в причине построения, имеет смысл, когда вы думаете об этом: не каждая сборка напрямую инициируется пользователем. Если он вызван пользователем, список причин для сборки содержит Cause.UserIdCause с идентификатором и именем пользователя.

Этот фрагмент кода работал для меня. Он извлекает имя пользователя из сборки по причине и задает заголовки From и ReplyTo. Я использую его в сценарии pre-send плагина email-ext Jenkins.

import javax.mail.internet.InternetAddress 

cause = build.getCause(hudson.model.Cause.UserIdCause.class); 
username = cause.getUserName() 
id = cause.getUserId() 
email = new InternetAddress(String.format("%s <%[email protected]>", username, id)) 

msg.setFrom(email) 
msg.setReplyTo(email); 
+1

Спасибо за скрипт! Обратите внимание: я использую следующий встроенный метод API Jenkins для получения электронной почты: 'hudson.model.User user = hudson.model.User.get (cause.getUserId);' 'email = user.getProperty (hudson. tasks.Mailer.UserProperty) .getAddress(); ' – mattgately

 Смежные вопросы

  • Нет связанных вопросов^_^