js/mailbox-enhancements/create-issue-on-new-comment.js (33 lines of code) (raw):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
exports.rule = entities.Issue.onChange({
title: 'Create 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') {
var newIssue = new entities.Issue(ctx.currentUser,
entities.Project.findByKey(ctx.issue.project.key), ctx.issue.summary);
newIssue.description = ctx.issue.comments.added.first().text;
ctx.issue.comments.added.first().delete();
}
});
}
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'
}
}
}
});