3

我想创建一个访问 Azure DevOps 其他部分的 Azure DevOps 自定义任务。具体来说,我想创建一个自定义任务,为 PR 添加评论。

不幸的是,我无法弄清楚如何正确进行身份验证。我找到了这段代码并将其添加到我的任务中:

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',范围'存储库'。

我验证了构建服务应该具有正确的权限: 在此处输入图像描述

我还尝试在作业设置中选中“允许脚本访问 OAuth 令牌”框,但这没有效果。

我错过了什么?

4

2 回答 2

0

我认为您应该使用“System.AccessToken”变量来获取令牌:

tl.getVariable('System.AccessToken'); 

预定义的构建变量 - System.AccessToken

我在构建任务中使用它:https ://github.com/ashamrai/AzureDevOpsExtensions/blob/master/CustomBuildTask/NewWICustomTask/index.ts

于 2019-04-03T19:44:00.447 回答
0

您需要授予构建用户权限:

在 Microsoft 托管代理中是“构建服务(用户名)”和“项目集合构建服务(项目)”(有时最后一个仅在您在“搜索用户或组”上键入 UUID(8837...)时显示.)

可以在项目设置 > 存储库 > 权限中找到

在此处输入图像描述

于 2021-02-07T10:39:33.153 回答