Azure DevOps 代理缺乏推送到 feed 的权限

Fil*_*ega 4 azure-devops azure-pipelines

我目前有一个自托管代理作为服务在DOMAIN\adminaccount 下运行,他也是组织管理员(代理 PAT 具有完全访问权限)。

我的项目有一个 NuGet Feed,作为[ORGANIZATION]\Project Collection Service Accounts所有者和Project Collection Build Service (ORGANIZATION)贡献者。作为“调试”,我还添加DOMAIN\admin了提要权限。

我构建了一个执行以下操作的管道:构建、测试、打包和 Nuget 推送。

失败Nuget Push并出现以下错误:403 (Forbidden - User '0a681a12-11c5-4573-ab59-82be15aaabbd' lacks permission to complete this action. You need to have 'ReadPackages'.

我不知道为什么会发生这种情况,PAT 具有完全访问权限,并且该服务由管理员管理。有什么帮助吗?

编辑

在服务帐户步骤注册代理时,我收到此警告: ERR NativeWindowsServiceHelper] Can't enumerate account rights, return code 3221225524.

编辑2

我刚刚使用 Nuget Push 作业构建了一个发布管道并开始工作。还编辑了构建管道以发布工件。知道为什么吗?

Kev*_*SFT 6

在Azure DevOps Build Pipeline中,它将使用构建服务帐户将nuget包推送到Azure Feed。

构建服务帐户有两个级别:组织级别和项目级别。

项目级别:您的项目名称构建服务(您的集合名称)

组织级别:项目集合构建服务(您的集合名称)

您需要根据您的管道设置将贡献者角色授予相关的构建服务帐户。

对于 Yaml Pipeline,您可以导航到“项目设置”->“设置” 并选中选项:“将作业授权范围限制为非发布管道的当前项目”

如果启用该选项,它将使用项目级别构建服务帐户,或者将使用组织级别帐户。

对于经典管道,您需要导航到选项选项卡并检查构建作业授权范围

在此输入图像描述

如果管道使用项目级别构建服务帐户,则需要在 Azure Feed -> 设置 -> 权限中向Your-project-name Build Service (your-collection-name)授予贡献者角色。

例如:

在此输入图像描述

有关更详细的信息,您可以参考此文档:管理构建服务帐户权限