Skip to content
This repository was archived by the owner on Nov 4, 2020. It is now read-only.

Change to projecthook calls to use kwargs allowing for newer params #181

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 24 additions & 6 deletions gitlab/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,18 +586,27 @@ def getprojecthook(self, project_id, hook_id):
else:
return False

def addprojecthook(self, project_id, url, push=False, issues=False, merge_requests=False, tag_push=False):
"""
add a hook to a project
def addprojecthook(self, project_id, url, push=False, issues=False, merge_requests=False, tag_push=False, **kwargs):
"""Add a hook to a project

:param id_: project id
:param url: url of the hook
:param push: Trigger hook on push events
:param issues: Trigger hook on issues events
:param merge_requests: Trigger hook on merge_requests events
:param tag_push: Trigger hook on push_tag events
:param kwargs: Any other param the the Gitlab API supports
:return: True if success
"""
data = {"id": project_id, "url": url}
data['push_events'] = int(bool(push))
data['issues_events'] = int(bool(issues))
data['merge_requests_events'] = int(bool(merge_requests))
data['tag_push_events'] = int(bool(tag_push))
if kwargs:
for key, value in kwargs.iteritems():
data[key] = int(bool(value))

request = requests.post("{0}/{1}/hooks".format(self.projects_url, project_id),
headers=self.headers, data=data, verify=self.verify_ssl, auth=self.auth, timeout=self.timeout)
if request.status_code == 201:
Expand All @@ -606,19 +615,28 @@ def addprojecthook(self, project_id, url, push=False, issues=False, merge_reques
return False

def editprojecthook(self, project_id, hook_id, url, push=False,
issues=False, merge_requests=False, tag_push=False):
"""
edit an existing hook from a project
issues=False, merge_requests=False, tag_push=False, **kwargs):
"""Edit an existing hook from a project

:param id_: project id
:param hook_id: hook id
:param url: the new url
:param push: Trigger hook on push events
:param issues: Trigger hook on issues events
:param merge_requests: Trigger hook on merge_requests events
:param tag_push: Trigger hook on push_tag events
:param kwargs: Any other param the the Gitlab API supports
:return: True if success
"""
data = {"id": project_id, "hook_id": hook_id, "url": url}
data['push_events'] = int(bool(push))
data['issues_events'] = int(bool(issues))
data['merge_requests_events'] = int(bool(merge_requests))
data['tag_push_events'] = int(bool(tag_push))
if kwargs:
for key, value in kwargs.iteritems():
data[key] = int(bool(value))

request = requests.put("{0}/{1}/hooks/{2}".format(self.projects_url, project_id, hook_id),
headers=self.headers, data=data, verify=self.verify_ssl, auth=self.auth, timeout=self.timeout)
if request.status_code == 200:
Expand Down