如何在 JIRA 中查询具有特定标签且仅具有该标签的问题?

SQB*_*SQB 10 jira jql

我在 JIRA 中有一个标签,例如Foo。我想查询具有该标签且具有该标签的所有问题。我怎么做?

我试过了

labels = Foo AND NOT(labels NOT IN (Foo))
Run Code Online (Sandbox Code Playgroud)

但这也会返回标记为Foo Bar的问题。我只想 将问题标记为Foo

如何在 JIRA 中查询具有特定标签且具有该标签的问题?

DVK*_*DVK 11

据我所知,没有 JQL 方法可以做到这一点(显然,很难证明是否定的,但我对 JQL 有相当不错的了解)。

显而易见的方法不起作用:

  • labels != Foo根本不重新调整具有 Foo 的票证(根据设计,因为!=100% 相当于NOT ... =文档),因此labels != Foo AND labels = Foo返回空集。

  • 不能使用文本匹配~或者!~,JIRA会抛出JQL错误:The operator '!~' is not supported by 'labels' field。这是因为它是一个选择器/多项选择字段,而不是文本字段。

  • 您可以比较“标签”的唯一值IS/IS NOT是“EMPTY”

2.5 的解决方法(不可否认,都很糟糕)是:

  1. 查找最常用的“额外”标签,并构建排除它们的查询

    ... AND labels = Foo AND labels NOT IN (Bar1, Bar2, ...)
    
    Run Code Online (Sandbox Code Playgroud)

    优点:纯JQL,简单

    缺点:无法捕获较少使用的标签;添加更多标签时需要更新;如果您有太多与 Foo 配对的额外标签,则可能无法很好地扩展。

  2. 使用宏。此Atlassian 问答详细信息

    • 安装JIRA Misc 自定义字段插件
    • labels_count使用公式创建自定义数字字段@@Formula: issue.get("labels").size()
    • 重新索引 JIRA
    • 包含AND labels_count = 1在您的 JQL 中

    优点:应该有效

    缺点:我没有实际测试过,所以不确定它是否有效。它需要安装一个新插件(一个有用的插件!)并重新索引。我不知道它是否会在不进一步重新索引的情况下保持字段更新 - 我认为会,但不是 100% 确定。

  3. 不确定这是否有效,但您可以查看另一种创建自定义字段的方法

    • 使用脚本运行器插件

    • 使用 Groovy 代码创建一个字段以返回标签计数。

      据我所知,最好的事情是return issue.getlabels().size()

    • 一些与 ScriptRunner 和标签相关的示例代码:ex1前2

    优点:???

    缺点:付费插件,不知道如何让它工作。