Могу ли я использовать pip для установки пакета из частного хранилища VSTS? - PullRequest
0 голосов
/ 07 ноября 2018

Я бы хотел установить приватный пакет для моего приложения на Python с помощью pip.

Мой пакет хранится в git-репозитории на DevOps Azure (Visual Studio Team Services).

Я вижу, что git поддерживается pip , но я не могу определить работоспособный формат для URL для Azure.

Я бы хотел избежать Диспетчер учетных данных . Я пробовал как git + ssh (с ключом), так и git + https (с маркером личного доступа).

Возможно ли это сделать с помощью Azure / VSTS?

Для контекста, я ссылался на эти ресурсы:

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

Можно ли использовать pip для установки пакета из частного репозитория github?

Вот некоторые из моих попыток:

git+https://myUsername:myAccessToken@myCompany.visualstudio.com/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://myCompany@vs-ssh.visualstudio.com:v3/myCompany/<myProject>.git@<ref>

1 Ответ

0 голосов
/ 08 ноября 2018

Возможно, пожалуйста, посмотрите на этот существующий Запрос

Для этого вам необходимо выполнить следующие шаги,

  • Установите флажок Разрешить сценарию доступ к токену OAuth в задании агента. фаза
  • Включить задачу: командная строка
  • Добавить $(System.AccessToken) между URL-адресом клонирования репо

Это выше системная переменная, вы можете найти полную информацию здесь

Вы также можете использовать Rest API, как показано ниже для получения токена доступа

$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)"
...