跳转至

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 authentication)使用密码或令牌(token)进行认证:

  • 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)

Note

当使用 GitHub 个人访问令牌(personal access token)时,用户名可以是任意的。GitHub 不允许你在类似这样的 URL 中使用账户名和密码,但其他托管平台可能允许。

如果 URL 中不包含凭证且需要认证,uv 将查询 Git 凭证助手(Git credential helper)。

凭证的持久化

使用 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 文档。

Note

以交互方式运行 gh auth login 时,凭证助手会自动配置。 但使用 gh auth login --with-token 时(如 uv GitHub Actions 指南中所述),则需要在此之后运行 gh auth setup-git 命令来配置凭证助手。