Как сравнить метку TFVC с последним исходным кодом с помощью конвейера Azure - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь сравнить изменения между меткой и последним источником и взять файлы различий для моего развертывания.это возможно?

1 Ответ

0 голосов
/ 06 мая 2019

Вы можете получить элементы и версию метки с помощью Rest API, а также получить последнюю версию набора изменений, а затем сравнить их.

Пример небольшого сценария PowerShell: (добавьте задачу PowerShell в свой конвейер)

$azureDevopsUrl = "https://dev.azure.com/{organization}"
$user = ""
$pat = "YOUR-PAT-HERE"  
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

#Get Label Id:
$myLabel = "test"
$url = "$azureDevopsUrl/{project}/_apis/tfvc/labels?api-version=4.0"
$labels = (Invoke-RestMethod -Uri $url -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType application/json).value
$label = $labels.Where({ $_.name -eq $myLabel })

#Get Label Details:
$labelUrl = "$azureDevopsUrl/_apis/tfvc/labels/$($label.id)/items?api-version=4.0"
$labelDetails = (Invoke-RestMethod -Uri $labelUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType application/json).value

#Get Changeset Details:
$latestSourceChangeset = $env:Build_SourceVersion
$changeSetUrl = "$azureDevopsUrl/_apis/tfvc/changesets/$latestSourceVersion/changes?api-version=4.0"
$cahngeset = (Invoke-RestMethod -Uri $changeSetUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType application/json).value

# Now compare the versions and get the files you want

Существует специальная переменная для получения последнего источника: $(Build.SourceVersion), поэтому я использовал ее в сценарии для {changeset-id}, если вы запускаете сценарий, не находящийся в конвейере, замените его конкретным идентификатором набора изменений.

Ссылки на API отдыха: Ярлыки , Ярлык и Changeset .

...