SK
Я новичок в YT workflowах, возможно чет примитивное щас спрошу, но все же: пытаюсь сделать так, чтобы youtrack заставлял пользователя перекинуть таску при смене стейта (с гарантией, что пользователь не заассайнит ее же на себя). Сделал on-change хендлер:
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'require-reassignee',
guard: function(ctx) {
return ctx.issue.isChanged(ctx.State);
},
action: function(ctx) {
ctx.issue.fields.Sender = ctx.issue.fields.Assignee;
ctx.issue.fields.Assignee = null;
ctx.issue.required('Assignee', 'Reassign first.');
workflow.check(ctx.issue.fields.Assignee != ctx.issue.fields.Sender, "Issue should be reassigned");
},
requirements: {
State: {
type: entities.EnumField.fieldType
},
Assignee: {
type: entities.User.fieldType
},
Sender: {
type: entities.User.fieldType
}
}
});
Пробую - при смене стейта ютрек начинает циклически снова и снова выполнять этот хендлер и "переспрашивать" запрос на "Reassign first". Пробовал вместо on-change хендреа подвязаться на onEnter у стейта, либо на guard у транзишена - то же самое.Был бы признателен за совет. Версия -
2020.6.4750.
