Azure Devops - создайте новую ветвь в выпуске конвейера - PullRequest
0 голосов
/ 25 сентября 2019

Я новичок в использовании Azure Devops и создании сборок и выпусков.Я пытаюсь создать Релиз (это будет в нашей производственной среде), поэтому на данный момент я хочу создать ветку для этого релиза.Мы используем локальный агент сборки.Если я попытаюсь сделать это, выполнив команду git clone, а затем другие команды git, чтобы создать эту новую ветку и отправить ее, она не сможет завершить процесс Release, потому что в локальном агенте сборки он запрашивает имя пользователя и пароль.Есть ли способ обойти это?Есть ли команда или процесс, которые я могу запустить в версии, которая создаст эту новую ветку без использования локального агента сборки?

1 Ответ

0 голосов
/ 26 сентября 2019

Если вам не хватает аутентификации PAT, вам просто нужно добавить {PAT} после https://

следующим образом: https://{PAT}@dev.azure.com/{organization}/{project}/_git/{repo-name}

Я здесь, чтобы предоставить другой метод. Вы также можетеиспользуйте Refs - Обновить Refs api для создания ветки:

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

Я проверяю это в почтальоне и могу успешно создать ветку.enter image description here

Вы можете добавить задачу powershell в конвейер выпуска и написать скрипт с этим API остальных.

Вот пример:

$uri = 'https://dev.azure.com/{organization}/{pro}/_apis/git/repositories/{repoId}/refs?api-version=5.1';

[array]$requestList = @();
$requestObj = New-Object -TypeName psobject;
$requestObj | Add-Member -MemberType NoteProperty -Name "name" -Value 'refs/heads/feature2';
$requestObj | Add-Member -MemberType NoteProperty -Name "oldObjectId" -Value "0000000000000000000000000000000000000000";
$requestObj | Add-Member -MemberType NoteProperty -Name "newObjectId" -Value "c141b3f6aaec8967763de63a6e9faf6a96c5ea13";
$requestList += @($requestObj);


$body = ConvertTo-Json -InputObject @($requestList);
Write-Host $body;

$response = Invoke-RestMethod -Uri $uri -Headers @{   
 Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method Post -Body $body -ContentType application/json;

Write-Host $response;
...