Связывание нескольких существующих рабочих элементов со сборкой в ​​очереди (из SDK Azure Devops) - PullRequest
0 голосов
/ 01 ноября 2019

В API REST Azure Devops я хочу связать задачу \ bug \ story (которая уже существует) при запуске сборки. Как мне это сделать?

checkInTicket может быть решением, но оно не задокументировано .

Полезная нагрузка, основанная на сработанном ответе Мерлина:

var payload = new object[] {
    new {
        op = "add",
        path = "/relations/-",
        value =
        new {
            rel = "ArtifactLink",
            url = $"vstfs:///Build/Build/{buildId}",
            attributes = new
            {
                name = "Build"
            }
        }
    }
};

1 Ответ

1 голос
/ 09 ноября 2019
  • 1. Подход 1

То же самое с операцией пользовательского интерфейса, чтобы связать существующий рабочий элемент со сборкой, просто нужно обновить один параметр в определении сборки:

Это API:

https://dev.azure.com/{org name}/{project name}/_apis/build/definitions/{definition id}?api-version=5.0-preview.6

В своем теле запроса, пожалуйста, обратите внимание на следующую часть скрипта:

"options": [
    {
      "enabled": true,
      "inputs": {
        "branchFilters": "[\"+refs/heads/*\"]",
        "additionalFields": "{}"
      },
      "definition": {
        "id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
      }
    }
  ]

enabled представляет, будет ли он создавать ссылки на рабочие элементы, связанные с соответствующими изменениями послеСборка завершена. Чтобы достичь желаемого, установите значение enabled на true. Значение id является фиксированным и представляет эту опцию, поэтому здесь не стоит беспокоиться об этом значении id.

При обновлении определения сборки этим методом не забывайте увеличивать ревизию в теле запроса. revision инкремент означает обновление определения как новой редакции. или действие update на самом деле не будет успешным.

Но что вас должно заинтересовать, так это обновление должно быть завершено до начала сборки. Таким образом, он автоматически создаст ссылку на существующий WIT после завершения сборки.

Кроме того, это добавит только эту ссылку сборки к рабочему элементу, который связан с изменениями .

* 1030. *
  • 2. Подход 2

Если вышеупомянутое не то, что вы хотите, и вы просто хотите связать рабочий элемент для сборки во время запуска сборки. Боюсь сказать, нет такого прямого API, который мог бы закончить это.

Вам может понадобиться использовать 2 API: один из них build build , а другой API - добавить эту ссылку build to work item .

Пример тела запроса добавления ссылки на сборку к рабочему элементу:

[
    {
        "op": "test",
        "path": "/rev",
        "value": "2"
    },
    {
        "op": "add",
        "path": "/relations/-",
        "value":
        {
            "rel": "ArtifactLink",
            "url": "vstfs:///Build/Build/{the build id that you just queued}"
        }
    }
]

Этот метод требует, чтобы вы получили сгенерированный BuildId после того, как поставили в очередь сборку, а затем передали его в workitem API. В отличие от подхода 1, в этом методе вы можете настроить идентификатор рабочего элемента, к которому вы хотите добавить ссылку на сборку.

...