如何为我的项目设置构建授权范围?
Posted
技术标签:
【中文标题】如何为我的项目设置构建授权范围?【英文标题】:How do I set the build authorization scope for my project? 【发布时间】:2020-02-23 18:54:47 【问题描述】:现在我的 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 的无数菜单中,可以在哪里设置此范围?
【问题讨论】:
组织设置页面中确实存在一个可疑的类似设置,位于管道/设置下,名为“将作业授权范围限制为当前项目”。但是,默认情况下它是关闭的,这意味着管道应该可以访问组织中的所有项目。 @HenrikMöller 你会尝试其他人的解决方案吗?他们有效吗? @HughLin-MSFT 抱歉耽搁了,但没有。请参阅下面 Elven Spellmaker 的评论。 【参考方案1】:几个小时前发布了此 403 错误的解决方法:https://developercommunity.visualstudio.com/content/problem/795493/403-error-during-nuget-restore.html
简而言之,这似乎会影响连接到私人订阅源的新项目。以下是建议的解决方法:
在构建失败的项目中单击“工件”
选择您在构建中尝试使用的提要,然后点击右上角的齿轮
点击“Feed 设置”
转到“权限”标签
点击标签右侧出现的 3 个点 [...]
点击“允许项目范围的构建”
这会添加 OP 发布的错误所抱怨的相关用户权限。希望微软能尽快解决这个问题。
来自开发者社区页面的 Tim Lynch 的全部功劳。
【讨论】:
不幸的是,这似乎对我们不起作用。我们拨动了这里提到的开关***.com/a/58646507/2604915,这似乎对我们有用……直到今天早上,它不再起作用了。我正在等待与 Microsoft 的屏幕共享会议,看看我们能否从中收集到任何信息。 为我工作。一直收到 403 错误。在翻转开关工作。但是,首先,请按照我执行的选项 2 中概述的说明进行操作:paraesthesia.com/archive/2019/02/07/…【参考方案2】:所有答案都有效,但视情况而定。
考虑到只有 Contributor 和 Owner 角色可以推送包 read the docs here。
那么还要记住Scoped build identities。
Azure DevOps 使用两个内置标识来执行管道。
集合范围的身份,可以访问集合中的所有项目(或 Azure DevOps 服务的组织) 项目范围的身份,可以访问单个项目
...
默认情况下,使用集合范围的标识,除非限制 当前项目的工作授权范围在项目设置>设置中设置。
考虑到这一点,请执行以下步骤:
-
您需要检查您的管道使用的是哪个身份:
对我来说是项目范围的身份
-
添加/检查可能适用的 Feed 权限(我将在图片下方留下说明)
再次记住,您需要使用 Owner 或 Contributor 角色。
【讨论】:
在 Azure DevOps Server 中没有选择将作业授权范围限制为当前项目。有什么想法可以应用你的方式吗? @arslanaybars 请更新我的 anwser,以便您可以通过您的解决方案吸引更多人【参考方案3】:转到您的供稿设置:
在“权限”选项卡中验证是否至少具有“项目集合构建服务(用户名)”的读取权限:
【讨论】:
OP 声明他们希望在构建上设置授权范围,但找不到它。与Feed的权限设置无关。 是的,但我认为如果他愿意,问题就会得到解决。 @ShaykiAbramczyk 很遗憾,项目集合构建服务已经是贡献者了。【参考方案4】:它出现在组织和项目设置下。找到 Pipelines/Settings 并有一个名为 Limit job authorization scope to current project 的切换选项。
【讨论】:
以上是关于如何为我的项目设置构建授权范围?的主要内容,如果未能解决你的问题,请参考以下文章
Drupal 6:如何为我的 Drupal 项目设置和使用 Mercurial