2.7.10 与 Azure Artifacts 配合使用
2 分钟阅读
2.7.10 与 Azure Artifacts 配合使用
uv 可以从 Azure Artifacts 安装包,既可以使用个人访问令牌(PAT),也可以使用 keyring 包。
要使用 Azure Artifacts,请把索引添加到你的项目:
| |
使用 Azure 访问令牌进行身份验证
如果有可用的个人访问令牌(PAT)(例如 Azure 流水线中的 $(System.AccessToken)),可以通过 “Basic” HTTP 身份验证方案提供凭据。把 PAT 放在 URL 的密码字段中。用户名也必须提供,但可以是任意字符串。
例如,当令牌存储在环境变量 $AZURE_ARTIFACTS_TOKEN 中时,这样为该索引设置凭据:
| |
注意
PRIVATE_REGISTRY应与你在pyproject.toml中定义的索引名称一致。
使用 keyring 和 artifacts-keyring 进行身份验证
你也可以使用 keyring 包配合 artifacts-keyring 插件向 Artifacts 进行身份验证。由于这两个包是向 Azure Artifacts 进行身份验证所必需的,它们必须先从 Artifacts 之外的来源预安装。
artifacts-keyring 插件封装了 Azure Artifacts Credential Provider 工具。该凭据提供程序支持若干种身份验证模式,包括交互式登录 —— 配置信息请参阅该工具文档。
uv 仅支持以子进程模式使用 keyring 包。keyring 可执行文件必须在 PATH 中,也就是全局安装或在当前激活环境中安装。keyring CLI 要求 URL 中包含用户名,且必须是 VssSessionToken。
| |
注意
可以使用
tool.uv.keyring-provider设置在uv.toml或pyproject.toml中启用 keyring。同样,索引的用户名也可以直接写在索引 URL 中。
发布包
如果你还想把自己的包发布到 Azure Artifacts,可以按构建和发布指南中所述使用 uv publish。
首先,为目标索引添加 publish-url。例如:
| |
然后配置凭据(如果未使用 keyring):
| |
并发布包:
| |
如果不想把 publish-url 添加到项目,也可以设置 UV_PUBLISH_URL 后使用 uv publish:
| |
注意这种方式并不理想,因为 uv 在上传产物之前无法检查该包是否已经发布。