2.7.13 与 JFrog Artifactory 配合使用
原文链接: https://docs.astral.sh/uv/guides/integration/jfrog/
2.7.13 与 JFrog Artifactory 配合使用
uv 可以从 JFrog Artifactory 安装包,既可以使用用户名和密码,也可以使用 JWT 令牌。
要使用它,请把索引添加到你的项目:
1
2
3
4
| # pyproject.toml
[[tool.uv.index]]
name = "private-registry"
url = "https://<organization>.jfrog.io/artifactory/api/pypi/<repository>/simple"
|
使用用户名和密码进行身份验证
1
2
| $ export UV_INDEX_PRIVATE_REGISTRY_USERNAME="<username>"
$ export UV_INDEX_PRIVATE_REGISTRY_PASSWORD="<password>"
|
使用 JWT 令牌进行身份验证
1
2
| $ export UV_INDEX_PRIVATE_REGISTRY_USERNAME=""
$ export UV_INDEX_PRIVATE_REGISTRY_PASSWORD="$JFROG_JWT_TOKEN"
|
注意
请把环境变量名中的 PRIVATE_REGISTRY 替换为你在 pyproject.toml 中定义的索引名称。
发布包
在索引定义中添加 publish-url:
1
2
3
4
5
| # 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>"
|
重要
如果在 JFrog 中使用 --token "$JFROG_TOKEN" 或 UV_PUBLISH_TOKEN,你会收到 401 Unauthorized 错误,因为 JFrog 要求用户名为空,而使用 --token 时 uv 会把 __token__ 作为用户名传入。
要进行身份验证,请把令牌作为密码传入,并把用户名设为空字符串:
1
| $ uv publish --index <index_name> -u "" -p "$JFROG_TOKEN"
|
你也可以设置环境变量:
1
2
3
| $ export UV_PUBLISH_USERNAME=""
$ export UV_PUBLISH_PASSWORD="$JFROG_TOKEN"
$ uv publish --index private-registry
|
注意
发布相关的环境变量(UV_PUBLISH_USERNAME 和 UV_PUBLISH_PASSWORD)不包含索引名称。