Как сделать запрос на удаленную ветку в конвейере в Azure DevOps? - PullRequest
1 голос
/ 23 апреля 2020

Этот вопрос похож на следующий вопрос: Как сделать Git запрос на извлечение удаленных ветвей через командную строку

У меня есть конвейер, который генерирует ветку с новый документ, который необходимо интегрировать в удаленный репозиторий для главной ветки. Это нужно сделать с помощью запроса на удаление, я попытался с помощью команды git git request-pull безрезультатно, так как я не вижу pr в поле. Это то, что у меня есть в данный момент (что напрямую объединяет новую ветку с мастером без пр.).

- script: |
    cd documentation
    git config --global user.email "myemail@someOrganization.com" && git config --global user.name "John Doe"
    git checkout -b release-notes
    dir
    mv $(System.DefaultWorkingDirectory)\\..\\tempdocs.md $(System.DefaultWorkingDirectory)\\..\\"$(SourceBranch)".md
    mv $(System.DefaultWorkingDirectory)\\..\\"$(SourceBranch)".md docs\\applications\\app\\versions\\"$(SourceBranch)".md
    git add .
    git commit -m "add release notes for $(SourceBranch)"
    git checkout feature/automatic-docs && git merge release-notes && git push origin
  displayName: 'Publish Documentation'

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете использовать Azure REST API сервисов devops для создания запроса на получение .

POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=5.1

Так что вам просто нужно запустить git Команды в задаче powershell и добавьте еще несколько кодов для вызова выше API. Пожалуйста, проверьте приведенный ниже пример:

 - powershell: | 
        git config --global user.email "@email.com" 
        git config --global user.name "name"
        git checkout -b new_branch -q
        git ....

        $PAT= "Personal access token"
        $base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))

        $url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.ID)/pullrequests?api-version=5.1"
        $body = '{
              "sourceRefName": "refs/heads/sourcebranch",
              "targetRefName": "refs/heads/targetbranch",
              "title": "A new feature",
              "description": "Adding a new feature",
              }'
        Invoke-RestMethod -Uri $url -Method post -Header @{Authorization = "Basic $base64AuthInfo"} -ContentType "application/json" -Body $body

В конце приведенных выше сценариев powershell вызывается API-интерфейс pull request для создания PR в облаке. Чтобы получить токен личного доступа, отметьте этот документ .

0 голосов
/ 24 апреля 2020

Мой коллега Сандер создал расширение, которое выполняет всю тяжелую работу по созданию PR .

Если вы хотите посмотреть, как это делается, проверьте источник на расширение .

Другой вариант использования команды az repos pr create в CLI Azure с расширением DevOps . Я полагаю, вам потребуется разрешить скриптовому доступу к OAuth-токену конвейера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...