Пользовательское правило рабочего процесса для установки видимости комментариев по умолчанию

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

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

rule set comment visibility to developers 

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

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

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

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


person Tom Fenech    schedule 23.06.2015    source источник


Ответы (1)


Хитрость здесь в том, что YouTrack Workflow Language поддерживает нулевую безопасность. Когда вы добавляете комментарий, 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};
}
person Mariya Davydova    schedule 25.06.2015
comment
А когда вы редактируете комментарий? Что будет comments.added.last в этом случае? - person Tom Fenech; 25.06.2015
comment
@TomFenech Это будет null, так как comments.added содержит только добавленные комментарии. Если вы когда-нибудь захотите активировать какое-либо правило редактирования комментариев, это невозможно в YT 6.0 и будет доступно в YT 6.5 (см. confluence.jetbrains.com/display/YTD65/ для получения подробной информации). - person Mariya Davydova; 26.06.2015
comment
Хорошо, я думаю, теперь я понял - это запускается всякий раз, когда что-либо происходит с задачей, но comments.added не пусто только тогда, когда произошло добавление комментария. Кажется, работает, спасибо. Я думаю, единственная раздражающая вещь в этом заключается в том, что единственный способ обойти правило — это отправить, а затем отредактировать. - person Tom Fenech; 26.06.2015