Как программно установить получателей электронной почты для работы Дженкинса

Я пытаюсь обновить получателей электронной почты для множества заданий jenkins с помощью нового набора списков адресов электронной почты, я не могу найти правильный API для этого. Хотя это можно было бы обновить напрямую в файле конфигурации, но хотелось использовать API-интерфейсы Jenkins, если они доступны.

Изменить: я имею в виду поле ниже Действия после сборки: Уведомление по электронной почте> Получатели


person Ravisha    schedule 18.05.2015    source источник
comment
возможный дубликат Как программно установить получателей Jenkins Email- дополнительный плагин?   -  person Tim Biegeleisen    schedule 18.05.2015
comment
@Tim: Мой вопрос состоит в том, чтобы обновить все задания новым набором получателей. Мне нужно получить API для обновления получателей. Где, как в предоставленной ссылке, объект msg уже доступен. также другой вопрос связан с редактируемыми уведомлениями по электронной почте, которые являются плагином для Jenkins. Я спрашиваю об уведомлении по электронной почте по умолчанию   -  person Ravisha    schedule 18.05.2015


Ответы (1)


Хорошо. В настоящее время у меня нет кода, но у меня есть мысли.

1-й шаг:
вы можете использовать любой API jenkins (REST, оболочку python и т. д.), чтобы вывести все имена ваших заданий в текстовый файл, говоря job_list.txt. Ниже приведен пример. И вы можете узнать об использовании по этой ссылке.

import jenkins
j = jenkins.Jenkins('http://your_url_here', 'username', 'password')
j.get_jobs()

2-й шаг:
Как видите, у каждого задания есть файл конфигурации с путем, например, $JENKINS_HOME/jobs/job_name/config.xml. Это также может быть доступно из вашего браузера. Из браузера это выглядит так:

получатели отображаются в файле config.xml задания jenkins

Таким образом, ваш вопрос можно упростить следующим образом:
"Как обновить значение получателей файла config.xml из каждой папки заданий в каталоге $JENKINS_HOME/jobs".
Или:
"Как обновить значение получателей в config.xml для каждого URL-адреса задания, например http://your_jenkins_url/job/each_job_name/config.xml".

Таким образом, это можно сделать с помощью любого языка сценариев, такого как python,ruby,shell,vb, или любой другой http-подобной библиотеки, такой как «urllib2», «запросы» и т. д.

3-й шаг:
После обновления всего файла config.xml не забудьте перезапустить jenkins, чтобы изменения вступили в силу.

Удачи, приятель!


Отредактировано (2015-05-27)
Существует существующий сценарий Groovy, написанный @edalquist, который может программно обновлять адрес электронной почты. https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/updateEmailAddress.groovy

person mainframer    schedule 24.05.2015
comment
спасибо за Ваш ответ. В качестве альтернативы я проверил этот вариант. Но мне было интересно, есть ли какой-либо API для этого. То, что вы упомянули, можно было бы сделать без скриптов. просто откройте их в текстовом редакторе и замените все... я имел в виду скриптлеты. - person Ravisha; 25.05.2015
comment
Я не вижу такого конкретного API, который может это сделать. Вы абсолютно правы. Метод, который я упомянул, можно выполнить, используя что-то вроде команды sed. В любом случае, если вы придумали решение для скриптлетов, не стесняйтесь поделиться с нами. Спасибо. - person mainframer; 25.05.2015
comment
Я нашел отличный скрипт, который, я думаю, вам нужен: github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/ - person mainframer; 26.05.2015
comment
спасибо @мейнфреймер. это решает вопрос. Небольшое изменение, нам нужно сохранить задание после назначения нового адреса электронной почты. вы можете обновить свой ответ по этой ссылке - person Ravisha; 27.05.2015