Аутентификация для доступа к другим частям DevOps Azure в пользовательской задаче - PullRequest
1 голос
/ 03 апреля 2019

Я хочу создать пользовательскую задачу Azure DevOps, которая обращается к другим частям Azure DevOps.В частности, я хочу создать пользовательскую задачу, которая добавляет комментарий к пиару.

К сожалению, я не могу понять, как правильно проходить аутентификацию.Я нашел этот код и добавил его к своей задаче:

let token: string = tl.getEndpointAuthorizationParameter("SYSTEMVSSCONNECTION", "AccessToken", false);
let collectionUrl: string = tl.getEndpointUrl("SYSTEMVSSCONNECTION", false).replace(".vsrm.visualstudio.com", ".visualstudio.com");
let authHandler = token.length === 52 ? vsts.getPersonalAccessTokenHandler(token) : vsts.getBearerHandler(token);
let connection = new vsts.WebApi(collectionUrl, authHandler);

, но получаю ошибку:

TF401027: Для выполнения этого действия вам необходимо разрешение Git 'PullRequestContribute'.Подробности: идентификация 'Build \ XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', область действия 'хранилище'.

Я подтвердил, что служба сборки должна иметь правильные разрешения: enter image description here

Я также пытался установить флажок «Разрешить сценариям доступ к токену OAuth» в настройках задания, но это не имело никакого эффекта.

Чего мне не хватает?

1 Ответ

0 голосов
/ 03 апреля 2019

Я думаю, вы должны использовать переменную "System.AccessToken", чтобы получить токен:

tl.getVariable('System.AccessToken'); 

Предопределенные переменные сборки - System.AccessToken

Я использую это в своей задаче сборки: https://github.com/ashamrai/AzureDevOpsExtensions/blob/master/CustomBuildTask/NewWICustomTask/index.ts

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