从不同组织访问 Azure DevOps Artifacts Feed

4
我们在公司的Azure DevOps组织中创建了一个包(package),将其上传为artifact,并可以在同一组织中的pipeline中使用。这一切都运作完美。
现在,我们想在一组狭窄且明确定义的其他组织中使用相同的包。但是当我们尝试从另一个组织的pipeline中访问该包时,会收到错误消息:“找不到该包”。
如何让Azure DevOps中的其他“组织”访问此包?
1个回答

6
我们可以使用服务连接来实现这一点。您需要选择的服务连接类型取决于您的软件包类型。
以下是从另一个组织获取访问通用程序包的示例。
步骤1:
转到“项目设置”->“管道/服务连接”->“新建服务连接”->“Azure Repos/Team Foundation Server”->“下一步”。
将此项目连接到软件包所在的组织。
步骤2:
如果您正在使用经典UI管道,请添加内置任务“Universal Packages”。在“Feed位置”中选择“Another organization/collection”。选择您在步骤1中创建的连接,并填写feed的信息。
如果您正在使用YAML,请添加以下任务:
- task: UniversalPackages@0
  displayName: 'Universal download'
  inputs:
    feedsToUse: external
    externalFeedCredentials: {service connection}
    # if you are using project-scoped feed, replace {feed} with {project/feed}
    feedDownloadExternal: {feed}
    packageDownloadExternal: {package}
    versionDownloadExternal: {version number}

如果您想连接到 Npm/Nuget/Maven/... 包,需要创建相应的服务连接并使用 Feed URL 而不是组织 URL。然后在流水线中,在使用包之前需要运行身份验证任务(您可以在内置任务列表中找到它)。单击 此文档 获取详细信息。


我已经在半打的DevOps组织中战斗了3年,但始终无法使其正常工作。我总是收到“找不到包...”的错误。我尝试了我的包名称的每种可能组合,但都没有成功。请告诉我准确地应该输入什么作为包的名称,就像准确地告诉我在其他项目的构件源中可以找到这个准确名称的位置一样。多年来,我一直在将项目文件从其他源下载到VS和CLI中,但从未能够让Azure Pipelines任务下载它们。 - Bryan Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接