如何在Azure DevOps管道上批量更改批准者?

时间:2019-07-17 16:11:44

标签: azure azure-devops azure-pipelines devops

是否有一种方法可以批量更改Azure DevOps(发行版)中的批准者?也许一些CLI命令?

我需要更改发布管道中许多阶段/环境的批准者。我不想单击GUI来执行此操作。还有其他选择吗?

2 个答案:

答案 0 :(得分:0)

您可以使用Azure DevOps Rest API进行操作。

有api Approvals - Update

PATCH https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/approvals/{approvalId}?api-version=5.0

答案 1 :(得分:0)

如果您是Powershell的爱好者,那么我会像这样编写一个模块来解决问题。它被称为AzurePipelinesPS,它是open source,因此一直在进行更新。

只需在管理性PowerShell会话中运行Install-Module -Name AzurePipelinesPS -Force即可下载该模块。在这里,您可以使用New-APSession命令来存储会话信息以供以后使用。查看project documentation,了解如何创建和保存会话信息。

一旦您有一个会话,就可以运行以下命令以找到Powershell的out grid view命令中某个团队项目的所有待处理的批准,选择您要使用的批准,然后单击“确定”。批准将保存到$ approvals变量中,然后传递到Update-APApproval命令。 Update-APApproval命令会将状态设置为“已批准”。它还支持所有用于拒绝批准的可用批准状态。

$approvals = Get-APApprovalList -Session 'yourSessionName' | Out-GridView -PassThru Update-APApproval -Session 'yourSessionName' -ApprovalId $approvals.Id -Status 'Approved'

修改: 重新阅读您的问题后,我相信您不是要批量批准发布,而是要批量编辑发布定义本身。您仍然可以使用AzurePipelinesPS这样做,但是您要完成的工作比初始问题要复杂一些。但是,我会尽力进行解释。

首先,您可以使用Get-APReleaseDefinitionList遍历您想要的定义。这将标识您需要使用Get-APReleaseDefinition -ReleaseId $yourIds的发行版ID。接下来,您可以遍历返回的定义对象,并修改批准前或批准后对象以包括要添加的新用户或组。然后对已修改的新定义对象使用Update-APReleaseDefinition

创建广告组或Azure团队/组并使用这些组代替个人会更容易。最终可以通过Azure DevOps安全性或AD轻松维护组成员。