Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 根据提升用户设置拉取请求策略_Azure Devops - Fatal编程技术网

Azure devops 根据提升用户设置拉取请求策略

Azure devops 根据提升用户设置拉取请求策略,azure-devops,Azure Devops,我希望根据提交PR的人而不是PR的内容来分配所需的批准人 我有一套由多个团队维护的回购协议。我想有一个团队被自动添加为所需的审查人的基础上的用户作出公关 这可能吗 这可能吗 这是有可能的。但是这个过程会非常复杂,因为Azure Devops没有这种现成的功能,所以我们必须使用构建验证/restapi/PS来实现您想要的 1.使用PS任务创建经典构建管道 2.附加分支策略。因此,如果有人提出PR,该管道将首先运行 3.如果PR触发了一个管道,我们可以访问变量,如$(Build.Repository

我希望根据提交PR的人而不是PR的内容来分配所需的批准人

我有一套由多个团队维护的回购协议。我想有一个团队被自动添加为所需的审查人的基础上的用户作出公关

这可能吗

这可能吗

这是有可能的。但是这个过程会非常复杂,因为Azure Devops没有这种现成的功能,所以我们必须使用
构建验证/restapi/PS
来实现您想要的

1.使用PS任务创建经典构建管道

2.附加分支策略。因此,如果有人提出PR,该管道将首先运行

3.如果PR触发了一个管道,我们可以访问变量,如
$(Build.Repository.ID)
$(Build.RequestedFor)
(创建PR的用户),
$(Build.RequestedForEmail)
(用户的电子邮件)。看

4.用于获取当前项目中的团队列表。您现在拥有了TeamID,您现在知道了用户所属的相应TeamID

switch ("$(Build.RequestedFor)")
{
    "User1" {$TeamID="xxxx"; Break}
    "User2" {$TeamID="xxxx"; Break}
    "User3" {$TeamID="xxxx"; Break}
    Default {
        "No matches"
    }
}
5.使用powershell或if语句动态定义用户所属的团队

switch ("$(Build.RequestedFor)")
{
    "User1" {$TeamID="xxxx"; Break}
    "User2" {$TeamID="xxxx"; Break}
    "User3" {$TeamID="xxxx"; Break}
    Default {
        "No matches"
    }
}
6.用于列出本项目中的配置ID。(您可能还需要根据SourceRepo和SourceBranch确定正确的配置ID)

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任务中执行第5步和第7步。

开箱即用,在创建拉取请求时创建它,看起来像否。您可以在开发人员社区上记录功能请求。我可以通过添加使用API添加所需审批人的构建验证管道来实现这一点。