js/mailbox-enhancements/reopen-issue-on-new-comment.js (30 lines of code) (raw):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
exports.rule = entities.Issue.onChange({
title: 'Reopen issue on new comment',
guard: function(ctx) {
return ctx.issue.comments.added.isNotEmpty();
},
action: function(ctx) {
var issue = ctx.issue;
if (issue.isResolved) {
issue.tags.forEach(function(tag) {
if (tag.name === 'mailbox') {
issue.State = ctx.State.Open;
}
});
}
issue.tags.forEach(function(tag) {
if (tag.name === 'mailbox') {
issue.applyCommand('remove tag mailbox', ctx.currentUser);
}
});
},
requirements: {
State: {
type: entities.State.fieldType,
Open: {
name: 'Open'
}
}
}
});