Story #8313

Updated by ttereshc 9 months ago

### Problem statement

1. There is no way to free some disc space because we do not 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. them

(Note: Orphan clean up is still expected to be run in order to remove artifacts from the fs.) 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
* 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)