我刚开始使用Azure Devops和创建内部版本。我正在尝试创建一个Release(将进入我们的生产环境),因此在这一点上,我想为该Release创建一个分支。我们正在使用本地构建代理。如果我尝试通过执行git clone来执行此操作,然后使用其他git命令来创建该新分支并将其推送,则它无法在Release过程中完成,因为在本地构建代理上,它要求输入用户名和密码。反正有解决这个问题的方法吗?我可以在Release中触发一个命令或过程来创建这个新分支,而不必使用本地构建代理吗?
答案 0 :(得分:0)
如果您缺少PAT身份验证,则只需在{PAT}
之后添加https://
像这样:https://{PAT}@dev.azure.com/{organization}/{project}/_git/{repo-name}
我在这里提供另一种方法。您还可以使用Refs - Update Refs api创建分支:
POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/refs?api-version=5.0
您可以将Powershell任务添加到发布管道,并使用该rest 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;