@@ -503,6 +503,29 @@ OUTPUT::
error: null
delete_repo
-----------
Deletes a repository. This command can be executed only using api_key
belonging to user with admin rights.
INPUT::
api_key : "<api_key>"
method : "delete_repo"
args: {
"repo_name" : "<reponame>",
}
OUTPUT::
result: {
"msg": "Deleted repository <reponame>",
grant_user_permission
---------------------
@@ -493,6 +493,25 @@ class ApiController(JSONRPCController):
raise JSONRPCError('failed to create repository %s' % repo_name)
@HasPermissionAnyDecorator('hg.admin')
def delete_repo(self, apiuser, repo_name):
"""
Deletes a given repository
:param repo_name:
if not Repository.get_by_repo_name(repo_name):
raise JSONRPCError("repo %s does not exist" % repo_name)
try:
RepoModel().delete(repo_name)
Session.commit()
return dict(
msg='Deleted repository %s' % repo_name
)
except Exception:
log.error(traceback.format_exc())
raise JSONRPCError('failed to delete repository %s' % repo_name)
def grant_user_permission(self, repo_name, username, perm):
Grant permission for user on given repository, or update existing one
@@ -302,6 +302,7 @@ class RepoModel(BaseModel):
run_task(tasks.create_repo_fork, form_data, cur_user)
def delete(self, repo):
repo = self.__get_repo(repo)
self.sa.delete(repo)
self.__delete_repo(repo)
Status change: