В настоящее время мы используем определенное имя пользователя и PAT для выполнения вызовов API REST Azure DevOps, но это не очень хорошее решение с точки зрения обслуживания и хрупкости.Вместо этого мы хотели бы использовать токен OAuth.
Один случай, с которым мы сталкиваемся, - это попытка создать конечные точки службы из нашего конвейера.Я могу проверить, хорошо ли существует конечная точка из нашего скрипта Powershell, используя:
Invoke-RestMethod -Uri https://xxx.visualstudio.com/projectname/_apis/serviceendpoint/endpoints?api-version=5.0-preview.2 -Method Get -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Verbose -Debug
К сожалению, когда я пытаюсь использовать следующее для создания конечной точки, если она не существует, я получаю 403(Запрещено).Это вызов:
Invoke-RestMethod -Uri https://xxx.visualstudio.com/projectname/_apis/serviceendpoint/endpoints?api-version=5.0-preview.2 -Method Post -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Body $RequestBody -Verbose -Debug
Похоже, что пользователь, вызывающий это, не имеет прав для создания ресурсов (или, по крайней мере, конечных точек службы).Я один из тех, кто запускает релиз, но я не верю, что это мой доступ, потому что я администратор всей организации и могу делать практически все, что угодно.Я также изменил доступ пользователя встроенной службы Project Collection Build Service к конвейеру выпуска, чтобы иметь полный доступ и все еще получать проблему.Разве то, что я пытаюсь достичь, не возможно?