使用XrayImportBuilder关联Jira问题时遇400错误求助
ERROR: Unable to confirm Result of the upload.....
Upload Failed! Status:400 Response:{"error":"Error creating Test Execution - Issue create failed! - issuelinks: Field 'issuelinks' cannot be set. It is not on the appropriate screen, or unknown."
我的Jenkins流水线代码如下:
step([$class: 'XrayImportBuilder', endpointName: '/nunit/multipart', importFilePath: 'nunit3.xml', importToSameExecution: 'true', projectKey: 'AT', serverInstance: jiraServerId, importInParallel: 'true', inputInfoSwitcher: 'fileContent', importInfo: """{ "fields":{ "project":{ "key":"AT" }, "summary":"${summary}", "issuetype":{ "name":"Test Execution" } }, "update":{ "issuelinks": [{ "add": { "values": [ { "type": { "id": "10102" }, "outwardIssues": [ { "key": "AT-23" } ] } ] } } ] } }""" ])
去掉update字段时可正常运行,但添加update-issuelinks字段后就失败了。根据文档说明,importInfo需符合Jira issue create/update REST API格式(XrayImportBuilder使用v2端点"rest/api/2/issue"),但实际未按预期工作,请问遗漏了什么?
解决办法
检查屏幕配置:Jira的
issuelinks字段必须出现在Test Execution类型问题的创建屏幕上。进入Jira管理界面,找到对应项目的屏幕方案,确认Test Execution的创建屏幕包含“问题链接”字段。如果没有,添加该字段到对应屏幕。修正
issuelinks的JSON格式:创建Issue时,Jira REST API的issuelinks字段不需要放在update节点下,而是直接定义在fields中,且格式与更新操作不同。正确的创建时关联问题的格式如下:"fields":{ "project":{ "key":"AT" }, "summary":"${summary}", "issuetype":{ "name":"Test Execution" }, "issuelinks": [ { "type": { "id": "10102" }, "outwardIssue": { "key": "AT-23" } } ] }注意这里用的是
outwardIssue(单数)而非outwardIssues,且不需要add操作——因为是创建时直接设置字段值,不是对已有Issue进行更新操作。验证链接类型ID有效性:确认
10102这个链接类型ID在你的Jira实例中存在且可用。可以通过Jira REST API的/rest/api/2/issueLinkType接口查询所有可用的链接类型,核对ID是否正确,同时确认该链接类型允许对应的关联方向。
内容的提问来源于stack exchange,提问作者Mesut Tekin

