Получение родителя рабочего элемента через REST API

Мы разрабатываем расширение Azure DevOps для передачи изменений рабочих элементов во внешнюю систему.

Мы хотели бы поддерживать / сохранять иерархию в Azure DevOps (Epic-> Feature -> PBI / Bug) в целевой системе, поэтому нам нужно выяснить, какой родительский элемент имеет рабочий элемент.

При извлечении сущности рабочего элемента из API он выглядит так (немного сокращенно)

{
    "id": 5202,
    "rev": 2,
    "fields": {
        "System.WorkItemType": "Task",
        "System.State": "To Do",
        "System.Reason": "New task",
        "System.CreatedDate": "2017-10-30T10:18:06.233Z",
        "System.CreatedBy": "Jesper Lund Stocholm",
        "Microsoft.VSTS.Common.Priority": 2,
        "Microsoft.VSTS.Scheduling.RemainingWork": 23.0,
        "Microsoft.VSTS.Common.StateChangeDate": "2017-10-30T10:18:06.233Z",
    },
    "_links": {
            "self": {
            "href": "https://{myorg}.visualstudio.com/_apis/wit/workItems/5202"
        },
        "workItemUpdates": {
            "href": "https://{myorg}.visualstudio.com/_apis/wit/workItems/5202/updates"
        },
        "workItemRevisions": {
            "href": "https://{myorg}.visualstudio.com/_apis/wit/workItems/5202/revisions"
        },
        "workItemHistory": {
            "href": "https://{myorg}.visualstudio.com/_apis/wit/workItems/5202/history"
        },
        "html": {
            "href": "https://{myorg}.visualstudio.com/web/wi.aspx?pcguid=e5d991b2-9879-497c-85fb-c618f144a9c5&id=5202"
        },
        "workItemType": {
            "href": "https://{myorg}.visualstudio.com/6847ebed-cbca-4510-8baa-228c7c55ba8d/_apis/wit/workItemTypes/Task"
        },
        "fields": {
            "href": "https://{myorg}.visualstudio.com/_apis/wit/fields"
        }
    },
    "url": "https://{myorg}.visualstudio.com/_apis/wit/workItems/5202"
}

Наиболее очевидное место для поиска - https: // {myorg} .visualstudio.com / _apis / wit / fields.

Но мы не можем найти никаких следов ссылок на «родительскую сущность».

Неужели это значение не выставлено?


person Jesper Lund Stocholm    schedule 12.09.2018    source источник


Ответы (1)


Вы можете получить ссылки на все рабочие элементы (родительские, дочерние и т. Д.), Добавив $expand=relations в строку api.

Например:

https://shaykia.visualstudio.com/_apis/wit/workItems/4?$expand=relations

В результате вы увидите раздел «отношения»:

"relations": [
    {
      "rel": "System.LinkTypes.Hierarchy-Forward",
      "url": "http:/shaykia.visualstudio.com/_apis/wit/workItems/11",
      "attributes": {
        "isLocked": false
      }
    },
    {
      "rel": "System.LinkTypes.Hierarchy-Reverse",
      "url": "http://shaykia.visualstudio.com/_apis/wit/workItems/3",
      "attributes": {
        "isLocked": false
      }
    }
  ], 

System.LinkTypes.Hierarchy-Reverse предназначен для родителя (в данном случае для рабочего элемента с идентификатором 3 он является родителем), а System.LinkTypes.Hierarchy-Forward - для дочернего элемента.

person Shayki Abramczyk    schedule 12.09.2018
comment
Спасибо, @shayki! - person Jesper Lund Stocholm; 13.09.2018
comment
@shayki Как мне отфильтровать только эти отношения, чтобы получить только те, у которых есть определенные атрибуты? - person Andreas; 12.08.2019
comment
@Andreas Я не думаю, что вы можете фильтровать URL-адрес, вам нужно фильтровать результат. - person Shayki Abramczyk; 12.08.2019
comment
?$expand=relations где-нибудь в документации? Я не могу его найти. - person Jake12342134; 06.03.2020