Story #6875
closed[Meta] Integrate with Bandersnatch
100%
Description
Bandersnatch is an officially-blessed tool for mirroring Python repositories developed by the PyPA organization. It has fairly widespread usage.
https://github.com/pypa/bandersnatch
https://bandersnatch.readthedocs.io
Currently we're attempting to re-implement several features such as package whitelists and blacklists, full PyPI mirroring support, and some version of "keep only the latest releases" -- all of which Bandersnatch already supports, with some degree of polish and testing and additional minor features such as regex filtering.
It would be ideal if we could leverage Bandersnatch's existing support for these features by using Bandersnatch as a library which acts as the frontend to Pulp, and is the only way in which we interact with PyPI. This would be beneficial to both ourselves and to the Python community, as it would increase the testing and quality of the Bandersnatch upstream as issues are found and fixed.
An issue has been file upstream to track the changes that are necessary within Bandersnatch to support this kind of usage.
https://github.com/pypa/bandersnatch/issues/548
This issue will be used to track the efforts needed within Pulp to integrate with Bandersnatch.
Pulp now uses Bandersnatch to perform metadata syncing
Sync uses Bandersnatch to perform metadata fetching and filtering enabling Pulp to sync all of PyPi.
closes: #6930 closes: #6875 closes: #985 https://pulp.plan.io/issues/6930 https://pulp.plan.io/issues/6875 https://pulp.plan.io/issues/985