YouTrack 工作流程:防止删除

YouTrack Workflow: Prevent Deletion

我为基于云的 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');
  }
});

虽然我认为它应该有效,但当我尝试删除刚刚创建的新问题时,我没有收到任何错误消息,并且问题已被删除。

我推荐一种更简单的方法 - 只需禁用相应角色 (https://www.jetbrains.com/help/youtrack/standalone/Create-and-Edit-Roles.html#editing_existing_roles) 的 'Delete issue' 权限,拥有这些角色的用户将无法删除问题。

至于无法正常工作的 becomesRemoved 属性 - 这是一个已知问题,请关注此票以接收有关它的进一步更新:https://youtrack.jetbrains.com/issue/JT-29303.

以防其他人偶然发现这个问题(引用 https://youtrack.jetbrains.com/issue/JT-55220

To make your onChange rule triggered when an issue becomes removed, you'll need to specify the runOn attribute in the rule's declaration.

runOn: {
  change: false,
  removal: true
}