Story #2886
closedAs a user, I can publish a Python repository in a way that can be consumed by Pulp
100%
Description
This story is to implement PyPI's json API. This story is successful when a second Pulp can sync from a repository published by this Pulp.
Since we want to use the resulting api for both upload from twine, and syncing from Pulp we should provide a 'live' endpoint for the packages without using Pulp's publication/distribution mechanism, since those objects are only used for a 'flat' publish.
We would need a new view that would dynamically generate the json and the url for each PythonPackageContent, the 'url' in the json would link to the location of the package in the Content View.
This new view would provide an endpoint like
/pypi/{repo-name}/{package-name}/json
for each package in a repository. This new view would not have to support upload requests from twine, as that will be done in #2887
Related issues
Implemented PyPi json API
Pulp now supports PyPi's json API with the new content endpoint '/pypi/{package-name}/json'. This will enable basic syncing from other Pulp instances. Also package classifiers are now included in Python content.
fixes: #2886 https://pulp.plan.io/issues/2886 fixes: #3627 https://pulp.plan.io/issues/3627