【问题标题】:Who approved the deployment in VSTS?谁批准了 VSTS 中的部署?
【发布时间】:2018-06-01 10:38:40
【问题描述】:

我正在使用 VSTS 部署到远程机器。在部署之前,VSTS 会要求 PreDeployment 批准。 是否有任何变量或任何方法可以获取批准人的姓名? 我可以从历史中得到它,但为时已晚。 我知道如何获取触发部署的人的姓名

$(Release.Deployment.RequestedFor) 

Microsoft doesn't seem to mention anything

【问题讨论】:

  • 您可以使用 REST API。你在这里的最终目标是什么?获得批准人姓名后,您想如何处理?
  • 我想获得批准者并将他作为参数传递给我正在运行的 powershell 脚本。

标签: deployment azure-devops azure-pipelines-release-pipeline


【解决方案1】:

您似乎想在部署期间获得部署前批准。

并且预定义变量$(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"
        }
    }

【讨论】:

  • 感谢您的帮助。我知道 REST API,但我希望有更简单的方法。微软喜欢让我们的生活变得困难。
  • 可以有多个审批人。看起来您希望它们处于变量中...您想对它们做什么?
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
相关资源
最近更新 更多