summaryrefslogtreecommitdiff
path: root/gitlab/objects.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain.pocentek@objectif-libre.com>2016-01-10 18:21:46 +0100
committerGauvain Pocentek <gauvain.pocentek@objectif-libre.com>2016-01-10 18:21:46 +0100
commit1d7ebea727c2fa68135ef4290dfe51604d843688 (patch)
treebad1985ed2fd1d4196628e862643eb0870d18dc6 /gitlab/objects.py
parente5821e6a39344d545ac230ac6d868a8f0aaeb46b (diff)
downloadgitlab-1d7ebea727c2fa68135ef4290dfe51604d843688.tar.gz
Support deletion without getting the object first
Use this feature in the CLI to avoid an extra API call to the server.
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r--gitlab/objects.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 628b41f..2ab2a52 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -134,6 +134,21 @@ class BaseManager(object):
raise NotImplementedError
return self.obj_cls.create(self.gitlab, data, **kwargs)
+ def delete(self, id, **kwargs):
+ """Delete a GitLab object.
+
+ Args:
+ id: ID of the object to delete.
+
+ Raises:
+ NotImplementedError: If objects cannot be deleted.
+ GitlabDeleteError: If the server fails to perform the request.
+ """
+ self._set_parent_args(**kwargs)
+ if not self.obj_cls.canDelete:
+ raise NotImplementedError
+ self.gitlab.delete(self.obj_cls, id, **kwargs)
+
def _custom_list(self, url, cls, **kwargs):
r = self.gitlab._raw_get(url, **kwargs)
raise_error_from_response(r, GitlabListError)