gpt4 book ai didi

linux - 通过 JIRA 中的 groovy 关闭工单

转载 作者:太空宇宙 更新时间:2023-11-04 13:02:52 25 4
gpt4 key购买 nike

请解释我必须做什么才能在 JIRA 中关闭工单。我尝试了很多变体,但没有人帮助我。这是我的例子:

import org.apache.log4j.Category
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.jql.builder.JqlQueryBuilder
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueInputParameters
import java.util.Date
import java.util.Calendar
import com.atlassian.jira.bc.JiraServiceContextImpl
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.Issue
import java.util.List

def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
log.setLevel(org.apache.log4j.Level.DEBUG)

def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def ctx = new JiraServiceContextImpl(user)
def searchRequestService = ComponentManager.getInstance().getSearchRequestService()
def searchProvider = ComponentManager.getInstance().getSearchProvider()
def sr = searchRequestService.getFilter(ctx, 17540)
def searchResult = searchProvider.search(sr?.getQuery(), user, PagerFilter.getUnlimitedFilter())
def issueManager = ComponentManager.getInstance().getIssueManager()
def issues = searchResult.getIssues().collect {issueManager.getIssueObject(it.id)}

for ( issue in issues ){
def id=issue.getId()
}
return issues

它工作正常。它从过滤器中获取所有问题,并像我不会那样显示我或 ID 或名称。需要在这个脚本中插入什么,关闭什么?我的意思是将状态更改为已解决。

谢谢你

最佳答案

您需要在问题状态和关闭状态之间进行转换,然后为每个问题执行此转换。您可以在工作流菜单中找出转换的 ID(只需将您的工作流显示为文本。

在此示例中,您可以看到如何对问题列表执行转换。

int actionId = 701; // transition id from Done to Closed    
for (Issue issue in issues) {
log.info("Closing ${issue.key}: ${issue.summary}");
IssueInputParameters params = cm.getIssueService().newIssueInputParameters();
params.setRetainExistingValuesWhenParameterNotProvided(true);
if (comment) params.setComment(comment);
log.debug("Action parameters: ${params.actionParameters}");

TransitionValidationResult validation = cm.getIssueService().validateTransition(user,issue.getId(),actionId,params);
log.debug("Addition inputs: ${validation.additionInputs}");
if (validation.isValid()) {
IssueResult result = cm.getIssueService().transition(user,validation);
if (result.isValid()) log.debug("${result.errorCollection}");
else log.error("${result.errorCollection}");
} else {
result = null;
log.error("Errors: ${validation.errorCollection.errors}");
}
}

log.info("Done closing ${issues.size()} issue(s)");

关于linux - 通过 JIRA 中的 groovy 关闭工单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com