我想创建一个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令牌”框,但这没有任何效果。
我错过了什么?
我认为你应该使用“System.AccessToken”变量来获取令牌:
tl.getVariable('System.AccessToken');