CI / CD管道部署发布后,Azure devops自动合并

时间:2019-05-17 10:06:22

标签: git azure-devops continuous-integration azure-pipelines continuous-deployment

我有一个经典的环境。设置如下:

我有2个分支:DevelopMaster

Azure DevOps中是否可以设置以下规则:

  1. 在开发环境中成功部署时(在 ------> 来自动创建一个pull request,将 develop 合并到 Master 中。 p>

  2. 或另一个:如果 develop分支Build成功,则 ------->     自动创建

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用Azure DevOps Rest API创建请求请求,因此在“构建/发布”末尾添加执行此任务的PowerShell任务,例如:

$body =  @{
             sourceRefName= "$(Build.SourceBranch)"
             targetRefName = "refs/heads/master"
             title = "PR from Pipeline"
     }

$head = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"  }
$json = ConvertTo-Json $body
$url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.Name)/pullrequests?api-version=5.0"
Invoke-RestMethod -Uri $url -Method Post -Headers $head -Body $json -ContentType application/json

Photo3

您需要允许脚本访问OAuth令牌(选中“代理作业”选项中的复选框):

Photo1

结果:

enter image description here

我将基本参数放在了正文中(从分支,到分支,标题),但是您可以添加更多参数,例如审阅者,检查文档here

答案 1 :(得分:0)

  1. 没有内置任务,但是您可以使用oauth令牌自己编写脚本,也可以使用自己的auth对api发出请求。
  2. 几乎可以在此处使用相同的方法,或者您可以使用分支策略在合并请求到主服务器之前强制对拉取请求进行验证(在我看来,这是更好的方法,因为在每次提交时从develop到master进行合并是相当不错的毫无意义)。