JIRA JQL筛选器条件以显示移动的项目

时间:2018-11-05 10:19:26

标签: filter jira jql

我有一个关于jira jql过滤条件的问题,以移动显示移动的项目。 我们的JIRA中有四个项目,我想创建一个统计数据以显示从项目A移至项目b的流程。 如果我想建立一个过滤器..     project =“ A”并将项目更改为“ B” ...它说不可能在“项目”字段中进行历史搜索。

背景: 项目“ A”是一个分析项目,它确定任务是否转到开发项目(项目“ B”)。 因此,我想展示分析团​​队做出了多少积极的决定。 我希望任何人都可以帮助我:)。 预先感谢。

1 个答案:

答案 0 :(得分:0)

目前没有可用的现成解决方案,您需要安装 Script Runner 插件。

与插件一起,您可能需要运行以下脚本来确定从项目 AAA 移至 BBB的问题。

将以下内容粘贴到Script Runner控制台中,选择Groovy作为脚本引擎并运行此脚本。

package eventim.scripts

import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.web.bean.PagerFilter

jqlQuery = 'project = BBB'
fromProject = 'AAA'
result = ''

def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()

getFilterResult(jqlQuery,log).each{ Issue issue ->
    oldKeys = changeHistoryManager.getPreviousIssueKeys(issue.id)
    oldKeys.findAll{it==~/$fromProject.*/}.each{
        result += "$it -> ${issue.key}\n"
    }
}

return result

List<Issue> getFilterResult(String jqlSearch, log) {
    def searchService = ComponentAccessor.getComponent(SearchService.class);
    def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser()
    List<Issue> issues = null

    def parseResult =  searchService.parseQuery(user, jqlSearch);
    if (parseResult.isValid()) {
        def searchResult = searchService.search(user, parseResult.getQuery(), PagerFilter.getUnlimitedFilter())
        issues = searchResult.issues
    } else {
        log.error("Invalid JQL: " + jqlSearch);
    }
    return issues
}

如果您认为这是一个乏味的过程,则可以尝试 JQL Tricks Plugin

您可以在此page上找到更多详细信息。希望这会有所帮助!