vNext TFS 2015 Builds - удаляет из набора изменений ассоциации изменений и рабочих элементов, а затем повторно добавляет их
Целевая среда: обновление 3 TFS 2015
Мы пытаемся получить систему сборки vNext, которая позволит нам связывать наборы изменений и рабочие элементы со сборкой только после ее развертывания с помощью Release Management. Однако система сборки TFS vNext автоматически связывает эти элементы со сборками во время сборки (на основе последней успешной сборки). В старой системе сборки XAML было свойство для ее отключения, называемое SkipGetChangesetsAndUpdateWorkItems, но оно больше не существует в новой системе.
Поэтому мне нужно добавить задачу / сценарий в конце процесса сборки vNext, чтобы удалить эти ассоциации (а затем добавить аналогичную задачу в Release Management, чтобы повторно связать их). Это не самая простая задача в мире, но кажется, что что-то должно быть осуществимо через TFS REST API.
Однако я не могу на всю жизнь выяснить, как эти ассоциации формируются. В JSON для наборов изменений, похоже, не упоминается связанная сборка, а в JSON для сборки, похоже, не упоминается список связанных наборов изменений.
Как определяются эти связи между наборами изменений / рабочими элементами и сборками?
1 ответ
Нет такого API отдыха, который мог бы добиться этого при удалении изменений. В сборке XAML соответствующая информация хранится в таблице SQL, которая называется dto.tbl_BuildDefinition
, для которого вы хотите повторно связать наборы изменений и изменить значения в LastBuildUri
, LastGoodBuildUri
а также LastGoodBuildLabel
, Подробности смотрите по этой ссылке: Пересвязать наборы изменений и рабочие элементы со сборкой. Для определения сборки vNext я не нашел ничего похожего в SQL. Однако должно быть где-то хранится ассоциация.
Для связи между work item и build есть метод, который называется $WorkItemAssociatedURL
такие как
$WorkItemAssociatedURL = $collectionURL + $project + “/_apis/build/builds/” + $BuildId + “/workitems?api-version=2.0”
$ResponseJSON = Invoke-RestMethod -Uri $WorkItemAssociatedURL -ContentType “application/json” -headers $headers -Method GET
Для более подробной информации вы можете обратиться к этому блогу: Создайте ассоциацию с рабочими элементами в vNext