Skip to content

Commit d42687d

Browse files
Add support for subscribe and unsubscribe in issues
1 parent 05dd8dc commit d42687d

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

gitlab/exceptions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ class GitlabUnblockError(GitlabOperationError):
9191
pass
9292

9393

94+
class GitlabSubscribeError(GitlabOperationError):
95+
pass
96+
97+
98+
class GitlabUnsubscribeError(GitlabOperationError):
99+
pass
100+
101+
94102
class GitlabMRForbiddenError(GitlabOperationError):
95103
pass
96104

gitlab/objects.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,22 @@ def Note(self, id=None, **kwargs):
998998
issue_id=self.id,
999999
**kwargs)
10001000

1001+
def subscribe(self, **kwargs):
1002+
url = ('/projects/%(project_id)s/issues/%(issue_id)s/subscription' %
1003+
{'project_id': self.project_id, 'issue_id': self.id})
1004+
1005+
r = self.gitlab._raw_post(url, **kwargs)
1006+
raise_error_from_response(r, GitlabSubscribeError)
1007+
self._set_from_dict(r.json())
1008+
1009+
def unsubscribe(self, **kwargs):
1010+
url = ('/projects/%(project_id)s/issues/%(issue_id)s/subscription' %
1011+
{'project_id': self.project_id, 'issue_id': self.id})
1012+
1013+
r = self.gitlab._raw_delete(url, **kwargs)
1014+
raise_error_from_response(r, GitlabUnsubscribeError)
1015+
self._set_from_dict(r.json())
1016+
10011017

10021018
class ProjectIssueManager(BaseManager):
10031019
obj_cls = ProjectIssue

0 commit comments

Comments
 (0)