X-Git-Url: https://git.ralfj.de/git-mirror.git/blobdiff_plain/b13f671882eb0d0e302860144103870f38f4a062..a0776d1336cd8391798c8e326fbac3a5b57b5be1:/webhook.py diff --git a/webhook.py b/webhook.py index 7935d81..d91a4aa 100755 --- a/webhook.py +++ b/webhook.py @@ -29,22 +29,15 @@ webhook_core = "/home/git/git-mirror/webhook-core.py" # import urllib.request, urllib.parse, json, os, sys -def is_github(remote_addr): - '''Returns whether the address is a github hook address. This function requires Python 3.3.''' - from ipaddress import ip_address, ip_network - remote_addr = ip_address(ip_network) - github = urllib.request.urlopen('https://api.github.com/meta').read() - github = json.loads(github.decode('utf-8')) - for net in github['hooks']: - if remote_addr in ip_network(net): - return True - return False - # get repository from query string query = os.getenv("QUERY_STRING") query = urllib.parse.parse_qs(query) repository = query.get('repository', []) repository = repository[0] if len(repository) else '' +# get GitHub metadata +githubEvent = os.getenv('HTTP_X_GITHUB_EVENT') +githubSignature = os.getenv('HTTP_X_HUB_SIGNATURE') + # execute the actual script -os.execlp("sudo", "sudo", "-n", "-u", "git", webhook_core, repository) +os.execlp("sudo", "sudo", "-n", "-u", "git", webhook_core, repository, str(githubEvent), str(githubSignature))