谁批准了在 VSTS 中的部署?
Who approved the deployment in VSTS?
我正在使用 VSTS 部署到远程机器。在部署之前,VSTS 要求预部署批准。
是否有任何变量或任何方法来获取批准人的姓名?
我可以从历史中得到它,但为时已晚。
我知道如何获取触发部署的人的姓名
$(Release.Deployment.RequestedFor)
您似乎希望在部署过程中获得预部署批准。
并且预定义变量 $(Release.Deployment.RequestedFor)
不用于您的情况,因为它是变量显示创建发布的显示名称(而不是在部署前批准发布的用户)。
要获得预部署批准,您可以使用 REST API Get release:
GET https://{account}.vsrm.visualstudio.com/{project}/_apis/release/releases/{releaseId}?api-version=4.1-preview.2
对于发布 ID,您可以使用预定义变量 $( Release.ReleaseId)
。您可以从响应中获得每次部署批准,如下所示:
"preApprovalsSnapshot": {
"approvals": [
{
"rank": 1,
"isAutomated": false,
"isNotificationOn": false,
"approver": {
"displayName": "marina liu",
"url": "https://app.vssps.visualstudio.com/A2336cdc9-ffd7-41bb-a6cf-19002c9a9d5f/_apis/Identities/18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"_links": {
"avatar": {
"href": "https://marinaliu.visualstudio.com/_apis/GraphProfile/MemberAvatars/msa.YjE2YzFlOWUtNWJkYy03NzU1LWJjNWEtNDU4M2Q5ZThlMjk0"
}
},
"id": "18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"uniqueName": "****@****.com",
"imageUrl": "https://marinaliu.visualstudio.com/_api/_common/identityImage?id=18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"descriptor": "msa.YjE2YzFlOWUtNWJkYy03NzU1LWJjNWEtNDU4M2Q5ZThlMjk0"
},
"id": 0
}
],
"approvalOptions": {
"requiredApproverCount": null,
"releaseCreatorCanBeApprover": true,
"autoTriggeredAndPreviousEnvironmentApprovedCanBeSkipped": false,
"enforceIdentityRevalidation": false,
"timeoutInMinutes": 0,
"executionOrder": "beforeGates"
}
}
我正在使用 VSTS 部署到远程机器。在部署之前,VSTS 要求预部署批准。 是否有任何变量或任何方法来获取批准人的姓名? 我可以从历史中得到它,但为时已晚。 我知道如何获取触发部署的人的姓名
$(Release.Deployment.RequestedFor)
您似乎希望在部署过程中获得预部署批准。
并且预定义变量 $(Release.Deployment.RequestedFor)
不用于您的情况,因为它是变量显示创建发布的显示名称(而不是在部署前批准发布的用户)。
要获得预部署批准,您可以使用 REST API Get release:
GET https://{account}.vsrm.visualstudio.com/{project}/_apis/release/releases/{releaseId}?api-version=4.1-preview.2
对于发布 ID,您可以使用预定义变量 $( Release.ReleaseId)
。您可以从响应中获得每次部署批准,如下所示:
"preApprovalsSnapshot": {
"approvals": [
{
"rank": 1,
"isAutomated": false,
"isNotificationOn": false,
"approver": {
"displayName": "marina liu",
"url": "https://app.vssps.visualstudio.com/A2336cdc9-ffd7-41bb-a6cf-19002c9a9d5f/_apis/Identities/18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"_links": {
"avatar": {
"href": "https://marinaliu.visualstudio.com/_apis/GraphProfile/MemberAvatars/msa.YjE2YzFlOWUtNWJkYy03NzU1LWJjNWEtNDU4M2Q5ZThlMjk0"
}
},
"id": "18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"uniqueName": "****@****.com",
"imageUrl": "https://marinaliu.visualstudio.com/_api/_common/identityImage?id=18cb43b4-0b0d-43ad-94dc-c8e2b56704c0",
"descriptor": "msa.YjE2YzFlOWUtNWJkYy03NzU1LWJjNWEtNDU4M2Q5ZThlMjk0"
},
"id": 0
}
],
"approvalOptions": {
"requiredApproverCount": null,
"releaseCreatorCanBeApprover": true,
"autoTriggeredAndPreviousEnvironmentApprovedCanBeSkipped": false,
"enforceIdentityRevalidation": false,
"timeoutInMinutes": 0,
"executionOrder": "beforeGates"
}
}