用于 SWIMLANE 的 Azure DevOps REST API

rah*_*hul 2 azure-devops

我正在尝试将 Servicenow 与 Azure Devops Board 集成,以使用 REST API 在工作项上创建/更新等

我成功地在工作项上创建和更新了很多东西

我找不到告诉工作项落在特定泳道中的 API

在此处输入图片说明

如果你查看我附上的图片,它有一个默认的泳道(测试)和自定义的......所以 H 有一个 api 将它从“ToDo”移动到“Doing”,但是如果你注意到有多个“Doing” “因为有不同的泳道,所以任何人都可以请帮助技巧是什么或告诉工作项落在特定泳道中的 API

我做了一些研究,发现“System.BoardLane”我确实在后期和补丁中使用过

错误:

{
    "$id": "1",
    "customProperties": {
        "ReferenceName": null
    },
    "innerException": null,
    "message": "TF401326: Invalid field status 'ReadOnly' for field 'System.BoardLane'.",
    "typeName": "Microsoft.TeamFoundation.WorkItemTracking.Server.WorkItemFieldInvalidException, Microsoft.TeamFoundation.WorkItemTracking.Server",
    "typeKey": "WorkItemFieldInvalidException",
    "errorCode": 600171,
    "eventId": 3200
}
Run Code Online (Sandbox Code Playgroud)

然后我使用了操作“op”:“move”

错误:

{
    "$id": "1",
    "innerException": null,
    "message": "Move/Copy is not implemented.",
    "typeName": "Microsoft.VisualStudio.Services.WebApi.Patch.PatchOperationFailedException, Microsoft.VisualStudio.Services.WebApi",
    "typeKey": "PatchOperationFailedException",
    "errorCode": 0,
    "eventId": 3000
}
Run Code Online (Sandbox Code Playgroud)

Mer*_*SFT 5

用于 SWIMLANE 的 Azure DevOps REST API

事实上,你已经非常接近正确答案了。

您遇到的第一个错误:TF401326: Invalid field status 'ReadOnly' for field 'System.BoardLane'表示如果您想通过 API更新字段来修改SwimlaneSystem.BoardLane,我们不允许这样做,因为它是只读的

(对于那些字段,不仅System.BoardLane是只读的,而且是System.BoardColumn

这是设计好的。


为了更新SwimLane,这里您需要通过 API更新扩展字段而不是系统字段

  • 第1步:

调用Get - Boards API 获取Board 信息。在其响应正文中,扩展字段名称将显示在fields -> rowField 下

样本:

GET https://dev.azure.com/{org name}/{project name}/{team name}/_apis/work/boards/Stories?api-version=5.1
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这些扩展字段的引用名称将包括一个对板唯一的GUID(例如WEF_6623ED31B8E04C778FB1129D3239B1A7_Kanban.Lane)。

  • 第2步:

调用Update - Work Items API,使用您在上面获得的字段名称作为路径(例如/fields/WEF_6623ED31B8E04C778FB1129D3239B1A7_Kanban.Lane)并输入通道值作为您要将项目移动到的行的名称:

样本:

PATCH https://dev.azure.com/{org name}/{project name}/_apis/wit/workitems/{WIT id}?api-version=5.1
Run Code Online (Sandbox Code Playgroud)

请求正文:

[
  {
    "op": "add",
    "path": "/fields/WEF_6623ED31B8E04C778FB1129D3239B1A7_Kanban.Lane",
    "from": null,
    "value": "Lane for product team"
  }
]
Run Code Online (Sandbox Code Playgroud)

Lane for product team泳道之一

现在,您将看到工作项移动到您指定的相应通道中。


注意: 扩展字段的 GUID 对于板是唯一的。不同的板有不同的扩展文件 GUID 值。