如何解决根据提升用户设置拉取请求策略
我想根据谁提出PR而不是PR的内容来分配所需的批准人。
我有一组由多个团队维护的仓库。我希望有一个团队根据进行PR的用户自动添加为必需的审阅者。
这有可能吗?
解决方法
这有可能吗?
这是可能。但是该过程将非常复杂,因为Azure Devops没有这种即用的功能,因此我们必须使用Build Validation/Rest API/PS
来实现所需的功能。
1。使用PS任务创建Classic Build管道。
2。在分支机构策略中添加build validation。因此,如果有人提出公关,该管道将首先运行。
3。如果PR触发了一个管道,我们可以访问变量$(Build.Repository.ID)
,$(Build.RequestedFor)
(创建PR的用户),$(Build.RequestedForEmail)
(用户的电子邮件)。参见predefined variables。
4。使用Teams-Get获取当前项目中的团队列表。您现在有了TeamID,现在知道了用户所属的相应TeamID。
5。使用powershell switch或if语句动态定义用户所属的团队。
switch ("$(Build.RequestedFor)")
{
"User1" {$TeamID="xxxx"; Break}
"User2" {$TeamID="xxxx"; Break}
"User3" {$TeamID="xxxx"; Break}
Default {
"No matches"
}
}
6。使用Configurations-List列出此项目中的ConfigurationID。 (您可能还需要通过SourceRepo和SourceBranch确定正确的ConfigurationID)
7。然后使用Configuration-Update更新分支策略以动态定义所需的批准者。
请求正文如下:
{
"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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。