VSTS - Куда пропал «Разрешить сценариям доступ к токену OAuth»? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть сборки VSTS, в которых для доступа к API-интерфейсу VSTS используется скрипт Powershell, аналогичный описанному в Документация Microsoft .

В документе говорится:

Чтобы разрешить сценарию использовать токен OAuth процесса сборки, перейдите на вкладку «Параметры» определения сборки и выберите «Разрешить сценариям доступ к токену OAuth».

После того, как вы это сделаете, ваш сценарий может использовать для SYSTEM_ACCESSTOKENпеременная среды для доступа к API-интерфейсу VSTS REST.Например:

Пример:

$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host "URL: $url"
$definition = Invoke-RestMethod -Uri $url -Headers @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Definition = $($definition | ConvertTo-Json -Depth 1000)"

Как подробно описано в документации Microsoft, я уверен, что вы привыкли идти в «Сборка»> «Параметры» и нажимать «Разрешить сценариям доступ к токену OAuth».', но его больше нет (см. рис. ниже).

enter image description here

Когда я пытаюсь построить сборку, я получаю следующее (чего не происходит в моих старых сборках):

Invoke-RestMethod: {"$ id": "1", "innerException": null, "message": "TF400813: пользователь '' не авторизован для доступа к этому

Кроме того,когда я клонирую сборку (которая работала хорошо, когда я делал это 3 месяца назад), для свойства устанавливается значение false (в оригинале оно равно true).

enter image description here

ОБНОВЛЕНИЕ: Если я экспортирую из VSTS, изменю это свойство и снова импортирую, это работает, но мне действительно нужно решение без такого рода ручного вмешательства.

Как это должно быть сделано сейчас, пожалуйста?

1 Ответ

0 голосов
/ 07 июня 2018

Теперь доступно в фазе агента

enter image description here

...