YouTrack工作流程:防止删除

时间:2018-08-07 15:49:22

标签: javascript jetbrains-ide youtrack

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

尽管我认为它应该可以工作,但是当我尝试删除一个刚刚创建的新问题时,我没有收到任何错误消息,并且该问题已被删除。

如果有人知道并可以解释,我将不胜感激代码中的错误。对于与该案例有关的文档的任何其他直接引用,我将特别感谢,因为到目前为止,要真正理解所有这些概念并自己寻找答案确实很困难。

2 个答案:

答案 0 :(得分:2)

以防万一有人偶然发现此问题(引用https://youtrack.jetbrains.com/issue/JT-55220

  

要使onChange规则在问题消除后触发,您需要在rule's declaration中指定runOn属性。

runOn: {
  change: false,
  removal: true
}

答案 1 :(得分:1)

我建议采用一种更简单的方法-仅对相应角色(https://www.jetbrains.com/help/youtrack/standalone/Create-and-Edit-Roles.html#editing_existing_roles)禁用“删除问题”权限,而具有这些角色的用户将无法删除问题。

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