js/subsystems-owner/set-assignee-from-subsystems.js (27 lines of code) (raw):

var entities = require('@jetbrains/youtrack-scripting-api/entities'); exports.rule = entities.Issue.onChange({ title: 'Set Assignee from Subsystems', guard: function(ctx) { var fs = ctx.issue.fields; return fs.isChanged(ctx.Subsystems) && !fs.Assignee; }, action: function(ctx) { var fs = ctx.issue.fields; fs.Subsystems.find(function(subsystem) { if (!fs.Assignee) { fs.Assignee = subsystem.owner; return true; } return false; }); }, requirements: { Subsystems: { type: entities.OwnedField.fieldType, multi: true }, Assignee: { type: entities.User.fieldType } } });