【问题标题】:Groovy Scripted field to display result of JIRA JQLGroovy Scripted 字段以显示 JIRA JQL 的结果
【发布时间】:2015-08-13 02:04:21
【问题描述】:

我想获得一些指针来编写一个简单的 JIRA groovy 脚本字段——输入是 JQL,结果是 JQL 的结果。 例如,如果 JQL 是“project = RS and fixVersion = 5.0”,它将在自定义字段显示中继续列出从此 JQL 返回的问题。

【问题讨论】:

  • 我不知道如何使用 Groovy 来实现这一点,但我们使用了 Andrey V Markelov 的免费插件 Query Issues Custom Fields 来实现相同的结果。如果您想了解有关如何配置此功能的更多详细信息,请告诉我,我们将发布更多相同的步骤

标签: groovy jira jql


【解决方案1】:

首先我创建了一个名为“Fixed Issues JQL”的 JIRA 字段,假设我将在 JIRA 中输入“project = VOL and fixVersion = 6.0”的值。 然后我创建了第二个 JIRA 自定义字段,一个名为“Fixed Issues List”的 groovy 脚本字段,其中包含以下代码:

import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.customfields.manager.OptionsManager

SearchService searchService = ComponentAccessor.getComponent(SearchService.class)
UserUtil userUtil = ComponentAccessor.getUserUtil()
User user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueManager issueManager = ComponentAccessor.getIssueManager()

def componentManager = ComponentManager.instance
def optionsManager = ComponentManager.getComponentInstanceOfType(OptionsManager.class)
def customFieldManager = componentManager.getCustomFieldManager()
def cf = customFieldManager.getCustomFieldObjectByName("Fixed Issues JQL")
def myJQL = issue.getCustomFieldValue(cf)   // has a value such as "project = VOL and fixVersion = 6.0"

if (!user) {
    user = userUtil.getUserObject('kwhite')
}

List<Issue> issues = null

SearchService.ParseResult parseResult =  searchService.parseQuery(user, myJQL)
if (parseResult.isValid()) {
    def searchResult = searchService.search(user, parseResult.getQuery(), PagerFilter.getUnlimitedFilter())
    // Transform issues from DocumentIssueImpl to the "pure" form IssueImpl (some methods don't work with DocumentIssueImps)
    issues = searchResult.issues.collect {issueManager.getIssueObject(it.id)}
} else {
    log.error("Invalid JQL: " + myJQL);
} 

【讨论】:

    猜你喜欢
    • 2022-12-20
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多