在自定义任务中访问 Azure DevOps 其他部分的身份验证
Authentication to access other parts of Azure DevOps within a custom task
-
azure-devops
-
azure-pipelines-build-task
-
azure-pipelines
-
azure-devops-extensions
-
azure-devops-hosted-agent
我想创建一个访问 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: You need the Git 'PullRequestContribute' permission to perform this action. Details: identity 'Build\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', scope 'repository'.
我已验证构建服务应具有正确的权限:
我也试过在作业设置中选中 "Allow scripts to access the OAuth token" 框,但没有效果。
我错过了什么?
我认为你应该使用 "System.AccessToken" 变量来获取令牌:
tl.getVariable('System.AccessToken');
您需要为构建用户授予权限:
在 Microsoft 托管代理中是“构建服务(用户名)”和“项目集合构建服务(项目)”(有时最后一个仅在您在“搜索”中键入 UUID (8837...) 时显示对于用户或组。)
可以在项目设置 > 存储库 > 权限中找到
azure-devops
azure-pipelines-build-task
azure-pipelines
azure-devops-extensions
azure-devops-hosted-agent
我想创建一个访问 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: You need the Git 'PullRequestContribute' permission to perform this action. Details: identity 'Build\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', scope 'repository'.
我已验证构建服务应具有正确的权限:
我也试过在作业设置中选中 "Allow scripts to access the OAuth token" 框,但没有效果。
我错过了什么?
我认为你应该使用 "System.AccessToken" 变量来获取令牌:
tl.getVariable('System.AccessToken');
您需要为构建用户授予权限:
在 Microsoft 托管代理中是“构建服务(用户名)”和“项目集合构建服务(项目)”(有时最后一个仅在您在“搜索”中键入 UUID (8837...) 时显示对于用户或组。)
可以在项目设置 > 存储库 > 权限中找到