/
app.py
47 lines (33 loc) · 1.09 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from flask import Flask, request, jsonify
import json
import hmac
from hashlib import sha1
app = Flask(__name__)
@app.route('/', methods=['POST'])
def foo():
print "testing the webhook"
sha_name, signature = request.headers.get('X-Hub-Signature').split('=')
if sha_name != 'sha1':
print "sha name doesnt equal sha1"
mac = hmac.new(str('secret'), msg=request.data, digestmod=sha1)
if (hmac.compare_digest(str(mac.hexdigest()), str(signature)) and
request.headers.get('X-GitHub-Event') == u'push'):
api_data = json.loads(request.data)
print api_data
print 'SECRET WAS A SUCCESS!'
success_message = {
'status': 200,
'message': "Github Webhook: success!"
}
response = jsonify(success_message)
response.status_code = 200
else:
failure_message = {
'status': 400,
'message': "Github Webhook: failed!"
}
response = jsonify(failure_message)
response.status_code = 400
return response
if __name__ == '__main__':
app.run()