使用 Jira.js 批量为多个问题分配版本

问题描述 投票:0回答:1

我正在使用

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

node.js jira
1个回答
0
投票

编辑:找到了使用 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')}`,
    },
  },
)
© www.soinside.com 2019 - 2024. All rights reserved.