Автоматическая рассылка e-mail
#1
Отправлено 24 июля 2009 - 06:47
Недавно создал новый workflow для проекта. Появилась потребность рассылки e-mail, для тех, кто подписаны к данному заданию :)
1. Выставляем задание, проходит 2 дня, а человек, которого мы подписали под это задание не отвечает, и ничего с этим не делает, так вот, после 2х дней без перехода на след. статус этого человека надо уведомить, чтобы он что-то предпринял.
2. Похожая ситуация, можно сказать идентичная - только проходит 7й дней без перехода на след. статус и тоже надо всем об этом рассказать.
Только вот как это сделать?
#2
Отправлено 27 июля 2009 - 07:36
#3
Отправлено 27 июля 2009 - 11:11
Добрый день!Добрый день.
Недавно создал новый workflow для проекта. Появилась потребность рассылки e-mail, для тех, кто подписаны к данному заданию :)
1. Выставляем задание, проходит 2 дня, а человек, которого мы подписали под это задание не отвечает, и ничего с этим не делает, так вот, после 2х дней без перехода на след. статус этого человека надо уведомить, чтобы он что-то предпринял.
2. Похожая ситуация, можно сказать идентичная - только проходит 7й дней без перехода на след. статус и тоже надо всем об этом рассказать.
Только вот как это сделать?
Начнем с того, что с jira я не работал, и не могу знать умеет она делать то, что вы хотите или нет.
Но как всегда есть workaround. У нас наш трэкер тоже не позволяет делать такие рассылки, но задача решена таким вот образом:
1. Написан внешний скрипт который делает следующее
1.1. По одному из возможных внешних интерфейсов доступается к трэкеру и запускает заданный запрос. (Для конкретики, пусть это будет список всех незаверифицированых багов по разным проектам относительно к конкретному инженеру). Например, доступ осуществлятся через Web-интерфейс с помощью командлайновой утилиты wget
1.2. Теперь у нас есть результат запроса в виде файла на диске. Далее скрипт пробегает по этому файлу и парсит его, коллекционируя информацию в виде , ну скажем хэша, где ключ - это имя инженера (у нас имя=email), а значение - список номеров дефектов и их сабж (можно туда еще данных добавить, типа приоритет и тд).
1.3. Далее, скрипт пробегается по списку пользователей и каждому, с помощью командлайновой утилиты mailx отсылает письмо со списком его незаверифицированных дефектов.
2. С помощью cron-a, скрипт запускается раз в определнное время.
Аналогичные репорты раз в неделю присылаются на всю группу, а не персонально.
Думаю идея понятна.
PS: для примера сейчас зашел на jira трэкер используемый одной фирмой и доступный для поиска извне. Составил запрос - показать все critical баги, которые не апдейтились неделю и выбрал printable версию. Заняло 1 минуту. Написать скрипт, который это дело распарсит - еще пара часов, ну день.
Alexey
#4
Отправлено 27 июля 2009 - 15:06
большое спасибо Вам за ответ. Идея понятна, но для ее работы необходимо использовать слишком много инструментов.
Я посидел на форуме atlassian'a - фирмы, которая создала джиру. И решил вопрос.
В Jira есть такая инетерсная вещь, как Jelly Runner - с помощью него можно запускать скрипы, написанные на Jelly тагах. + Сервисы, которые можно создавать.
Решение моей проблемы оказалось довольно простым.
1. Создаем фильтр в JIRА, который будет искать все задания со статусом, допустим "новое", которые были созданы 2 дня назад.
2. Также в JIRA создаем сервис, который будет запускать наш скрипт Jelly Runner в определенное время (можно установить интервал в секундах).
2.1 В скрипте указываем, что в каждое задание из списка, выданного фильтром добавить комментарий (либо поменять статус задания на другой).
3. Вот и всё - Фильтр обновляется через заданный промежуток времяни, сервис запускает скрипт, скрипт выставляет комментарии, JIRA отправляет комментарии пользователю :)
Вот пример такого скрипта:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log" > <jira:Login username="atlassiansupport" password="[your password]"> <log:warn>Running Inactivate issues service</log:warn> <!-- Properties for the script --> <core:set var="comment">This issue has not been updated for 5 business days. If you have an update, please use "Add Comments For Atlassian" action to let us know. If you need more time to gather information please let us know and we will 'freeze' this issue. If you have no other questions, please Close this issue. If no update is received in the next 5 business days, this issue will be automatically closed. Thank you, The Atlassian Support Team</core:set> <core:set var="workflowStep" value="Mark Inactive" /> <core:set var="workflowUser" value="atlassiansupport" /> <core:set var="filter7Days" value="11505" /> <!-- Run the SearchRequestFilter --> <jira:RunSearchRequest filterid="${filter7Days}" var="issues" /> <core:forEach var="issue" items="${issues}"> <log:warn>Inactivating issue ${issue.key}</log:warn> <jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}"/> </core:forEach> </jira:Login> </JiraJelly>
и еще на всякий случай пример, также на Jelly Runner'e как высылать с помощью него письма определенному юзеру:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:email="jelly:email" xmlns:log="jelly:log"> <core:set var="emailMsg">Please be notified by this em mail from me!! Thank you Admin </core:set> <email:email to="test@test.com" from="JIRA-support@test.com" subject="escalation" server ="your_mail_server_here" message="${emailMsg}"/>
Спасибо всем за внимание.
#5
Отправлено 10 августа 2009 - 13:20
Правильно ли я понимаю ситуацию, что если
то в случае повторного "нереагирования" мы не получим повторного уведомления?2.1 В скрипте указываем, что в каждое задание из списка, выданного фильтром добавить комментарий (либо поменять статус задания на другой).
А строчка
инициализирует переменную внутренним id фильтра?<core:set var="filter7Days" value="11505" />
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных