Конвейеры CI / CD Azure обеспечивает автоматическое объединение после выпуска развертывания - PullRequest
2 голосов
/ 17 мая 2019

У меня есть классический env. настроить как:

У меня есть 2 ветви: Develop и Master.

Можно ли в DevOps Azure настроить следующее правило:

  1. При успешном развертывании в среде разработчика (определено в выпустить конвейер лазурных девопов) ------> автоматически создать pull request для объединения развить в Master .

  2. или другой: если Build из развернуть ветвь является преемником -------> создать автоматически a pull request для объединения превратиться в мастера .

Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 19 мая 2019

Редактировать: Я только что загрузил расширение, которое делает это: https://marketplace.visualstudio.com/items?itemName=ShaykiAbramczyk.CreatePullRequest

Вы можете использовать API Azure DevOps Rest для создания запроса на извлечение, поэтому в конце сборки / выпуска добавьте задачу 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

Я поместил основные параметры в тело (от ветви до ветви, заголовка), но вы можете добавить больше параметров, таких как рецензенты, проверьте документы здесь .

0 голосов
/ 17 мая 2019
  1. для этого нет встроенных задач, но вы можете написать это самостоятельно, используя токен oauth или свой собственный auth для выдачи запроса к API.
  2. почти так жеподход можно использовать здесь, или вы можете использовать политики Branch, чтобы принудительно проверять запросы по запросу, прежде чем объединять их с master (что, на мой взгляд, лучше, потому что слияние с development на master при каждой фиксации довольно бессмысленно).
...