如何创建可参数化的JQL以支持用户自定义取值的仪表盘?
Jira参数化JQL仪表盘查询实现方案
原生Jira的JQL本身不支持动态参数占位符,标准过滤器、默认仪表盘组件也没有内置的参数输入配置能力,无法直接实现替换硬编码Issue Key的需求,你可以通过以下两种常用方案实现:
方案1:通过富过滤器(Rich Filters)插件实现
这是最贴合你需求的实现方式,操作步骤如下:
- 完成富过滤器插件安装后,先创建基础过滤器,先写公共逻辑部分的JQL:
project = Bar and issueFunction in linkedIssuesOfRecursive("project = Foo", "relates to") - 进入富过滤器配置页,添加一个控制器,类型选择Issue Picker(问题选择器),支持联想补全Issue,也可以选择普通文本输入类型
- 配置控制器的JQL拼接规则:将用户输入的Issue Key作为变量,自动插入到
linkedIssuesOfRecursive第一个参数的子查询中,最终拼接后的完整JQL和你现有硬编码的逻辑完全一致 - 把富过滤器结果组件、控制器组件都添加到仪表盘上,用户直接在控制器输入/选择对应Issue Key,刷新即可得到对应查询结果
方案2:通过ScriptRunner自定义仪表盘组件实现
如果你已经安装了ScriptRunner(你当前用到的issueFunction函数就属于该插件的功能),不需要额外安装其他插件即可实现:
- 进入ScriptRunner的「Custom Dashboard Item」功能页,编写简单的Groovy脚本,创建一个带Issue输入框的自定义仪表盘部件
- 配置逻辑:用户输入Issue Key后,脚本动态替换你原有JQL中的硬编码值,执行查询后直接把结果渲染为Issue列表展示在仪表盘上
无插件补充方案(不集成到仪表盘)
如果暂时无法安装插件,可以把JQL中的硬编码Issue Key替换为占位符%s做成浏览器搜索书签,用户点击书签后输入Issue Key即可跳转至对应查询结果页,缺点是无法集成到仪表盘内使用。
内容的提问来源于stack exchange,提问作者Philipp Lengauer
相关产品推荐
相关产品推荐

