如何在YouTrack Workflow Builder中判断内部评论以避免修改工单状态?
解决YouTrack内部评论时不修改工单状态的问题
YouTrack的可视化Workflow Builder确实没有直接判断“是否为内部评论”的条件,得用脚本工作流来实现这个逻辑,步骤如下:
- 进入YouTrack后台,打开「Workflow」设置页面,点击「Create workflow」选择「Script workflow」
- 设定触发事件为「Issue Comment Added」(当工单添加评论时触发)
- 在脚本编辑器里编写逻辑,核心是通过评论的
isInternal属性判断是否为内部评论,只有非内部评论时才执行状态修改操作,示例脚本如下:
const entities = require('@jetbrains/youtrack-scripting-api/entities'); exports.rule = entities.Issue.onChange({ title: '非内部评论回复时更新工单状态', guard: (ctx) => { // 仅当有新增评论,且第一条新增评论不是内部评论时触发 return ctx.issue.comments.added.isNotEmpty() && !ctx.issue.comments.added.first().isInternal; }, action: (ctx) => { // 替换成你原本要修改状态的逻辑,比如将状态设为"已回复" ctx.issue.fields.State = ctx.State['已回复']; }, requirements: { // 声明依赖的状态字段,确保和你工单里的状态字段名称一致 State: { type: entities.State.fieldType, name: 'State' } } });
- 脚本里的
ctx.issue.comments.added.first().isInternal是关键:返回true代表是内部评论,false代表公开评论。我们在guard(触发守卫)里排除掉内部评论的情况,这样只有公开评论时才会执行后续的状态修改动作。 - 保存并激活这个脚本工作流后,测试一下:发内部评论工单状态不变,发公开评论状态正常更新就没问题了。
内容的提问来源于stack exchange,提问作者OnDemand
相关产品推荐
相关产品推荐

