我想分配所需的批准基于谁提出公关,而不是什么公关是上。
我有一组由多个团队维护的repos。我想有一个团队自动添加根据需要的审查基于用户作出的公关。
这有可能吗?
发布于 2020-08-20 08:19:37
这有可能吗?
这是可能的。但是这个过程将非常复杂,因为Azure没有这样的开箱即用功能,所以我们必须使用Build Validation/Rest API/PS来实现您想要的功能。
1.创建带有PS任务的经典构建管道。
2.在分支策略中加入构建验证。因此,如果有人提出公关,这条管道将首先运行。
3.如果一个管道是由PR触发的,则可以访问$(Build.Repository.ID)、$(Build.RequestedFor)(用户进行PR)、$(Build.RequestedForEmail)(用户的电子邮件)等变量。见预定义变量。
4.使用各队-得到获取当前项目中的团队列表。现在您有了TeamID,您现在知道了用户所属的相应的TeamID。
5.使用powershell 交换机或if语句动态定义用户所属的团队。
switch ("$(Build.RequestedFor)")
{
"User1" {$TeamID="xxxx"; Break}
"User2" {$TeamID="xxxx"; Break}
"User3" {$TeamID="xxxx"; Break}
Default {
"No matches"
}
}6.使用配置-列表列出本项目中的ConfigurationID。(您还可能需要通过ConfigurationID和SourceBranch来确定正确的SourceBranch)
7.然后使用配置-更新更新分支策略以动态定义所需的审批者。
请求主体如下所示:
{
"isEnabled": true,
"isBlocking": true,
"type": {
"id": "fd2167ab-b0be-447a-8ec8-39368250530e"
},
"settings": {
"requiredReviewerIds": [
"{replace it with corresponding TeamID}"
],
"filenamePatterns": [],
"addedFilesOnly": false,
"scope": [
{
"repositoryId": "{replace it with your repoID in step3}",
"refName": "refs/heads/master",
"matchKind": "exact"
}
]
}
}您可以在同一个PS任务中执行step5和step7。
https://stackoverflow.com/questions/63490812
复制相似问题