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

Jira自动化:最后子问题关闭时自动关闭Epic的JQL查询故障排查

问题分析与解决方案

原查询失效原因

你的JQL查询确实因**嵌套多层issueFunction**导致失效,同时引号嵌套写法也存在语法问题:

  • 多数JQL扩展函数(如ScriptRunner提供的issuesinEpics、EpicsOf)不支持在函数参数中嵌套另一个issueFunction调用,解析器无法正确识别多层函数逻辑。
  • 原查询中的双引号嵌套未做转义,导致JQL解析时出现语法错误。

正确解决方案

要实现“找到所有子问题均已关闭的Epic”需求,无需嵌套函数,可通过反向逻辑或简洁的函数组合实现:

方案1:反向排除法(推荐)

先找出所有包含未关闭子问题的Epic,再取反得到所有子问题都已关闭的Epic:

issueFunction in allEpics() AND NOT issueFunction in epicsOf('status != Closed')
  • epicsOf('status != Closed'):返回所有存在未关闭子问题(任务/故事/子任务等)的Epic
  • 加上NOT后,即可得到所有子问题状态均为Closed的Epic

方案2:单个Epic的验证(适合自动化场景)

如果是在Jira自动化规则中,关闭子问题后要验证所属Epic的状态,可直接定位该Epic,再检查是否存在未关闭的关联问题:

"Epic Link" = {{issue.Epic Link.key}} AND status != Closed
  • 若该查询返回0条结果,说明这个Epic的所有子问题都已关闭,可触发关闭Epic的动作。

注意事项

  • 使用单引号包裹内层JQL条件,避免双引号嵌套导致的语法错误;
  • 确保已安装并启用ScriptRunner(或提供这些issueFunction的插件),原生JQL不支持这类扩展函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:59:59