Working with private channels using third-party tools#
In order to access private channels via third-party tools (such as pip
, Twine
, or R
), you must have a resource token. For more information, see Tokens.
Python packages#
Twine is a popular tool for uploading Python packages to repositories. For information on setting your username and password using the configuration file or environment variables, see the official Twine package documentation.
Note
Package Security Manager supports user authentication using Basic Authentication. For information on setting your index URL using the configuration file or environment variables, see the official pip documentation.
To upload your Python packages using Twine
, run the following command:
# Replace <FQDN> with your Package Security Manager fully qualified domain name
# Replace <CHANNEL> with the name of the channel you want to upload your package to
# Replace <PACKAGE> with the name of the package you are uploading
# Replace <TOKEN> with a resource token that provides access to the channel
twine upload --repository-url http://<FQDN>/api/repo/<CHANNEL> <PACKAGE> -u <TOKEN> -p x-auth-token
Example
twine upload --repository-url http://demo-repo.com/api/repo/my-pip-channel six-1.13.0-py2.py3-none-any.whl -u 46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35 -p x-auth-token
Note
If you are receiving a 401 error message, your token is incorrect.
To install a pip
package, run the following command:
# Replace <FQDN> with your Package Security Manager fully qualified domain name # Replace <CHANNEL> with the name of the channel that contains your package # Replace <PACKAGE> with the name of the package you are installing # Replace <TOKEN> with a resource token that provides access to the channel pip install --trusted-host <FQDN> --index-url http://<TOKEN>:x-auth-token@<FQDN>/api/repo/<CHANNEL>/simple <PACKAGE>
Example
pip install --trusted-host demo-repo.com --index-url http://46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35:[email protected]/api/repo/alex-pip/simple six
R packages#
There is no standard tool for uploading R packages. Upload your R packages using either the UI or API directly.
To upload R packages, run the following command:
# Replace <FQDN> with your Package Security Manager fully qualified domain name
# Replace <CHANNEL> with the name of the channel you want to upload your package to
# Replace <PACKAGE> with the name of the package you are uploading
# Replace <TOKEN> with a resource token that provides access to the channel
curl -v -F filetype=cran_source_package -F content=@<PACKAGE> http://<FQDN>/api/repo/<CHANNEL> -H"X-Auth: <TOKEN>"
Example
curl -v -F filetype=cran_source_package -F content=@abc_2.1.tar.gz http://demo-repo.com/api/repo/alex-pip -H"X-Auth: 46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35"
Note
Use cran_source_package
for source packages and cran_binary_package
for binary R packages.
You can use your domain as a repository URL in the install.packages
function by injecting a token into the path.
To install an R
package, run the following command:
# Replace <FQDN> with your Package Security Manager fully qualified domain name
# Replace <CHANNEL> with the name of the channel that contains your package
# Replace <PACKAGE> with the name of the package you are installing
# Replace <TOKEN> with a resource token that provides access to the channel
install.packages("<PACKAGE>", repos="http://<FQDN>/api/repo/t/<TOKEN>/<CHANNEL>/cran")
Example
install.packages("leaflet", repos="http://demo-repo.com/api/t/46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35/repo/alex-pip/cran")