Story #2886

As a user, I can publish a Python repository in a way that can be consumed by Pulp

Added by over 3 years ago. Updated 9 days ago.

Start date:
Due date:
% Done:


Estimated time:
Platform Release:
Target Release - Python:
Sprint Candidate:


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


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

Blocked by Python Support - Story #2884: As a user I can sync from PyPIMODIFIED

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

Associated revisions

Revision c252306d View on GitHub
Added by gerrod 5 months ago

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 fixes: #3627


#1 Updated by over 3 years ago

  • Blocked by Story #2884: As a user I can sync from PyPI added

#2 Updated by mhrivnak over 3 years ago

Do you have any thoughts or a recommendation around prioritizing this one vs #2885 ?

#3 Updated by over 3 years ago

This is only necessary for Pulp syncing from Pulp, so if only considering this plugin, this could be a pretty low priority. It is in the MVP, but could be done near the release.

This story could go into some exciting new territory, to create a custom API endpoint that implements PyPI's json API. Since the json API is simpler than puppet or crane, this story might be worth doing soon as a prototype for other plugins.

#4 Updated by bizhang about 3 years ago

  • Sprint/Milestone set to 51

#5 Updated by bizhang about 3 years ago

  • Description updated (diff)

#6 Updated by bizhang about 3 years ago

  • Sprint/Milestone deleted (51)

#7 Updated by bizhang over 2 years ago

  • Sprint/Milestone set to 3.0 GA

#8 Updated by bizhang over 2 years ago

  • Priority changed from Normal to High

#9 Updated by bmbouter over 1 year ago

  • Tags deleted (Pulp 3)

#10 Updated by dalley 6 months ago

  • Status changed from NEW to POST
  • Assignee set to gerrod

#11 Updated by gerrod 4 months ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#12 Updated by dalley 9 days ago

  • Platform Release set to 3.0.0

Please register to edit this issue

Also available in: Atom PDF