Renovate fails to authenticate private PyPI when using pip-compile or uv with pyproject.toml and requirements.in #40347
Unanswered
nickreynke
asked this question in
Request Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
How are you running Renovate?
A Mend.io-hosted app
Which platform you running Renovate on?
GitHub.com
Which version of Renovate are you using?
42.74.5
Please tell us more about your question or problem
My team and I are trying to figure out a way to use a private python package index with various constellations:
pip-tools: Usingpip-compilewith arequirements.in(works)pip-tools: Usingpip-compilewith apyproject.toml(does not work)uv: Usinguv pip compilewith arequirements.in(does not work)uv: Usinguv pip compilewith apyproject.toml(does not work)As you can see: Three out of four cases do not work. Here's what we've found:
requirements.inin case ofpip-tools(pip-compile). It finds the--index-url, sets up credentials via env variables and uses them viakeyring.uvand arequirements.in, butuv pip compilecan’t callkeyring:WARN Failure running `keyring` command: No such file or directory(See attached logs.)
.tomlforpip-toolsoruv, because the registry URL extraction won’t ever find a--index-urlin a.toml. The extraction is done here (as of our knowledge) but won't work because the file structure is obviously different from a.infile.Is there something we're doing wrong or is this a bug?
Relevant files:
pip-tools/in/requirements.in + .txt
pip-tools/in/requirements.inpip-tools/in/requirements.txtAlso a
pip-tools/in/pyproject.tomlfor the--no-emit-index-urlparameter:pip-tools/toml/pyproject.toml + .txt
pip-tools/toml/pyproject.tomlpip-tools/toml/requirements.txtuv/in/requirements.in + .txt
uv/in/requirements.inuv/in/requirements.txtAlso a
uv/in/pyproject.tomlto set thekeyring-providertosubprocess:uv/toml/pyproject.toml + .txt
uv/toml/pyproject.tomluv/toml/requirements.txtOur Renovate configuration file for all cases:
aws.json
aws.json{ "hostRules": [ { "matchHost": "xxx.d.codeartifact.eu-central-1.amazonaws.com", "username": "aws", "password": "<token>" } ], "packageRules": [ { "matchDatasources": [ "pypi" ], "registryUrls": [ "https://xxx.d.codeartifact.eu-central-1.amazonaws.com/pypi/xxx/simple/" ] } ] }Logs (if relevant)
Logs for not being able to authenticate
For
uv/toml/pyproject.toml:For
uv/in/requirements.in:For
pip-tools/toml/pyproject.toml:Beta Was this translation helpful? Give feedback.
All reactions