From 08e7d5d01a24b0f690b84a43d54e765f27df2bf9 Mon Sep 17 00:00:00 2001 From: Marco Antonio Blos de Souza Date: Wed, 3 Aug 2016 23:41:24 +0100 Subject: [PATCH 1/5] Implement slack integration service. --- gitlab/exceptions.py | 3 +++ gitlab/objects.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py index 3fb0613e5..ecc443e68 100644 --- a/gitlab/exceptions.py +++ b/gitlab/exceptions.py @@ -110,6 +110,9 @@ class GitlabMRClosedError(GitlabOperationError): class GitlabMROnBuildSuccessError(GitlabOperationError): pass +class GitlabServiceSlackError(GitlabOperationError): + pass + def raise_error_from_response(response, error, expected_code=200): """Tries to parse gitlab error message from response and raises error. diff --git a/gitlab/objects.py b/gitlab/objects.py index 42d5b38ee..8f20addb6 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1956,6 +1956,11 @@ def update_file(self, path, branch, content, message, **kwargs): r = self.gitlab._raw_put(url, data=None, content_type=None, **kwargs) raise_error_from_response(r, GitlabUpdateError) + def slack_service(self, webhook, username=None, channel=None, **kwargs): + url = "/projects/%s/services/slack" % self.id + r = self.gitlab._raw_put(url, data={'webhook': webhook, 'username': username, 'channel': channel}, **kwargs) + raise_error_from_response(r, GitlabServiceSlackError) + def delete_file(self, path, branch, message, **kwargs): warnings.warn("`delete_file` is deprecated, " "use `files.delete()` instead", From 137b637c68570a9c25e988cdc951f3059d6f5446 Mon Sep 17 00:00:00 2001 From: Marco Antonio Blos de Souza Date: Thu, 4 Aug 2016 00:01:03 +0100 Subject: [PATCH 2/5] Change method location. --- gitlab/objects.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gitlab/objects.py b/gitlab/objects.py index 8f20addb6..a470ffcdc 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1956,11 +1956,6 @@ def update_file(self, path, branch, content, message, **kwargs): r = self.gitlab._raw_put(url, data=None, content_type=None, **kwargs) raise_error_from_response(r, GitlabUpdateError) - def slack_service(self, webhook, username=None, channel=None, **kwargs): - url = "/projects/%s/services/slack" % self.id - r = self.gitlab._raw_put(url, data={'webhook': webhook, 'username': username, 'channel': channel}, **kwargs) - raise_error_from_response(r, GitlabServiceSlackError) - def delete_file(self, path, branch, message, **kwargs): warnings.warn("`delete_file` is deprecated, " "use `files.delete()` instead", @@ -2072,6 +2067,11 @@ def share(self, group_id, group_access, **kwargs): r = self.gitlab._raw_post(url, data=data, **kwargs) raise_error_from_response(r, GitlabCreateError, 201) + def slack_service(self, webhook, username=None, channel=None, **kwargs): + url = "/projects/%s/services/slack" % self.id + r = self.gitlab._raw_put(url, data={'webhook': webhook, 'username': username, 'channel': channel}, **kwargs) + raise_error_from_response(r, GitlabServiceSlackError) + class Runner(GitlabObject): _url = '/runners' From d5cad4137b3a92fbcb04cad3d2fc8e1317549693 Mon Sep 17 00:00:00 2001 From: Marco Antonio Blos de Souza Date: Thu, 4 Aug 2016 00:08:06 +0100 Subject: [PATCH 3/5] Fix style --- gitlab/exceptions.py | 1 + gitlab/objects.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py index ecc443e68..c5934af5f 100644 --- a/gitlab/exceptions.py +++ b/gitlab/exceptions.py @@ -110,6 +110,7 @@ class GitlabMRClosedError(GitlabOperationError): class GitlabMROnBuildSuccessError(GitlabOperationError): pass + class GitlabServiceSlackError(GitlabOperationError): pass diff --git a/gitlab/objects.py b/gitlab/objects.py index a470ffcdc..e68fe9d00 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -2069,7 +2069,8 @@ def share(self, group_id, group_access, **kwargs): def slack_service(self, webhook, username=None, channel=None, **kwargs): url = "/projects/%s/services/slack" % self.id - r = self.gitlab._raw_put(url, data={'webhook': webhook, 'username': username, 'channel': channel}, **kwargs) + r = self.gitlab._raw_put(url, data={'webhook': webhook, + 'username': username, 'channel': channel}, **kwargs) raise_error_from_response(r, GitlabServiceSlackError) From 9448cd58e50ab1e348bd85103eb9c92dc43db861 Mon Sep 17 00:00:00 2001 From: Marco Antonio Blos de Souza Date: Thu, 4 Aug 2016 00:12:31 +0100 Subject: [PATCH 4/5] Fix style --- gitlab/objects.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gitlab/objects.py b/gitlab/objects.py index e68fe9d00..fcda2d1e6 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -2069,8 +2069,11 @@ def share(self, group_id, group_access, **kwargs): def slack_service(self, webhook, username=None, channel=None, **kwargs): url = "/projects/%s/services/slack" % self.id - r = self.gitlab._raw_put(url, data={'webhook': webhook, - 'username': username, 'channel': channel}, **kwargs) + r = self.gitlab._raw_put( + url, + data={'webhook': webhook, 'username': username, 'channel': channel}, + **kwargs + ) raise_error_from_response(r, GitlabServiceSlackError) From ed00807594dee88efbb9b96f4dc7c749846c3d8f Mon Sep 17 00:00:00 2001 From: Marco Antonio Blos de Souza Date: Thu, 4 Aug 2016 00:14:53 +0100 Subject: [PATCH 5/5] Fix style --- gitlab/objects.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gitlab/objects.py b/gitlab/objects.py index fcda2d1e6..bcb842c19 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -2071,7 +2071,11 @@ def slack_service(self, webhook, username=None, channel=None, **kwargs): url = "/projects/%s/services/slack" % self.id r = self.gitlab._raw_put( url, - data={'webhook': webhook, 'username': username, 'channel': channel}, + data={ + 'webhook': webhook, + 'username': username, + 'channel': channel + }, **kwargs ) raise_error_from_response(r, GitlabServiceSlackError)