关于git:我可以使用pip从私有VSTS存储库安装包吗?

Can I use pip to install a package from a private VSTS repository?

我想用pip为我的python app安装一个私有包。

我的包存储在Azure DevOps(Visual Studio Team Services)上的git仓库中。

我看到pip支持git,但我无法确定Azure的URL的可行格式。

我想避开Credential Manager。 我试过git + ssh(带密钥)和git + https(带个人访问令牌)。

是否可以使用Azure / VSTS执行此操作?

对于上下文,我引用了这些资源:

https://www.revsys.com/tidbits/using-private-packages-python/

是否可以使用pip从私有github存储库安装包?

以下是我的一些尝试:

1
2
3
4
5
6
git+https://myUsername:[email protected]/myProject/_git/myPackage.git
git+https://<myAccessToken>@visualstudio.com/<myCompany>/<myProject>.git@<ref>
git+https://<myUsername>:<myAccessToken>@<myCompany>.visualstudio.com/<myteam>/<myProject>.git@<ref>
git+https://<myUsername>:<myAccessToken>@visualstudio.com/<myCompany>/<myProject>.git@<ref>
git+https://<myUsername>:<myAccessToken>@visualstudio.com/<myCompany>/<myProject>.git@<ref>
git+ssh://[email protected]:v3/myCompany/<myProject>.git@<ref>


有可能,请查看现有的请求

按此,您需要按照以下步骤,

  • 选中允许脚本以访问代理作业中的OAuth令牌
  • 包括任务:命令行
  • 在repo clone URL之间添加$(System.AccessToken)

以上是System变量,您可以在此处找到完整的详细信息

您还可以使用下面的Rest API来获取访问令牌

1
2
3
4
5
6
$url ="$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host"URL: $url"
$pipeline = Invoke-RestMethod -Uri $url -Headers @{
    Authorization ="Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host"Pipeline = $($pipeline | ConvertTo-Json -Depth 1000)"