需要为所有管道生成一个存储库,由谁发起、谁批准、谁部署。
您能帮助我如何生成包含需求详细信息的管道报告吗?
需要包含要求详细信息的报告
在发布管道中,我们对生产环境的所有管道都有审批权,因此我想要谁对管道进行审批的报告。
这是没有官方rest api来获取您所需的信息,但您可以在
History
选项卡上获取相关信息。样本如下:
您可以在浏览器上按
F12
查看network trace
来获取相关的rest api。
我有
one
阶段,我的版本需要 pre-deployment approval
,以获取以下脚本所需的信息:
# Set your Azure DevOps organization and project details
$organizationName = "orgname"
$projectName = "projectname"
$releaseId = "14" # Replace with the actual pipeline ID
# Personal Access Token (PAT) for authentication
$pat = "PAT"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $User,$pat)))
$header = @{Authorization = ("Basic {0}" -f $base64AuthInfo); "accept"="application/json;api-version=7.2-preview.8"}
$Url = "https://vsrm.dev.azure.com/$organizationName/$projectName/_apis/Release/releases/$releaseId" + "?approvalFilters=7&propertyFilters=DownloadBuildArtifactsUsingTask%2C%20ReleaseCreationSource"
$content = Invoke-RestMethod -Uri $Url -Headers $header
$creatordisplayname = $content.createdBy.displayName
$creatoremail = $content.createdBy.uniqueName
$approvordisplayname = $content.environments[0].preDeployApprovals[0].approvedBy.displayName
$approvoremail = $content.environments[0].preDeployApprovals[0].approvedBy.uniqueName
$approvalType = $content.environments[0].preDeployApprovals[0].approvalType
$approvalstatus = $content.environments[0].preDeployApprovals[0].status
$deployby = $content.environments[0].deploySteps[0].requestedBy.uniqueName
echo "=======createby ========="
echo "created by: $creatordisplayname, email: $creatoremail"
echo "=======approveby ========="
echo "approvor displayname: $approvordisplayname"
echo "approvor email: $approvoremail"
echo "approval Type: $approvalType"
echo "approval tatus: $approvalstatus"
echo "=======deployby ========="
echo "deployed by: $deployby"
执行结果,正确获取信息。
您可能有多个阶段,每个阶段都有不同的批准,或者一个阶段有多个批准者。您可能需要根据实际版本调整 PowerShell 脚本。