Рабочий процесс YouTrack: предотвращение удаления

Я создал очень простую задачу рабочего процесса для облачного экземпляра YouTrack. Идея состоит в том, чтобы предотвратить (остановить рабочий процесс) удаление задач (мы бы предпочли сохранить все задачи, даже если они были отправлены по ошибке). Код приведен ниже.

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');

exports.rule = entities.Issue.onChange({
  // TODO: give the rule a human-readable title
  title: 'When-issue-is-deleted',
  guard: function(ctx) {
    return ctx.issue.becomesRemoved;
  },
   action: function(ctx) {
     workflow.check(false, 'Do not remove issues, please');
  }
});

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


person sviklim    schedule 07.08.2018    source источник


Ответы (2)


Я бы рекомендовал более простой способ — просто отключите разрешение «Удалить задачу» для соответствующих ролей (https://www.jetbrains.com/help/youtrack/standalone/Create-and-Edit-Roles.html).#editing_existing_roles), и пользователи с этими ролями не будут возможность удалять проблемы.

Что касается свойства, которое не работает должным образом, — это известная проблема, пожалуйста, подпишитесь на этот билет, чтобы получать дальнейшие обновления: https://youtrack.jetbrains.com/issue/JT-29303.

person Ana Bartasheva    schedule 10.08.2018

На всякий случай, если кто-то еще наткнется на эту проблему (цитируя https://youtrack.jetbrains.com/issue/JT-55220)

Чтобы ваше правило onChange срабатывало при удалении проблемы, вам необходимо указать атрибут runOn в файле объявление правила.

runOn: {
  change: false,
  removal: true
}
person user3608068    schedule 02.12.2019