Story #8313

Updated by 9 months ago

### Problem statement

1. There is no way to free some disc space because we dot allow repo versions removal from push repos. Deleting entire repo is not a viable option.
2. There is no way to delete certain repo versions if there is no longer need to keep them

(Note: Orphan clean up is still expected to be run in order to remove artifacts from the fs.

### Solution

1. Enable DELETE on the push repo versions endpoint and allow removal of any versions except the latest one.
* might bring complexity in the logic. Add validation on the distribution update call to disallow repo_version update logic
* change in access policy
2. After each push operation remove all repo versions except the latest one. As a result each push operation will always result into one version.
* this approach will close forever the door for us for adding 'rollback' capabilities for push repos
* this behaviour might be considered as unwanted/confusing. Other operations like tag/untag/manifest removal will still produce a new version and will not clean up previous ones ( behaviour discrepancy)