flaskr.py 714 B

1234567891011121314151617181920212223242526272829303132
  1. """
  2. Website for Craftbroec RR stuff
  3. """
  4. import os
  5. import hashlib
  6. import hmac
  7. from subprocess import call
  8. from flask import jsonify, abort, request
  9. from app import app
  10. @app.route('/')
  11. def index():
  12. """Show index page"""
  13. return jsonify(True)
  14. @app.route('/deploy', methods=['POST'])
  15. def deploy():
  16. """Run deploy script"""
  17. secret = os.environ["WEBHOOK_KEY"].encode('utf-8')
  18. digest = hmac.new(secret, request.data, hashlib.sha256).hexdigest()
  19. signature = request.headers['X-Gogs-Signature']
  20. if len(signature) < 2 or not hmac.compare_digest(signature, digest):
  21. abort(400, 'Invalid signature')
  22. call(['git', 'pull'])
  23. call(['touch', 'flask.wsgi'])
  24. return jsonify(True)