REST API Azure DevOps возвращает 403 при использовании системного токена OAuth во время сборки - PullRequest
0 голосов
/ 13 июня 2019

Я запускаю скрипт:

# Variables
$organization = "****"
$project = "****"
$repositoryId = "****"
$pullRequestId = $env:BUILD_PULLREQUEST_ID

$pat = "Bearer $env:System_AccessToken"
$featureReleaseUrl = "http://" + $env:prSourceBranchName + ".azurewebsites.net"

$body = @"
    {
        "comments": [
            {
                "content": "Link naar feature release $featureReleaseUrl"
            }
        ]
    }
"@ 

$createThreadInPRUrl = "https://dev.azure.com/$organization/$project/_apis/git/repositories/$repositoryId/pullRequests/$pullRequestId/threads?api-version=5.0"
if ($pullRequestId) {
    Invoke-RestMethod -Uri $createThreadInPRUrl -Headers @{Authorization = $pat} -Body $body -Method Post -ContentType 'application/json'
}

При запуске возвращается:

##[error]The remote server returned an error: (403) Forbidden.

Я создал Personal Access Tokens в моих личных настройках.

Я также создал этот скрипт:

# Variables
$organization = "****"
$project = "****"
$buildId = $****

$pat = "Bearer $env:System_AccessToken"

if (!$env:Build_PullRequest_SourceBranchName) {
    $retrieveSourceBranchFromBuildURL = "https://dev.azure.com/$organization/$project/_apis/build/builds/$buildId" + "?api-version=5.0"
    $buildInformation = Invoke-RestMethod -Uri $retrieveSourceBranchFromBuildURL -Headers @{Authorization = $pat } -Method Get -ContentType 'application/json'
    $SourceBranchFromBuild = $buildInformation.sourceBranch.split('/')[-1]

    Write-Host "### no Build PullRequest SourceBranchName available ###"
    Write-Host "##vso[task.setvariable variable=prSourceBranchName;]"$SourceBranchFromBuild


}

И это нормально работает. Разница между первым и вторым сценарием заключается в том, что первый - это POST, а второй - GET. Но они оба используют токен $ pat.

1 Ответ

1 голос
/ 13 июня 2019

Несмотря на то, что вы использовали токен System.AccessToken, если у вас нет разрешения на доступ к запросу на извлечение, вы также не сможете управлять им.

Перейти к настройкам проекта -> Репозитории -> Репозиторий, к которому вы хотите получить доступ, найдите свою учетную запись или группу, в которой вы находитесь. Проверьте состояние разрешений Contribute to pull requests.

У вас должно быть это разрешение Contribute to pull requests, чтобы вы могли добавить комментарий в PR.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...