【发布时间】:2019-03-10 20:54:42
【问题描述】:
请帮助了解如何获取 TFS 2017 更新 3.1 中每个发布定义的发布批准者列表。
感谢和问候
【问题讨论】:
标签: tfs
请帮助了解如何获取 TFS 2017 更新 3.1 中每个发布定义的发布批准者列表。
感谢和问候
【问题讨论】:
标签: tfs
您可以调用 REST API (Definitions - Get) 来检索批准人列表。
下面的PowerShell脚本可以获取每个发布定义的发布批准者列表:(只需相应地替换参数)
Param(
[string]$baseurl = "http://SERVER:8080/tfs/DefaultCollection",
[string]$projectName = "0511ScrumTFVC",
[string]$user = "Domain\user",
[string]$token = "password/PAT"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$releasesuri = "$baseurl/$projectName/_apis/release/definitions"
$releasesresult = Invoke-RestMethod -Uri $releasesuri -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$redids = $releasesresult.value.id
foreach ($redid in $redids)
{
$uri = "$baseurl/$projectName/_apis/release/definitions/$redid"
$approvers = Invoke-RestMethod -Uri $uri -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$preApprovers = $approvers.environments.preDeployApprovals.approvals.approver.displayName
$postApprovers = $approvers.environments.postDeployApprovals.approvals.approver.displayName
write-host "Release ID: $redid - preApprovers:"
foreach ($preApprover in $preApprovers)
{
write-host $preApprover
}
write-host "`nRelease ID: $redid - postApprovers:"
foreach ($postApprover in $postApprovers)
{
write-host $postApprover
}
}
【讨论】: