Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I would like to install a private package for my python app with pip.

My package is stored in a git repo on Azure DevOps (Visual Studio Team Services).

I see that git is supported by pip, but I cannot determine a workable format for the URL for Azure.

I would like to avoid the Credential Manager. I have tried both git+ssh (with key) and git+https (with Personal Access Token).

Is it possible to do this with Azure/VSTS?

For context, I referenced these resources:

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

Is it possible to use pip to install a package from a private github repository?

Here are some of my attempts:

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>
like image 976
Scott Coldwell Avatar asked Nov 06 '18 22:11

Scott Coldwell


People also ask

Can you pip install a private repo?

Read the Docs uses pip to install your Python packages. If you have private dependencies, you can install them from a private Git repository or a private repository manager.

Can pip install from local directory?

Install the downloaded package into a local directory : python get-pip.py --user This will install pip to your local directory (. local/bin) . Now you may navigate to this directory (cd . local/bin) and then use pip or better set your $PATH variable this directory to use pip anywhere : PATH=$PATH:~/.

Can you pip install from github?

You can deploy Git locally, or use it via a hosted service, such as Github, Gitlab or Bitbucket. One of the advantages of using pip together with Git is to install the latest commits of unreleased Python packages as branches from Github.

How do I apply a specific package to pip?

To install a specific version of a Python package you can use pip: pip install YourPackage==YourVersion . For example, if you want to install an older version of Pandas you can do as follows: pip install pandas==1.1.


1 Answers

It is possible, please have a look it to this existing Request

As per that, you need to follow the below steps,

  • Check the Allow script to access the OAuth token in the Agent job phase
  • Include the Task: command Line
  • Add $(System.AccessToken) between repo clone URL

This above is the System variable, you can find the full details here

You can also use the Rest API like below for getting the access token

$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)"
like image 61
Jayendran Avatar answered Sep 21 '22 23:09

Jayendran