3.14.3 Git 身份验证
2 分钟阅读
原文链接: https://docs.astral.sh/uv/concepts/authentication/git/
3.14.3 Git 身份验证
uv 允许通过 SSH 或 HTTP 身份验证从私有 Git 仓库安装包。
SSH 身份验证
要使用 SSH 密钥进行身份验证,请使用 ssh:// 协议:
git+ssh://git@<hostname>/...(例如git+ssh://git@github.com/astral-sh/uv)git+ssh://git@<host>/...(例如git+ssh://git@github.com-key-2/astral-sh/uv)
SSH 身份验证要求使用用户名 git。
关于如何配置 SSH 的更多细节,请参阅 GitHub SSH 文档。
HTTP 身份验证
要使用密码或令牌进行 HTTP Basic 身份验证:
git+https://<user>:<token>@<hostname>/...(例如git+https://git:github_pat_asdf@github.com/astral-sh/uv)git+https://<token>@<hostname>/...(例如git+https://github_pat_asdf@github.com/astral-sh/uv)git+https://<user>@<hostname>/...(例如git+https://git@github.com/astral-sh/uv)
注意
使用 GitHub 个人访问令牌时,用户名是任意的。GitHub 不允许在这类 URL 中使用你的账号名和密码,不过其他主机可能允许。
如果 URL 中没有凭据但需要身份验证,uv 会查询 Git 凭据助手。
凭据的持久化
使用 uv add 时,uv 不会把 Git 凭据持久化到 pyproject.toml 或 uv.lock。这些文件常被纳入源码控制和分发,因此把凭据写入其中通常是不安全的。
如果你配置了 Git 凭据助手,凭据可能会被自动持久化,从而使后续拉取该依赖成功。不过,如果你没有 Git 凭据助手,或者项目在没有预置凭据的机器上使用,uv 会无法拉取该依赖。
你可以通过给 uv add 传入 --raw 选项强制 uv 持久化 Git 凭据。不过我们强烈建议改而配置凭据助手。
Git 凭据助手
Git 凭据助手用于存储和获取 Git 凭据。进一步了解请参阅 Git 文档。
如果你使用 GitHub,配置凭据助手最简单的方式是安装 gh CLI 并使用:
| |
更多细节请参阅 gh auth login 文档。
注意
交互式使用
gh auth login时,凭据助手会自动配置。但像 uv 的 GitHub Actions 指南那样使用gh auth login --with-token时,之后还需要运行gh auth setup-git命令来配置凭据助手。