Вы можете получить элементы и версию метки с помощью 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 .