如何通过Jira API更新关联多个迭代的工单?
解决Jira REST API关联工单至多个活跃迭代的思路
你遇到的这个问题确实挺常见——Jira网页端明明支持把工单关联到多个活跃迭代,但官方REST API的常规用法只能给Sprint字段设单个值,文档里也没明确提多选的实现方式。下面是亲测有效的解决思路:
核心逻辑:Sprint字段的底层本质
其实Jira的Sprint字段本质是个多选自定义字段,只是在界面上做了特殊封装,官方通用REST API的字段接口没直接暴露它的多选特性。我们可以绕开常规的Sprint字段操作,直接针对它的原始自定义字段ID来实现多迭代关联。
具体操作步骤
第一步:拿到Sprint字段的自定义ID
调用GET /rest/api/2/field接口,在返回的字段列表里找到名称为Sprint的字段,记下它的id(格式一般是customfield_xxxxxx,比如customfield_10000)。第二步:获取目标活跃迭代的ID
用Agile API的GET /rest/agile/1.0/sprint接口(可以加state=active参数过滤活跃迭代),拿到你想关联的多个Sprint的id值。第三步:构造更新请求关联多个迭代
调用PUT /rest/api/2/issue/{issueKey}接口,请求体里针对刚才拿到的Sprint自定义字段,传入包含多个Sprint ID的数组。示例请求体如下:{ "fields": { "customfield_10000": [ {"id": "123"}, {"id": "456"} ] } }这样就能把工单同时关联到ID为123和456的两个活跃迭代了。
关于你提到的其他API补充说明
- 你说的Agile API用于迭代迁移,其实
POST /rest/agile/1.0/sprint/{sprintId}/issue接口默认是替换工单所在的Sprint(也就是移除原有迭代,添加到新的),没法直接用来实现多迭代关联。 - REST v2 API的工单更新接口确实没针对Sprint字段的多选特性做专门说明,这属于官方文档的小盲区,直接操作自定义字段是最稳妥的方案。
内容的提问来源于stack exchange,提问作者hobailey
相关产品推荐
相关产品推荐

