summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvica Arsov <ivica.arsov@sculpteo.com>2016-05-20 18:39:04 +0200
committerIvica Arsov <ivica.arsov@sculpteo.com>2016-05-20 18:39:04 +0200
commitd42687db9f0c58ea8a08532fbf6c524b0cc5ed17 (patch)
treea5c2bf5990c5d5f84f247947aa4e64470b6f8e2a
parent05dd8dc353fb5ebcb04cad72db19a8e08e0f7c56 (diff)
downloadgitlab-d42687db9f0c58ea8a08532fbf6c524b0cc5ed17.tar.gz
Add support for subscribe and unsubscribe in issues
-rw-r--r--gitlab/exceptions.py8
-rw-r--r--gitlab/objects.py16
2 files changed, 24 insertions, 0 deletions
diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py
index 49a3728..3fb0613 100644
--- a/gitlab/exceptions.py
+++ b/gitlab/exceptions.py
@@ -91,6 +91,14 @@ class GitlabUnblockError(GitlabOperationError):
pass
+class GitlabSubscribeError(GitlabOperationError):
+ pass
+
+
+class GitlabUnsubscribeError(GitlabOperationError):
+ pass
+
+
class GitlabMRForbiddenError(GitlabOperationError):
pass
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 9c6197c..a865ad4 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -998,6 +998,22 @@ class ProjectIssue(GitlabObject):
issue_id=self.id,
**kwargs)
+ def subscribe(self, **kwargs):
+ url = ('/projects/%(project_id)s/issues/%(issue_id)s/subscription' %
+ {'project_id': self.project_id, 'issue_id': self.id})
+
+ r = self.gitlab._raw_post(url, **kwargs)
+ raise_error_from_response(r, GitlabSubscribeError)
+ self._set_from_dict(r.json())
+
+ def unsubscribe(self, **kwargs):
+ url = ('/projects/%(project_id)s/issues/%(issue_id)s/subscription' %
+ {'project_id': self.project_id, 'issue_id': self.id})
+
+ r = self.gitlab._raw_delete(url, **kwargs)
+ raise_error_from_response(r, GitlabUnsubscribeError)
+ self._set_from_dict(r.json())
+
class ProjectIssueManager(BaseManager):
obj_cls = ProjectIssue