You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中通过JIRA-CLIENT获取Jira问题的Sprint ID

在Node.js中用jira-client获取Jira问题的Sprint ID

Sprint信息默认不会包含在Jira问题的基础字段返回结果里,你需要通过以下步骤来获取:

1. 找到Sprint对应的自定义字段ID

Sprint是Jira的自定义字段,不同实例的字段ID可能不同,你需要先确认这个ID:

  • 方法一:调用jira-client的listFields接口,遍历结果找到name为"Sprint"的字段,记录它的id(格式通常是customfield_xxxx)
    async function findSprintFieldId() {
      const fields = await jira.listFields();
      const sprintField = fields.find(field => field.name === 'Sprint');
      console.log('Sprint字段ID:', sprintField?.id);
    }
    
  • 方法二:在Jira网页端打开任意问题,右键点击"Sprint"字段,选择「检查」,查看元素的name属性,值就是对应的自定义字段ID

2. 获取问题时指定该字段

用getIssue方法获取问题时,通过fields参数指定Sprint的自定义字段ID,就能拿到Sprint信息:

const JiraClient = require('jira-client');

const jira = new JiraClient({
  protocol: 'https',
  host: '你的Jira域名',
  username: '你的账号',
  password: '你的API令牌',
  apiVersion: '2',
  strictSSL: true
});

async function getIssueSprintId(issueKey) {
  try {
    // 替换成你找到的Sprint字段ID
    const sprintFieldId = 'customfield_10007';
    const issue = await jira.getIssue(issueKey, { fields: sprintFieldId });
    
    // 问题可能关联多个Sprint,返回的是数组
    const sprints = issue.fields[sprintFieldId];
    if (sprints?.length) {
      // 取第一个关联的Sprint ID,按需调整逻辑
      const sprintId = sprints[0].id;
      console.log(`问题${issueKey}的Sprint ID: ${sprintId}`);
      return sprintId;
    } else {
      console.log(`问题${issueKey}未关联任何Sprint`);
      return null;
    }
  } catch (err) {
    console.error('获取失败:', err);
  }
}

// 调用示例
getIssueSprintId('PROJECT-123');

3. 备选方案:使用Jira敏捷API

如果你的账号有敏捷项目访问权限,也可以直接调用敏捷API获取问题关联的Sprints:

async function getSprintIdViaAgileApi(issueKey) {
  try {
    const res = await jira.get(`/rest/agile/1.0/issue/${issueKey}/sprint`);
    if (res.values?.length) {
      const sprintId = res.values[0].id;
      console.log(`Sprint ID: ${sprintId}`);
      return sprintId;
    }
  } catch (err) {
    console.error('获取失败:', err);
  }
}

注意事项

  • 不同Jira实例的Sprint字段ID必须自行确认,不能直接照搬示例中的ID
  • 若问题未关联Sprint,返回的数组会是空的,需做好空值判断
  • 确保你的Jira账号有访问目标问题和Sprint数据的权限

内容的提问来源于stack exchange,提问作者arjun singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:53:00