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

通过API关联Azure DevOps构建与Jira Release 追踪交付需求

实现Azure DevOps构建与Jira Release的API关联方案

核心流程概述

通过API完成三个关键环节:从Azure DevOps构建提取关联工作项 → 映射到对应Jira Issue → 将Issue关联到目标Jira Release,从而实现构建交付需求的追踪。


步骤1:从Azure DevOps构建获取关联的工作项

  1. 获取构建详情
    调用Azure DevOps Build API获取指定构建的完整信息,其中包含关联的工作项列表:

    GET https://dev.azure.com/{组织名}/{项目名}/_apis/build/builds/{构建ID}?api-version=7.1-preview.7
    

    响应中解析workItems数组,提取每个工作项的id和url。

  2. 获取工作项的Jira关联信息
    针对每个工作项ID,调用Work Item API获取详情,重点提取预先配置的Jira Issue Key自定义字段(需提前在Azure DevOps工作项模板中添加该字段,用于存储对应Jira Issue的Key):

    GET https://dev.azure.com/{组织名}/{项目名}/_apis/wit/workitems/{工作项ID}?api-version=7.1-preview.3
    

    解析响应中的自定义字段值(例如字段名为Custom.JiraIssueKey),得到对应的Jira Issue Key(如PROJ-123)。


步骤2:定位或创建目标Jira Release

  1. 查询现有Release
    调用Jira版本API,根据项目Key获取所有Release(版本),筛选出目标Release(可通过名称、状态或发布日期匹配):

    GET /rest/api/3/project/{项目Key}/versions
    

    从响应中提取目标Release的id(后续关联Issue需要用到)。

  2. 创建新Release(若需)
    如果目标Release尚未创建,调用Jira版本创建API生成新Release:

    POST /rest/api/3/version
    Content-Type: application/json
    

    请求体示例:

    {
      "name": "Release v1.0.0",
      "project": { "key": "{项目Key}" },
      "releaseDate": "2024-05-20",
      "status": "released"
    }
    

步骤3:关联Jira Issue到目标Release

  1. 单个Issue关联
    针对每个Jira Issue Key,调用Issue编辑API,更新fixVersions字段,添加目标Release的ID:

    PUT /rest/api/3/issue/{IssueKey}
    Content-Type: application/json
    

    请求体示例:

    {
      "fields": {
        "fixVersions": [
          { "id": "{ReleaseID}" }
        ]
      }
    }
    
  2. 批量Issue关联
    若需关联多个Issue,使用Jira批量编辑API减少请求次数:

    POST /rest/api/3/issue/bulk
    Content-Type: application/json
    

    请求体示例:

    {
      "update": {
        "fixVersions": [
          { "add": { "id": "{ReleaseID}" } }
        ]
      },
      "issues": [
        { "id": "{IssueID1}" },
        { "id": "{IssueID2}" }
      ]
    }
    

步骤4:(可选)在Azure DevOps构建中标记Jira Release关联

为了双向追溯,可更新Azure DevOps构建的标签或自定义属性,添加Jira Release的标识:

PATCH https://dev.azure.com/{组织名}/{项目名}/_apis/build/builds/{构建ID}?api-version=7.1-preview.7
Content-Type: application/json

请求体示例:

{
  "tags": ["JIRA-REL-v1.0.0"]
}

关键注意事项

  • 工作项映射基础:必须确保Azure DevOps工作项与Jira Issue存在明确的映射关系(通过自定义字段存储Jira Key是最可靠的方式),否则无法完成关联。
  • 权限配置:Azure DevOps需生成具有「Build读取/编辑」权限的PAT;Jira需生成具有「Issue编辑/项目版本管理」权限的API令牌。
  • 异常处理:需处理API请求失败的场景(如工作项无Jira Key、Release不存在、权限不足等),建议添加重试机制和日志记录。

内容的提问来源于stack exchange,提问作者Sandeep Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:22:56