如何在Azure DevOps中添加AddPackage权限以发布通用包?
解决Azure DevOps UniversalPackages任务AddPackage权限缺失问题
问题场景
我使用自托管Windows代理将构建制品(.zip文件)发布到Azure Artifact feed,配置的UniversalPackages任务如下:
- task: UniversalPackages@0 displayName: 'Publish to Azure Artifact feed' inputs: command: 'publish' publishDirectory: '$(Build.ArtifactStagingDirectory)/files.zip' feedsToUsePublish: 'internal' vstsFeedPublish: 'kitagi' vstsFeedPackagePublish: 'testartifact' versionOption: 'custom' versionPublish: '1.0.3' publishedPackageVar: 'testartifact'
运行流水线后,制品仅发布到流水线内,未同步到目标feed,核心错误信息为:
An error occurred on the service. User 'f3d5130b-1a1b-4c35-9703-4d5cb68bb1d9' lacks permission to complete this action. You need to have 'AddPackage'.
解决步骤:添加AddPackage权限
- 进入Azure DevOps目标项目,打开Artifacts模块,找到目标feed(此处为
kitagi) - 点击feed右上角的齿轮图标,进入feed设置页面
- 在左侧导航栏选择Permissions选项
- 点击页面中的Add users/groups按钮,搜索并添加错误日志中指定的用户/服务主体(即ID为
f3d5130b-1a1b-4c35-9703-4d5cb68bb1d9的身份) - 给该身份分配权限:
- 直接选择Contributor角色(该角色默认包含
AddPackage权限) - 或手动勾选权限列表中的Add package选项
- 直接选择Contributor角色(该角色默认包含
- 保存设置后重新运行流水线即可
额外提示
UniversalPackages@0任务的publishDirectory参数需指向包含待发布文件的目录,而非单个.zip文件。若要发布该zip包,建议将files.zip放入一个单独目录,再将该目录路径赋值给publishDirectory,避免打包逻辑异常。
内容的提问来源于stack exchange,提问作者kiran itagi
相关产品推荐
相关产品推荐

