Add api function to fully delete a repository.
This commit is contained in:
parent
891f992bf2
commit
4b9c6d9aae
5 changed files with 37 additions and 22 deletions
|
@ -11,6 +11,7 @@ from util.gravatar import compute_hash
|
|||
from auth.permissions import (ReadRepositoryPermission,
|
||||
ModifyRepositoryPermission,
|
||||
AdministerRepositoryPermission)
|
||||
from endpoints.registry import delete_registry_storage
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -138,6 +139,19 @@ def change_repo_visibility_api(namespace, repository):
|
|||
abort(404)
|
||||
|
||||
|
||||
@app.route('/api/repository/<path:repository>', methods=['DELETE'])
|
||||
@api_login_required
|
||||
@parse_repository_name
|
||||
def delete_repository(namespace, repository):
|
||||
permission = AdministerRepositoryPermission(namespace, repository)
|
||||
if permission.can():
|
||||
model.purge_repository(namespace, repository)
|
||||
delete_registry_storage(namespace, repository)
|
||||
return make_response('Deleted', 204)
|
||||
|
||||
abort(404)
|
||||
|
||||
|
||||
def image_view(image):
|
||||
return {
|
||||
'id': image.image_id,
|
||||
|
|
Reference in a new issue