2015-06-23 2 views
0

Я пытаюсь добавить правило рабочего процесса в YouTrack, которое устанавливает видимость недавно опубликованных комментариев, которые не сделаны конкретным пользователем.Пользовательское правило рабочего потока, чтобы установить видимость комментариев по умолчанию

Вот что я пробовал:

rule set comment visibility to developers 

when comments.added.last.author.login != "special" { 
    comments.last.permittedGroup = {group: Developers}; 
} 

Это работает, в том, что все вновь добавленные комментарии, которые не сделанные special пользователя устанавливаются как видимые только для разработчиков. Проблема в том, что это правило также предотвращает переопределение видимости; видимость всегда возвращается к «Разработчикам», после того как она вручную изменяется через пользовательский интерфейс.

Очевидно правило, в его нынешнем виде довольно прост, и я думаю (надеюсь) есть способ изолировать создания комментария, а не какое-либо обновление к нему (который я думаю, что это в настоящее время ловли).

Есть ли способ применить это правило только к вновь созданным комментариям, а не к тем, которые были обновлены?

ответ

2

Хитрость здесь заключается в том, что язык рабочих языков YouTrack поддерживает нуль-безопасность. Когда вы добавляете комментарий, comments.added.last содержит комментарий, и правило работает так, как ожидалось. Когда вы редактируете что-то еще, comments.added.last является null, таким образом comments.added.last.author.login также null и null != "special", действительно.

Что нужно, чтобы проверить, что есть только что созданные комментарии, это изменение, например.

when comments.added.isNotEmpty && comments.added.last.author.login != "special" { 
    comments.last.permittedGroup = {group: Developers}; 
} 
+0

Как насчет того, когда вы отредактируете комментарий? Что будет в этом случае 'comments.added.last'? –

+1

@TomFenech Это будет 'null', так как' comments.added' содержит только добавленные комментарии. Если вы когда-либо захотите вызвать какое-либо правило для редактирования комментариев, это невозможно в YT 6.0 и будет доступно в YT 6.5 (см. Https://confluence.jetbrains.com/display/YTD65/Issue+Attributes+and+Methods#IssueAttributesandMethods -CommentsRelatedMethods для деталей). –

+0

ОК, я думаю, что я понял это сейчас - это запускается всякий раз, когда ** что-либо ** происходит с проблемой, но 'comments.added' является только непустым, когда произошедшее добавляется комментарий. Кажется, это работает, спасибо. Я предполагаю, что единственная неприятная вещь в том, что единственный способ переопределить правило - отправить, а затем отредактировать. –

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