New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(manager/pip-compile): Use python keychain module for credentials #27342
feat(manager/pip-compile): Use python keychain module for credentials #27342
Conversation
This refactors the pip-compile manager to use the python keychain module along with the keychains.envvars module to pass credentials to pip. Doing it this way means there's a significantly lower likelyhood of accidentally leaking credentials into the output file, since credentials looked up via the keychain module won't ever be written to --index-url or --extra-index-url directives in the output file. Because of this lower likelyhood of leaking credentials, I relaxed the usage of --no-emit-index-url to only automatically apply when credentials are found in index URLs in environment variables.
…e-keyring-envvars-credentials
…e-keyring-envvars-credentials
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed to feat, so we get a feature release because it chnages behavior a lot.
a refactor PR should never change behavior.
@not7cd Can you cross check? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will evaluate this feature after release.
I would like to see mention of --no-emit-index-url
behaviour and link to private-packages.md in pip-compile readme.md. Manager specific documentation is often the first thing someone sees.
🎉 This PR is included in version 37.205.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Changes
This refactors the pip-compile manager to use the python keychain module along with the keychains.envvars module to pass credentials to pip. Doing it this way means there's a significantly lower likelyhood of accidentally leaking credentials into the output file, since credentials looked up via the keychain module won't ever be written to --index-url or --extra-index-url directives in the output file.
Because of this lower likelihood of leaking credentials, I relaxed the usage of --no-emit-index-url to only automatically apply when credentials are found in index URLs in environment variables.
Context
#26853 (comment)
containerbase/base#2145
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via: