如何为项目设置构建授权范围?

时间:2019-10-28 13:46:37

标签: azure-devops devops

现在,由于项目构建用户无权访问软件包提要,因此我的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的众多菜单中,可以在何处设置此范围?

4 个答案:

答案 0 :(得分:2)

几个小时前发布的此403错误有一种解决方法:https://developercommunity.visualstudio.com/content/problem/795493/403-error-during-nuget-restore.html

简而言之,这似乎影响到连接到私有提要的新项目。建议的解决方法如下:

  1. 在构建失败的项目中单击“工件”

    enter image description here

  2. 选择要在构建中使用的供稿,然后单击右上角的齿轮

    enter image description here

  3. 点击“ Feed设置”

    enter image description here

  4. 转到“权限”标签

    enter image description here

  5. 点击标签右侧显示的三个点[...]

    enter image description here

  6. 点击“允许项目范围的构建”

    enter image description here

这将添加OP发布的错误所抱怨的相关用户权限。希望微软会对此进行适当的修复。

开发者社区页面上的全部感谢Tim Lynch。

答案 1 :(得分:1)

转到您的供稿设置:

enter image description here

在“权限”选项卡中,验证至少具有“项目集合构建服务(用户名)”的读者权限:

enter image description here

答案 2 :(得分:1)

所有答案都是有效的,但要视情况而定。

请注意,只有 Contributor Owner 角色被允许推送包 read the docs here

然后还记得 Scoped build identities

Azure DevOps使用两个内置身份来执行管道。

  • 集合范围的身份,它可以访问集合中的所有项目(或Azure DevOps Services的组织)
  • 一个项目范围的身份,可以访问单个项目

...

默认情况下,使用集合范围的标识,除非限制 在项目设置>设置中设置了当前项目的工作授权范围

请牢记以下步骤:

  1. 您需要检查管道使用的身份:

enter image description here

对我来说,是项目范围的身份

  1. 添加/检查可能适用的Feed权限(我将在图片下方留下说明)

enter image description here

  • 不。 1如果身份是收藏范围
  • 不。 2如果身份是项目范围
  • 不。 3如果适用,请给您的贡献者least privilege principle。 (对我来说,让他们阅读提要是可以的,并且只有管道或我才是允许推送软件包的人)

再次记住,您需要使用所有者贡献者角色。

答案 3 :(得分:0)

它显示在“组织和项目设置”下。找到“管道/设置”,然后有一个名为将作业授权范围限制为当前项目的切换选项。