使用Jira.js批量为Jira问题分配版本失败求助
使用jira.js批量为Jira问题分配Fix Version无实际效果(返回成功但问题未更新)
我使用jira.js Node.js库,已成功创建版本并查询Jira问题,但尝试批量为问题分配版本时,请求返回成功但问题并未实际更新。
我尝试的代码如下:
import { IssueProperties } from 'jira.js/out/version3' const issuePropsUpdate = new IssueProperties(jiraClient) // 确认jiraClient可正常工作 const issueIds = ['123', '456', '789'] const versionId = '101112' const res = await issuePropsUpdate.bulkSetIssuesProperties({ entitiesIds: issueIds.map((issue) => Number(issue)), properties: { fixVersions: [ { add: { id: Number(versionId), }, }, ], }, })
请求返回成功,但问题未发生变化,响应内容如下:
{ self: 'REDACTED', id: 'REDACTED', description: 'Bulk multiple.update of Issue (matching: 33036,33895) property fixVersions', status: 'COMPLETE', message: 'Bulk update of 2 issues completed', result: { updatedTotal: 2, errors: { errors: {}, errorMessages: [], reasons: [] } }, submittedBy: 10036, progress: 100, elapsedRuntime: 36, submitted: 1687879190262, started: 1687879190286, finished: 1687879190322, lastUpdate: 1687879190322 }
补充:我已在该库的GitHub仓库提交了此问题。
问题原因
你用错了API模块:IssueProperties对应的是Jira的**实体属性(Entity Properties)**功能,这是用来存储自定义元数据的,和Jira内置的fixVersions字段完全不是一回事。你的调用只是给问题添加了一个名为fixVersions的自定义属性,并没有修改问题实际的Fix Version字段,所以问题看起来没有变化。
正确解决方案
要修改Jira内置的fixVersions字段,需要使用Issues模块的bulkUpdate方法:
import { Issues } from 'jira.js/out/version3'; const issuesApi = new Issues(jiraClient); const issueIds = ['123', '456', '789']; const versionId = '101112'; const res = await issuesApi.bulkUpdate({ issueUpdates: issueIds.map(issueId => ({ id: issueId, update: { fixVersions: [ { add: { id: Number(versionId) } } ] } })) });
验证
执行上述代码后,去Jira查看对应问题的Fix Version字段,应该会看到已成功添加目标版本。如果需要清理之前误加的自定义属性,可以使用IssueProperties的deleteIssueProperty方法删除名为fixVersions的属性。
内容的提问来源于stack exchange,提问作者user3311613
相关产品推荐
相关产品推荐

