diff --git a/modules/github.py b/modules/github.py index ea0fd80b..92a0c268 100644 --- a/modules/github.py +++ b/modules/github.py @@ -41,7 +41,7 @@ class Module(ModuleManager.BaseModule): )["payload"][0] data = json.loads(payload) - github_event = event["headers"]["X-Github-Event"] + github_event = event["headers"]["X-GitHub-Event"] if github_event == "ping": return True diff --git a/modules/rest_api.py b/modules/rest_api.py index f558efca..2914f5d3 100644 --- a/modules/rest_api.py +++ b/modules/rest_api.py @@ -14,7 +14,7 @@ class Handler(http.server.BaseHTTPRequestHandler): _, _, endpoint = path[1:].partition("/") endpoint, _, args = endpoint.partition("/") args = list(filter(None, args.split("/"))) - headers = {key.title(): value for key, value in self.headers.items()} + headers = utils.CaseInsensitiveDict(dict(self.headers.items())) response = "" code = 404 diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 17adf79b..1b218b60 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -171,3 +171,11 @@ def top_10(items: typing.Dict[typing.Any, typing.Any], value_format(items[key]))) return top_10_items + +class CaseInsensitiveDict(dict): + def __init__(self, other): + dict.__init__(self, ((k.lower(), v) for k, v in other)) + def __getitem__(self, key): + return dict.__getitem__(self, key.lower()) + def __setitem__(self, key): + return dict.__setitem__(self, key.lower())