VSTS:使用REST API在组织之间移动软件包

时间:2019-01-02 21:11:35

标签: azure-devops

在我们的Azure DevOps实施中,我们需要在不同组织中存在的程序包管理源之间移动程序包。我们当前的实现方式使用2个个人访问令牌(PAT),一个具有对源组织的Feed的读访问权限,另一个具有对目标组织的Feed的写访问权限。此解决方案可满足我们当前的需求,但是由于使用PAT所需的维护要求,我们正在探索替代实施方案。

我们目前正在寻找的一种途径是使用https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/powershell?view=vsts#oauth中所述的SYSTEM_ACCESSTOKEN等。我们在其他在同一组织内运行的管道中使用了此令牌,该管道可以按预期运行。在某些情况下,我们必须将“项目集合构建服务({org-name})”用户添加到适当的安全组中,才能访问所需的功能。

执行移动的管道位于目标组织中。我假设如果我们在Powershell中使用SYSTEM_ACCESSTOKEN,那么它将在“ Project Collection Build Service({destination-org-name})”的凭据下运行,在这种情况下,它可能不会不能访问源组织中的提要。这是正确的假设吗?如果是这样,是否可以通过某种方式获取源组织的OAuth令牌?

如果没有一种方法可以获取源组织的OAuth令牌,那么是否可以通过其他方法在其他组织中的Feed之间移动包?我们当前的实现是实现这一目标的唯一方法吗?

1 个答案:

答案 0 :(得分:0)

经过一些测试,我的假设被证明是正确的。来自一个组织的OAuth令牌无权访问另一组织。似乎也没有办法获取其他组织的OAuth令牌,这并不奇怪,因为那将是一个巨大的安全漏洞!

除了使用PAT,我相信没有其他方法可以完成我们需要的工作。希望其他人会发现它有用。