我正在使用
jira.js
节点库,并使用它成功创建版本和查询问题。现在我想为这些问题分配版本,但经过一些谷歌和ChatGPT查询后无法获得所需的效果。
我尝试过的是:
import { IssueProperties } from 'jira.js/out/version3'
const issuePropsUpdate = new IssueProperties(jiraClient) // I know jiraClient works
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 存储库上执行此操作https://github.com/MrRefactoring/jira.js/issues/268
编辑:找到了使用 JIRA SDK 执行此操作的方法
import { Issues } from 'jira.js/out/version3'
const issuesClient = new Issues(jiraClient) // I know jiraClient
works
const issueIds = ['123', '456', '789']
const versionId = 'NEW_FIX_VERSION'
await Promise.all(
issueIds.map(async (issueId) => {
await issues.editIssue({
issueIdOrKey: issueId,
update: {
fixVersions: [{ add: { name: release.name } }],
},
})
}),
))
如果您愿意,下面是使用 axios 的方法
await axios.put(
`${process.env.ATLASSIAN_API_HOST}rest/api/2/issue/${issue.key}`,
{
update: {
fixVersions: [{ add: { name: version.name } }],
},
},
{
headers: {
'Content-Type': 'application/json; charset=utf-8',
Authorization: `Basic ${Buffer.from(
`${process.env.ATLASSIAN_EMAIL}:${process.env.ATLASSIAN_API_TOKEN}`,
).toString('base64')}`,
},
},
)