繁体   English   中英

使用带有artifact-keyring的诗歌(或pipenv)连接到Azure Artifacts

[英]Connect to feed in Azure Artifacts using poetry (or pipenv) with artifacts-keyring

我是使用 Azure 的初学者,特别是我的问题与发布 python 包有关。 我有一个用诗歌管理的 package,我在twine的帮助下将它发布到私人存储库。 我用来发布的命令如下(在这部分我已经在虚拟环境中安装了artifacts-keyring

poetry build
python -m twine upload -r ${ARTIFACT_FEED} --config-file /PYPIRC dist/*

这里, ARTIFACT_FEED是提要的名称。 我对这些命令没有任何问题,并且 package 的发布没有问题。

现在,要使用一个也用诗歌管理的项目,并且使用我的其他 package 已经出版,我想做

poetry add my_package_name

pyproject.toml作为诗歌的文档

[[tool.poetry.source]]
name = "foo"
url = <MY_PRIVATE_COMPANY_REPO_URL>
secondary = true

在虚拟环境中安装了artifacts-keyring后,我收到此错误401 Client Error: Unauthorized for url: <MY_PRIVATE_COMPANY_REPO_URL> 使用pipenv我有同样的问题。 好吧,也许poetry不支持这种身份验证。 相关链接:

  1. https://github.com/microsoft/artifacts-keyring/issues/37
  2. https://github.com/microsoft/artifacts-keyring/issues/8
  3. https://github.com/python-poetry/poetry/issues/2857

管理员是否可以更改身份验证类型? 当我进入连接到提要页面时,我看到了这个

在此处输入图像描述

所以,似乎是强制使用artifacts-keyrings 在之前的项目中,对于另一家公司,我们使用基本身份验证,像这样

poetry publish --repository <PRIVATE_REPO> --username <USERNAME> --password <PASSWORD> --build

然后安装 package 我没有问题。

您可以使用基本身份验证,用户名可以是任何东西,密码必须是个人访问令牌。

Poetry 目前确实可以与artifacts-keyring一起使用,请参阅python-poetry#4086

Pipenv 可以,但是您的虚拟环境需要安装artifacts-keyring ,在您的主安装中安装azure-devops-artifacts-helpers并配置 virtualenv 以使用它提供的azdo-pip播种器,这让生活更轻松。

#powershell
python -m pip install --user azure_devops_artifacts_helpers artifacts-keyring
[Environment]::SetEnvironmentVariable("VIRTUALENV_SEEDER", "azdo-pip", "Machine")
[Environment]::SetEnvironmentVariable("PIP_INDEX_URL", "https://pkgs.dev.azure.com/XXXXX/_packaging/YYYYY/pypi/simple/", "Machine")

点文件:

[[source]]
url =  "${PIP_INDEX_URL}"
name = "azdo"

从理论上讲,可以通过创建您自己的密钥环实现来欺骗(?)诗歌使用工件密钥环,该实现检测诗歌何时根据服务值使用密钥环,解构所述值,查找 url 的私人回购然后做你的own keyring lookup with the url followed by a lookup for the "netloc" (just the dns name) part of the url since that is what Pip does.

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM