使用带有artifacts-keyring的诗歌(或pipenv)连接到Azure Artifacts中的数据源

问题描述 投票:0回答:2

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

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

这里,

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

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

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

管理员可以更改身份验证类型吗?当我进入 Connect to feed 页面时,我看到这个

enter image description here

所以,似乎是强制使用

artifacts-keyrings
。在之前的项目中,对于另一家公司,我们使用了基本身份验证,就像这样

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

然后安装软件包我没有问题。

python azure
2个回答
1
投票

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

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

Pipfile:

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

理论上,可以通过创建自己的密钥环实现来欺骗(?)诗歌使用工件密钥环,该实现检测诗歌何时基于服务值使用密钥环,解构所述值,查找私有存储库的 url,然后执行您自己的密钥环查找,其中包含 url,然后查找 url 的“netloc”(只是 dns 名称)部分,因为这就是 Pip 所做的。

祝你好运!


0
投票

因为我花了几个小时才弄清楚这一点: 看来问题是你需要在全球范围内为诗歌安装“artifacts-keyring”:

poetry self add artifacts-keyring

一旦我这样做了,我就可以:

poetry add --source my-feed my-package
© www.soinside.com 2019 - 2024. All rights reserved.