summaryrefslogtreecommitdiff
path: root/gitlab
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2016-05-28 13:22:38 +0530
committerGauvain Pocentek <gauvain@pocentek.net>2016-05-28 13:22:38 +0530
commit7bbbfbdc534a4d26aa61b1b4287911c9f7c6f8a5 (patch)
tree77d4978bc9666cd0e9219e7e1f23787bf91df551 /gitlab
parentb8f19ca9f64b737296782e74816f4b0b88a05d2f (diff)
parentd42687db9f0c58ea8a08532fbf6c524b0cc5ed17 (diff)
downloadgitlab-7bbbfbdc534a4d26aa61b1b4287911c9f7c6f8a5.tar.gz
Merge pull request #118 from IvicaArsov/issues_subscribe_unsubscribe
Add support for subscribe and unsubscribe in issues
Diffstat (limited to 'gitlab')
-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