
Basically sick of dealing with mixed formatting here. Going with the
number at
7c08e61b73/.editorconfig (L20)
2.9 KiB
Using alternative package indexes
While uv uses the official Python Package Index (PyPI) by default, it also supports alternative package indexes. Most alternative indexes require various forms of authentication, which requires some initial setup.
Azure Artifacts
uv can install packages from Azure DevOps
Artifacts.
Authenticate to a feed using a Personal Access
Token
(PAT) or interactively using the keyring
package.
Using a PAT
If there is a PAT available (eg $(System.AccessToken)
in an Azure
pipeline),
credentials can be provided via the "Basic" HTTP authentication scheme. Include the PAT in the
password field of the URL. A username must be included as well, but can be any string.
# With the token stored in the `ADO_PAT` environment variable
export UV_EXTRA_INDEX_URL=https://dummy:$ADO_PAT@pkgs.dev.azure.com/{organisation}/{project}/_packaging/{feedName}/pypi/simple/
Using keyring
If there is not a PAT available, authenticate to Artifacts using the
keyring
package with the artifacts-keyring
plugin. Because these two packages are required to
authenticate to Azure Artifacts, they must be pre-installed from a source other than Artifacts.
The artifacts-keyring
plugin wraps the Azure Artifacts Credential Provider
tool. The credential provider supports a few
different authentication modes including interactive login — see the tool's
documentation for information on
configuration.
uv only supports using the keyring
package in subprocess
mode. The
keyring
executable must be in the PATH
, i.e., installed globally or in the active environment.
The keyring
CLI requires a username in the URL, so the index URL must include the default username
VssSessionToken
.
# Pre-install keyring and the Artifacts plugin from the public PyPI
uv tool install keyring --with artifacts-keyring
# Enable keyring authentication
export UV_KEYRING_PROVIDER=subprocess
# Configure the index URL with the username
export UV_EXTRA_INDEX_URL=https://VssSessionToken@pkgs.dev.azure.com/{organisation}/{project}/_packaging/{feedName}/pypi/simple/
Other indexes
uv is also known to work with JFrog's Artifactory, the Google Cloud Artifact Registry, and AWS Code Artifact.