Импорт репо в учетную запись Azure DevOps из другой учетной записи через REST API вызывает BAD-запрос.

Я хочу импортировать репозиторий git из другой учетной записи Azure DevOps в свою новую учетную запись. Я использую REST API в Power-Shell для их импорта. Скрипт, который я использую для этого, находится здесь:

$TargetTokenName = 'TokenName'
$TargetPAT = 'PAT'
$base64AuthInfoTarget = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "$TargetTokenName","$TargetPAT")))
$BaseTargetUri = 'https://dev.azure.com/myOrg/myProj/_apis/'
$TargetRepoId = 'TargetRepositoryId'
$ServiceEndpointId = 'ServiceEndpointId'

$CreateImportReqRequest = '{
    "parameters" : {
        "gitSource": {
            "url" : "' + $SourceRepoUrl + '",
            }
  }
}'

$CreateImportReqUri = $BaseTargetUri + 'git/repositories/' + $TargetRepoId + '/importRequests?api-version=5.0-preview.1'
$CreateImportReqResponse = Invoke-RestMethod -Method Post -ContentType application/json -Uri $CreateImportReqUri -Body $CreateImportReqRequest -Headers @{Authorization=("Basic {0}" -f $base64AuthInfoTarget)}
echo $CreateImportReqResponse

Но при вызове появляется ошибка Bad request. Я могу создать пустое целевое репо и конечную точку службы через REST.

В первой ссылке ниже тело запроса содержит дополнительный параметр для serviceendpointid, но он также дает ошибку.

Invoke-RestMethod : The remote server returned an error: (400) Bad Request.

Я взял следующие ссылки: https://www.codewrecks.com/blog/index.php/2016/10/08/import-a-git-project-with-rest-api-between-vsts-team-projects/ https://docs.microsoft.com/en-us/rest/api/azure/devops/git/import%20requests/create?view=azure-devops-server-rest-5.0

См. также:  Параметризация azureSubscription из группы переменных в конвейере yaml
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. TutuGeorge

    Неправильный запрос был результатом неправильного PAT в конечной точке службы.

    Запрос теперь успешен с этой структурой запроса:

    $CreateImportReqRequest = '{
        "parameters" : {
            "gitSource": {
                "url" : "'+$SourceRepoUrl+'",
                },
                "serviceEndpointId": "' + $ServiceEndpointId + '",
                deleteServiceEndpointAfterImportIsDone : true 
      }
    }'
    
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: