如何使用Azure Pipeline将TFVC标签与最新的源代码进行比较



我正在尝试比较标签和最新源之间的更改,并将差异文件用于部署。有可能吗?

您可以使用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}的脚本,如果您在管道中运行脚本,请替换IT替换IT特定更改ID。

引用REST API:标签,标签和更改。

最新更新