Skip to content
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

Provide resource to set/update all releases for a project #17

Open
mp911de opened this issue Aug 18, 2023 · 0 comments
Open

Provide resource to set/update all releases for a project #17

mp911de opened this issue Aug 18, 2023 · 0 comments

Comments

@mp911de
Copy link

mp911de commented Aug 18, 2023

For Spring Data releases, we update multiple releases for multiple projects. This results in one GET to obtain the current release and multiple DELETE and POST roundtrips to delete old releases and create new ones.

For a project, we have all details of the desired state at hand so it would be neat to have a resource to post the release state containing all releases that should be listed under a project. It would correspond with a PUT request where the server side would figure out which releases to delete, which to update and which to retain.

Something along the lines of:

PUT /projects/{project}/releases

{
  "releases":[
  { "version": "1.0.2", "referenceDocUrl": "", "isCurrent": "", "apiDocUrl": ""},
  { "version": "1.0.3-SNAPSHOT", "referenceDocUrl": "", "isCurrent": "", "apiDocUrl": ""},
  { "version": "1.1.0", "referenceDocUrl": "", "isCurrent": "", "apiDocUrl": ""},
  { "version": "1.1.1-SNAPSHOT", "referenceDocUrl": "", "isCurrent": "", "apiDocUrl": ""},
  ]
}

The benefit for the API is to reduce the number of roundtrips from 15 /* modules */ * (1 + /* GET */ + 16 /* approx. 8 versions to delete and 8 versions to add on a typical release day */) plus all retries when rate limiting or 40x errors happen to 15 roundtrips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant