python-poetry / python-poetry/poetry
Add support for keyring as a subprocess subprocess (rather than keyring as an import)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.3k
- Forks
- 2.5k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
Issue Kind
Brand new capability
Description
Poetry has support for pulling authentication information out of the system keyring. This (largely) works the same as pip's keyring support, and the documentation even references pip's behavior:
Poetry will fallback to Pip style use of keyring so that backends like Microsoft’s artifacts-keyring get a chance to retrieve valid credentials
However, poetry does not have support for invoking keyring as a subprocess (see pip's documentation for this here).
Impact
The author of pip's keyring support actually intended for people to use it as a subprocess, rather than an import ("As the author of the --keyring-provider flag I recommend you use the subprocess provider").
My company would like to use it to avoid a chicken/egg problem (bootstrapping a single systemwide keyring binary with the appropriate keyring backend is easier than doing it for every installation of poetry), and to keep our configuration as in sync with pip as possible.
Workarounds
The alternative is for people to carefully configure their poetry venv to be configured the same as their global keyring installation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing Poetry's existing keyring authentication fallback and compare its behavior with pip's documented subprocess provider. Determine the relevant authentication entry point and tests before deciding the integration boundaries. Done means Poetry can retrieve credentials by invoking an external keyring command, while preserving the existing import-based behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100