【发布时间】:2019-05-09 22:01:20
【问题描述】:
我希望能够在发布运行时记录谁批准了发布。我们有审计要求来证明谁是环境的看门人。以下是事件的顺序:
- 发布被触发并等待批准。
- 其他用户批准发布
- 发布完成。
随着发布的进行,我希望能够记录批准者是谁。我们发现如果您使用 Approvals API,您可以获得 ApprovalID。问题是这只能在第 1 步和第 2 步之间执行。在批准发布后,您将无法再获得 ApprovalID,它是空的。
然后我们查看了特定版本的信息,审批者区域中没有任何数据。即使在文档示例响应中,您也会看到数据不存在。 2017 年我可以做些什么来获取这些信息?
https://docs.microsoft.com/en-us/azure/devops/integrate/previous-apis/rm/releases?view=tfs-2017
$RecentReleaseUrl = $TFSCollectionPath + $TFSProjectName + "/_apis/Release/approvals?releaseIdsFilter=$RecentRealease&api-version=3.2-preview.2"
$RecentReleasedefinition = Invoke-RestMethod -Uri $RecentReleaseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$ApprovalID = $RecentReleasedefinition.value.id
【问题讨论】:
-
您希望它作为内联脚本运行还是在手动完成发布后运行?
-
是的,作为一个内联脚本来跟踪谁批准了当前环境的发布。我最终会在发布期间将信息发送给 ELK,以进行跟踪和报告以供审计。我今天将尝试下面的解决方案,并将提供更新。
-
在这种情况下,这个功能应该比我发布的更简单,如果你想让我也分享一下,请告诉我。
标签: tfs azure-devops azure-pipelines