可以将Azure Artifacts软件包公开提供吗?如果是这样,我想将PR中的NuGet程序包发布到我的GitHub project。我目前从PR版本中收到以下权限错误:
[warning] Warning_SessionCreationFailed {“ statusCode”:500,“ result”:{“ $ id”:“ 1”,“ innerException”:null,“ message”:“ User '89e4e6df-0ac0-471f-ba63-0270050c3b79'没有完成权限 这个动作。你需要 'ReadPackages'。“,” typeName“:” Microsoft.VisualStudio.Services.Feed.WebApi.FeedNeedsPermissionsException, Microsoft.VisualStudio.Services.Feed.WebApi“,” typeKey“:” FeedNeedsPermissionsException“,” errorCode“:0,” eventId“:3000}} [错误]错误:进程“ / usr / bin / dotnet”失败,退出代码为1 [错误]包裹发布失败
我正在使用azure-pipelines.yml文件。这是我的Azure Pipelines版本的link。
更新1
这些是我已经添加到Feed中的用户/组:
这些是我可以添加到供稿中的用户/组,但尚未完成:
更新2
这是我用于发布NuGet程序包的Azure Pipelines任务的名称:
- task: DotNetCoreCLI@2
displayName: 'Dotnet NuGet Push'
inputs:
command: push
nuGetFeedType: internal
packagesToPush: '/home/vsts/work/1/Windows/*.nupkg'
publishVstsFeed: schema-net
答案 0 :(得分:1)
根据错误消息,您的帐户没有要操作的供稿的权限。
您需要验证您的帐户是否对尝试推送到的Feed具有 Contributor 或更高权限。
在另一种情况下,组 Project Collection Build Service 是默认的参与者。而且,作为default setting,它不包含帐户 Project Collection Build Service(xxxx)作为成员。因此,如果您是所有者,则可能需要将 Project Collection Build Service(xxxx)帐户添加到 Project Collection Build Service 组中。
编辑:
当我从后端查看您的组织信息时,我发现在您的错误消息中显示的 user(89e4e6df-0ac0-xxxxxx-0270050c3b79)是服务身份< / strong>帐户。它的领域是构建。这是一个特殊帐户,而不是可以创建或触发PR的普通用户。因此,如果您不向该服务身份帐户授予权限,则该帐户将无权访问您要推送到的供稿。
而且,您单位中此安全帐户的直接父级组是 [组织名称] \ Security Service Group 。您可以在组织设置下检查它。您还可以在Feed中检查其权限。
因此,要解决此问题,您需要将此服务身份帐户添加到供稿设置中,并授予其贡献者或更高的角色。
第二次更新:
为清楚理解,让我清除一些细节。
首先,根据日志中显示的错误消息说缺少ReadPackage权限,我首先考虑了要推送到任务中的feed的权限。
此外,还在日志中显示的用户号码 89e4e6df-0ac0-xxxxxx-0270050c3b79 。正如我从后端检查的那样,它是表示构建服务帐户的 VSID :Schema.NET构建服务(schema-net)。因此,首先,很容易认为该帐户没有相关权限,因此无法推送软件包。
但是,在您更新Feed设置后,我再次从后端检查了用户VSID,并查看了错误日志。我知道了。根据#20190625.1的日志,您可以看到在获取源包时开始出现错误:
## [警告]找不到密钥的位置字符串: Warning_SessionCreationFailed
由于此错误,无法创建正确的软件包源软件包路径,因此服务帐户由于路径错误而没有权限访问它:
实际上,正确的源程序包网址应如下所示(您可以从#2029062502引用它)
https://pkgs.dev.azure.com/schema-net/_packaging/f43386ca-{package id}-d2f8da200fb3/nuget/v3/index.json
现在,我认为这是有关nuget.config文件配置的问题。