现在,由于项目构建用户无权访问软件包提要,因此我的NuGet还原失败。
/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5):错误:无法为源pkgs.dev.azure.com [..] index.json加载服务索引。 /usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5):错误:响应状态代码未指示成功:403(禁止-用户“ xxxxxxx”缺少完成此操作的权限。您需要拥有“ ReadPackages”。
解决方案是将构建授权范围从当前项目更改为项目集合。如此处所示,这似乎非常可行:
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options?view=azure-devops
但是在DevOps的众多菜单中,可以在何处设置此范围?
答案 0 :(得分:2)
几个小时前发布的此403错误有一种解决方法:https://developercommunity.visualstudio.com/content/problem/795493/403-error-during-nuget-restore.html
简而言之,这似乎影响到连接到私有提要的新项目。建议的解决方法如下:
这将添加OP发布的错误所抱怨的相关用户权限。希望微软会对此进行适当的修复。
开发者社区页面上的全部感谢Tim Lynch。
答案 1 :(得分:1)
答案 2 :(得分:1)
所有答案都是有效的,但要视情况而定。
请注意,只有 Contributor 和 Owner 角色被允许推送包 read the docs here。
然后还记得 Scoped build identities 。
Azure DevOps使用两个内置身份来执行管道。
- 集合范围的身份,它可以访问集合中的所有项目(或Azure DevOps Services的组织)
- 一个项目范围的身份,可以访问单个项目
...
默认情况下,使用集合范围的标识,除非限制 在项目设置>设置中设置了当前项目的工作授权范围。
请牢记以下步骤:
对我来说,是项目范围的身份
再次记住,您需要使用所有者或贡献者角色。
答案 3 :(得分:0)
它显示在“组织和项目设置”下。找到“管道/设置”,然后有一个名为将作业授权范围限制为当前项目的切换选项。