Azure DevOps:用户没有完成此操作的权限。你需要有'AddPackage'

Posted

技术标签:

【中文标题】Azure DevOps:用户没有完成此操作的权限。你需要有\'AddPackage\'【英文标题】:Azure DevOps: User lacks permission to complete this action. You need to have 'AddPackage'Azure DevOps:用户没有完成此操作的权限。你需要有'AddPackage' 【发布时间】:2020-03-05 22:09:47 【问题描述】:

我收到一个错误:

User XXX lacks permission to complete this action. You need to have 'AddPackage'

尝试将 nuget 包推送到 Azure DevOps 工件时。我是管理员 这是舞台:

  - stage:
    displayName: 'Release'
    condition: succeeded()
    jobs:
      - job: 'Publish'
        displayName: 'Publish nuGet Package'
        steps:
          - download: current
            artifact: $(PIPELINE_ARTIFACT_NAME)
            displayName: 'Download pipeline artifact'
          - script: ls $(PATH_PIPELINE_ARTIFACT_NAME)
            displayName: 'Display contents of downloaded articacts path'
          - task: NuGetAuthenticate@0
            displayName: 'Authenticate in NuGet feed'
          - script: dotnet nuget push $(PATH_PIPELINE_ARTIFACT_NAME)/**/*.nupkg --source $(NUGET_FEED) --api-key $(NUGET_API_KEY)
            displayName: 'Uploads nuGet packages'

以及确切的错误:

error: Response status code does not indicate success: 403 (Forbidden - User '4a2eb786-540d-4690-a12b-013aec2c86e5' lacks permission to complete this action. You need to have 'AddPackage'. (DevOps Activity ID: XXXXXXX-6DF9-4A98-8A4E-42C556C6FC56)).
##[error]Bash exited with code '1'.
Finishing: Uploads nuGet packages

git repo 在 GitHub 中。不确定谁被认为是用户,但我不知道要修改哪些其他权限

【问题讨论】:

【参考方案1】:

步骤:

    点击左侧的Artifacts。 从下拉列表中选择您的 Feed(通常默认选中) 点击右上角的Feed Setting齿轮。 点击权限 点击Add Users/groups并搜索your org Build Service并添加为Contributor

【讨论】:

谢谢。这很详细。通过突出显示要单击的关键项来修改答案。【参考方案2】:

如果您仍然遇到错误,您也可以尝试将团队添加为贡献者。

希望它有效。

[project_name][project_name] 团队 - 贡献者

project_name 构建服务(Org_name) - 贡献者

【讨论】:

【参考方案3】:

正确的答案是,在工件设置页面(您可以按照上面的说明访问)您需要为名称模式 [project_name] Build Service 的用户添加贡献者权限。例如,如果您的项目名称是“IoT”,您需要在如上所示的权限选项卡中的添加用户/组中找到用户“IoT Build Service”并分配贡献者权限。

【讨论】:

【参考方案4】:

对于像我这样完全迷失的人来说,diegosasw 说的页面在 Artifacts 菜单中,而不是在 Task 或 Pipeline 中:

【讨论】:

感谢您再次指出这一点。我也迷路了,你的截图帮了我!【参考方案5】:

很棒的发现!在 ... 菜单中允许项目范围的构建对我有用。

但为了能够将包从 Azure Pipelines 推送到 Azure Artifacts 提要,我必须在 dotnet 构建和最后 dotnet 推送之前在 dotnet restore 步骤下添加与目标提要相同的提要。 https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/dotnet-exe?view=azure-devops

【讨论】:

【参考方案6】:

看来我已通过将构建服务作为贡献者添加到提要的权限设置来解决问题。

这有点令人困惑,但现在可以正常工作了。

【讨论】:

顺便说一句,它在删除旁边的...菜单中,称为Add project-scoped builds 我有构建服务作为贡献者,我在某个时候开始收到错误(在那之前它工作正常)。对我来说,它修复它的是从权限列表中删除构建服务并重新添加它。 与 Kord 类似,我有“项目集合构建服务 (XXXXXX-XXXXXX)”作为用户,我必须将其删除,然后使用“....”图标并单击“添加构建和发布”,通过单击重新添加用户......具有适当的权限。我现在可以在管道中成功使用 mvn deploy 并部署到 azure artifact 区域

以上是关于Azure DevOps:用户没有完成此操作的权限。你需要有'AddPackage'的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps - 部署组的权限问题

在 Azure DevOps 中创建项目 - 权限修正?

无法在Azure Active Directory中创建应用程序。错误:没有足够的权限来完成操作

Azure DevOps 集合级别自定义组

Azure DevOps 用户访问筛选

工作项模板的 Azure DevOps Services 权限