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

Azure DevOps中跨项目自动创建关联用户故事的实现方案咨询

Azure DevOps中跨项目自动创建关联用户故事的实现方案咨询

我之前帮不少团队解决过类似的跨项目协作自动化需求,结合你的场景——同一个Azure DevOps组织下,当Project1里新增了关联到UserStory X的用户故事(需要Team2介入处理),要自动在Team2的Project2中创建对应的关联用户故事,咱们可以通过Service Hooks + 自定义服务接口的组合方式来实现,具体步骤和细节拆解如下:

核心实现思路

当Project1中的目标用户故事(需要Team2介入的新US)被创建并关联到UserStory X时,通过Azure DevOps的Service Hooks监听「工作项更新/创建」事件,触发预先部署的外部服务端点;该服务解析事件 payload 中的关键信息,调用Azure DevOps REST API在Project2中创建镜像的用户故事,并维护好跨项目的关联关系。

具体操作步骤

1. 配置Project1的Service Hooks触发器

  • 进入Project1的「项目设置」→「服务挂钩」,点击「创建订阅」
  • 选择触发事件类型:工作项更新(如果是直接创建关联US,也可以选「工作项创建」,但结合关联动作,选更新更精准)
  • 设置筛选条件,确保只触发符合需求的场景:
    • 工作项类型 = 用户故事
    • 链接类型新增了「相关」(或你团队使用的特定关联类型)
    • 可选:添加团队筛选,比如仅当US分配给Team1且需要Team2介入时触发
  • 选择目标服务为「Web Hooks」,填写你部署的外部服务端点URL,配置请求方式为POST,按需添加自定义头信息(比如用于身份验证的密钥)

2. 编写外部服务端点(处理事件并创建跨项目US)

你可以用Azure Function、ASP.NET Core API或者其他轻量服务来实现这个端点,核心逻辑包括:

  • 接收Service Hooks发送的JSON payload,解析出关键信息:
    • 原关联用户故事(UserStory X)的ID、标题、描述
    • 新创建的需要Team2处理的US的标题、描述、优先级等字段
  • 使用Azure DevOps PAT(个人访问令牌)调用REST API创建Project2的用户故事:
    POST https://dev.azure.com/{你的组织名}/{Project2}/_apis/wit/workitems/$User Story?api-version=7.1-preview.3
    Content-Type: application/json-patch+json
    
    请求体示例(按需调整字段):
    [
      {
        "op": "add",
        "path": "/fields/System.Title",
        "value": "[关联Project1-US] {原US标题}"
      },
      {
        "op": "add",
        "path": "/fields/System.Description",
        "value": "{原US描述}\n\n关联自Project1的UserStory X(ID: {X的ID})"
      },
      {
        "op": "add",
        "path": "/fields/System.AssignedTo",
        "value": "Team2的默认负责人"
      }
    ]
    
  • (可选)创建完成后,调用API给Project2的新US添加链接,关联回Project1的原US,实现双向追踪:
    PATCH https://dev.azure.com/{你的组织名}/{Project2}/_apis/wit/workitems/{新US ID}?api-version=7.1-preview.3
    Content-Type: application/json-patch+json
    
    请求体示例:
    [
      {
        "op": "add",
        "path": "/relations/-",
        "value": {
          "rel": "System.LinkTypes.Related",
          "url": "https://dev.azure.com/{组织名}/_apis/wit/workitems/{Project1中原US的ID}",
          "attributes": {
            "comment": "自动关联自Project1的协作需求"
          }
        }
      }
    ]
    

3. 权限配置要点

  • 创建用于API调用的PAT:在Azure DevOps个人资料→「安全」→「个人访问令牌」,勾选「工作项」的「读取」和「写入」权限,以及对应项目的访问权限
  • 确保外部服务能访问Azure DevOps的API端点,避免网络防火墙限制

4. 测试与调试

  • 手动在Project1创建一个关联到UserStory X的新US,触发Service Hooks
  • 检查外部服务的日志,确认事件是否被正确接收、解析
  • 查看Project2是否生成了对应的用户故事,关联关系是否正常
  • 若出现触发异常,调整Service Hooks的筛选条件,或者检查API调用的权限、参数是否正确

额外注意事项

  • 避免重复创建:在外部服务中记录已处理的工作项ID,或者通过Azure DevOps的工作项标签/自定义字段标记已同步,防止重复触发时生成重复US
  • 异常处理:添加API调用失败的重试机制,或者配置告警通知,确保同步失败时能及时发现
  • 字段映射:根据两个项目的用户故事字段差异,调整API请求体中的字段映射,确保关键信息完整同步

备注:内容来源于stack exchange,提问作者rewa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:00:30