我正在尝试比较标签和最新来源之间的更改,并为我的部署获取差异文件。有可能吗?
答案 0 :(得分:0)
您可以使用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}
的脚本中使用了它,如果您不在管道中运行脚本,请替换它的特定变更集ID。< / p>