【发布时间】:2020-11-27 06:01:17
【问题描述】:
我们在公司的 Azure DevOps 组织中创建了一个包;它作为工件上传,可以在同一组织的管道中使用。这一切都很完美。
我们现在希望在一组范围狭窄、定义明确的其他组织中使用相同的包。但是当我们尝试从另一个组织的管道中访问包时,我们会收到一条错误消息:找不到包。
我们如何让 Azure DevOps 中的其他“组织”访问包?
【问题讨论】:
标签: azure azure-devops azure-artifacts
我们在公司的 Azure DevOps 组织中创建了一个包;它作为工件上传,可以在同一组织的管道中使用。这一切都很完美。
我们现在希望在一组范围狭窄、定义明确的其他组织中使用相同的包。但是当我们尝试从另一个组织的管道中访问包时,我们会收到一条错误消息:找不到包。
我们如何让 Azure DevOps 中的其他“组织”访问包?
【问题讨论】:
标签: azure azure-devops azure-artifacts
我们如何让 Azure DevOps 中的其他“组织”访问包?
您可以使用服务连接来做到这一点。您需要选择的服务连接类型取决于您的包的类型。
这是一个从另一个组织获得通用包访问权限的示例。
第一步:
转到项目设置 -> 管道/服务连接 -> 新服务连接 -> Azure Repos/Team Foundation Server -> 下一步。
将此项目连接到包的组织。
第二步:
如果您使用的是经典 UI 管道,请添加内置任务“通用包”。在“Feed location”中选择“另一个组织/集合”。选择您在第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。然后在管道中,您需要在使用该包之前运行一个身份验证任务(您可以在内置任务列表中找到它)。详情请点击this document。
【讨论】: