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

时间:2017-02-02 15:51:17

标签: jira jql

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

我已经尝试了

labels = Foo AND NOT(labels NOT IN (Foo))

但也会返回标记为Foo Bar的问题。我希望标记为的问题仅 Foo

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

2 个答案:

答案 0 :(得分:3)

我知道没有JQL这样做的方法(很明显,很难证明是负面的,但我对JQL有相当不错的知识)。

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

  • labels != Foo根本没有返回有Foo的票证(按照设计,因为!=与文档的NOT ... =完全相同),所以做{{ 1}}返回空集。

  • 无法使用文本结果labels != Foo AND labels = Foo~,JIRA会抛出JQL错误:!~。那是因为它是一个选择器/多选字段,而不是文本字段。

  • 您可以将“标签”与使用The operator '!~' is not supported by 'labels' field进行比较的唯一值是“EMPTY”

2.5的解决方法(确实很糟糕):

  1. 找到最常用的“额外”标签,并构建一个不包括它们的查询

    IS/IS NOT

    优点:纯JQL,简单

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

  2. 使用宏。这Atlassian Q&A details

    • 安装JIRA Misc Custom Fields plugin
    • 使用公式... AND labels = Foo AND labels NOT IN (Bar1, Bar2, ...)
    • 创建自定义数字字段labels_count
    • 重新索引JIRA
    • 在您的JQL中包含@@Formula: issue.get("labels").size()

    优点:应该工作

    缺点:我实际上没有测试它,所以不确定它是否会起作用。它需要安装一个新的插件(一个有用的插件!)和重建索引。而且我不知道它是否会在没有进一步重新索引的情况下更新字段 - 我认为这不会100%确定。

  3. 不确定这是否有效,但您可以look at another way to create custom fields

    • 使用Script Runner plugin

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

      最好,我可以说,像AND labels_count = 1

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

    优点:???

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

答案 1 :(得分:0)

我认为不是JQL。如果我真的必须这样做,我会使用python脚本来解决该标签的所有问题,然后检查其他标签。或者可能在Server中使用自定义ScriptRunner JQL函数。没有简单的方法