You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy(Scriptrunner)中实现Jira关联问题数组的类型校验?

解决Groovy(Scriptrunner)处理Jira关联问题数组的问题

可行代码实现

import com.atlassian.jira.component.ComponentAccessor

// 获取当前问题的所有关联问题集合
def linkedIssues = issue.getLinkedIssues()

// 检查集合中是否存在类型为Bug的关联问题
def hasBugLinkedIssue = linkedIssues.any { linkedIssue ->
    linkedIssue.issueType.name == 'Bug'
}

return hasBugLinkedIssue

代码说明

  • 获取关联问题:issue.getLinkedIssues()直接返回当前问题的所有关联Issue对象集合(类型为ArrayList),无需再通过issueManager单独查询每个issue。
  • 高效判断存在性:Groovy集合的any()方法会遍历集合,只要有一个元素满足条件就立即返回true,无需遍历全部元素,性能更优。
  • 类型判断:直接通过Issue对象的issueType.name获取问题类型名称,和'Bug'做等值判断即可。如果你的Jira实例是多语言环境,建议用issueType.id判断(比如默认Bug的id是1,可根据自己实例调整),避免名称翻译差异导致判断失效。

原代码问题分析

  1. 未遍历关联问题数组:原代码仅手动指定了单个issue(TENDER-25941),没有处理arrLinkedIssue这个关联问题集合。
  2. 条件判断错误:issType in 'Bug'的写法是检查字符串是否包含子串,正确的等值判断应该用issType == 'Bug'。

内容的提问来源于stack exchange,提问作者Alex_Borovskii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:44:58