首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于提升用户设置拉请求策略

基于提升用户设置拉请求策略
EN

Stack Overflow用户
提问于 2020-08-19 15:57:03
回答 1查看 60关注 0票数 1

我想分配所需的批准基于谁提出公关,而不是什么公关是上。

我有一组由多个团队维护的repos。我想有一个团队自动添加根据需要的审查基于用户作出的公关。

这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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语句动态定义用户所属的团队。

代码语言:javascript
复制
switch ("$(Build.RequestedFor)")
{
    "User1" {$TeamID="xxxx"; Break}
    "User2" {$TeamID="xxxx"; Break}
    "User3" {$TeamID="xxxx"; Break}
    Default {
        "No matches"
    }
}

6.使用配置-列表列出本项目中的ConfigurationID。(您还可能需要通过ConfigurationID和SourceBranch来确定正确的SourceBranch)

7.然后使用配置-更新更新分支策略以动态定义所需的审批者。

请求主体如下所示:

代码语言:javascript
复制
{
  "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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63490812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档