support "event category" for github so we can e.g. show only approvals

This commit is contained in:
jesopo 2019-11-01 13:30:31 +00:00
parent 96d175bc31
commit 1d777f88b3
2 changed files with 22 additions and 5 deletions

View file

@ -111,10 +111,23 @@ class GitHub(object):
def event(self, data, headers):
event = headers["X-GitHub-Event"]
action = None
event_action = None
if "action" in data:
event_action = "%s/%s" % (event, data["action"])
return [event]+([event_action] if event_action else [])
action = data["action"]
category = None
category_action = None
if "review" in data and "state" in data["review"]:
category = "%s+%s" % (event, data["review"]["state"])
if action:
if category:
category_action = "%s/%s" % (category, action)
event_action = "%s/%s" % (event, action)
return [event]+list(filter(None,
[event_action, category, category_action]))
def event_categories(self, event):
return EVENT_CATEGORIES.get(event, [event])

View file

@ -74,6 +74,7 @@ class GitLab(object):
event = headers["X-GitLab-Event"].rsplit(" ", 1)[0].lower()
event = event.replace(" ", "_")
action = None
event_action = None
category = None
@ -81,12 +82,15 @@ class GitLab(object):
if "object_attributes" in data:
if "action" in data["object_attributes"]:
event_action = "%s/%s" % (
event, data["object_attributes"]["action"])
action = data["object_attributes"]["action"]
if "noteable_type" in data["object_attributes"]:
category = data["object_attributes"]["noteable_type"].lower()
category = "%s+%s" % (event, category)
category_action = "%s/%s" % (category, event_action)
if action:
if category:
category_action = "%s/%s" % (category, action)
event_action = "%s/%s" % (event, action)
return [event]+list(filter(None,
[event_action, category, category_action]))