我正在实现一个带有 REST 端点的片段,如果问题没有任何组件,我想显示错误。该按钮称为“MounaGenerate”,这是我对下面片段的实现:
这是我的 REST 端点的实现:
package SuperFeature
import groovy.transform.BaseScript
import com.atlassian.jira.issue.Issue;
import javax.ws.rs.core.Response
import org.apache.log4j.Logger
import groovy.transform.BaseScript
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import javax.ws.rs.core.MultivaluedMap
import com.atlassian.jira.component.ComponentAccessor
import javax.ws.rs.core.Response
import com.opensymphony.workflow.WorkflowException
@BaseScript CustomEndpointDelegate delegate
mounaGenerate(httpMethod: "GET", groups: ["jira-users"]) {
def log = Logger.getLogger("atlassian-jira.log")
def components = issue.components
log.warn("MOUNA COMPONENTS "+components)
if(components.empty) {
log.warn("MOUNA EMPTY")
throw new WorkflowException("Issue does not have components")
}
}
我的日志中出现以下错误:
2023-09-05 14:30:09,456+0200 https-openssl-nio-443-exec-6 错误 mouh 870x1330103x2 1ic193i 10.250.160.111 /rest/scriptrunner/latest/custom/mounaGenerate [c.o.s.r.rest.com mon.UserCustomScriptEndpoint]脚本端点在方法上失败:GET mounaGenerate 2023-09-05 14:30:09,456+0200 https-openssl-nio-443-exec-6 错误 mouh 870x1330103x2 1ic193i 10.250.160.111 /rest/scriptrunner/latest/custom/mounaGenerate [c.o.s.r.rest.common.UserCustomScriptEnd点]
理想情况下,我希望显示一个如下所示的新页面,表明存在错误,因为该问题没有任何组件:
我该怎么做?
这是适当的代码,需要以不同的方式访问问题对象
package SuperFeature
import groovy.transform.BaseScript
import com.atlassian.jira.issue.Issue;
import javax.ws.rs.core.Response
import org.apache.log4j.Logger
import groovy.transform.BaseScript
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import javax.ws.rs.core.MultivaluedMap
import com.atlassian.jira.component.ComponentAccessor
import javax.ws.rs.core.Response
import com.opensymphony.workflow.WorkflowException
@BaseScript CustomEndpointDelegate delegate
mounaGenerate(httpMethod: "GET", groups: ["jira-users"])
{
MultivaluedMap queryParams, String body ->
def log1 = Logger.getLogger("atlassian-jira.log")
def issueId = queryParams.getFirst("issueId") as Long
Issue myissue = ComponentAccessor.getIssueManager().getIssueObject(issueId)
def issueKey = myissue.getKey()
def componentNames = myissue.getComponents()*.name
log1.warn("MOUNA componentNames "+componentNames)
if(componentNames.empty) {
log.warn("MOUNA EMPTY")
throw new WorkflowException("Issue does not have components")
}else{
log1.warn("MOUNA componentNames NOT EMPTY")
}
}