mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 13:25:00 +00:00
Docs: add instructions for publishing to JFrog's Artifactory (#14253)
## Summary Add instructions for publishing to JFrog's Artifactory into [documentation](https://docs.astral.sh/uv/guides/integration/alternative-indexes/). Related issues: https://github.com/astral-sh/uv/issues/9845 https://github.com/astral-sh/uv/issues/10193 ## Test Plan I ran the documentation locally and use npx prettier. --------- Co-authored-by: Ondrej Profant <ondrej.profant@datamole.ai> Co-authored-by: Zanie Blue <contact@zanie.dev>
This commit is contained in:
parent
5cfabd7085
commit
ae500c95d2
1 changed files with 64 additions and 2 deletions
|
@ -368,6 +368,68 @@ $ uv publish
|
|||
Note this method is not preferable because uv cannot check if the package is already published
|
||||
before uploading artifacts.
|
||||
|
||||
## Other package indexes
|
||||
## JFrog Artifactory
|
||||
|
||||
uv is also known to work with JFrog's Artifactory.
|
||||
uv can install packages from JFrog Artifactory, either by using a username and password or a JWT
|
||||
token.
|
||||
|
||||
To use it, add the index to your project:
|
||||
|
||||
```toml title="pyproject.toml"
|
||||
[[tool.uv.index]]
|
||||
name = "private-registry"
|
||||
url = "https://<organization>.jfrog.io/artifactory/api/pypi/<repository>/simple"
|
||||
```
|
||||
|
||||
### Authenticate with username and password
|
||||
|
||||
```console
|
||||
$ export UV_INDEX_PRIVATE_REGISTRY_USERNAME="<username>"
|
||||
$ export UV_INDEX_PRIVATE_REGISTRY_PASSWORD="<password>"
|
||||
```
|
||||
|
||||
### Authenticate with JWT token
|
||||
|
||||
```console
|
||||
$ export UV_INDEX_PRIVATE_REGISTRY_USERNAME=""
|
||||
$ export UV_INDEX_PRIVATE_REGISTRY_PASSWORD="$JFROG_JWT_TOKEN"
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
||||
Replace `PRIVATE_REGISTRY` in the environment variable names with the actual index name defined in your `pyproject.toml`.
|
||||
|
||||
### Publishing packages to JFrog Artifactory
|
||||
|
||||
Add a `publish-url` to your index definition:
|
||||
|
||||
```toml title="pyproject.toml"
|
||||
[[tool.uv.index]]
|
||||
name = "private-registry"
|
||||
url = "https://<organization>.jfrog.io/artifactory/api/pypi/<repository>/simple"
|
||||
publish-url = "https://<organization>.jfrog.io/artifactory/api/pypi/<repository>"
|
||||
```
|
||||
|
||||
!!! important
|
||||
|
||||
If you use `--token "$JFROG_TOKEN"` or `UV_PUBLISH_TOKEN` with JFrog, you will receive a
|
||||
401 Unauthorized error as JFrog requires an empty username but uv passes `__token__` for as
|
||||
the username when `--token` is used.
|
||||
|
||||
To authenticate, pass your token as the password and set the username to an empty string:
|
||||
|
||||
```console
|
||||
$ uv publish --index <index_name> -u "" -p "$JFROG_TOKEN"
|
||||
```
|
||||
|
||||
Alternatively, you can set environment variables:
|
||||
|
||||
```console
|
||||
$ export UV_PUBLISH_USERNAME=""
|
||||
$ export UV_PUBLISH_PASSWORD="$JFROG_TOKEN"
|
||||
$ uv publish --index private-registry
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
||||
The publish environment variables (`UV_PUBLISH_USERNAME` and `UV_PUBLISH_PASSWORD`) do not include the index name.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue