From 6b1fcefc26378f1a0b074d24099f92d8677e1ae7 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Tue, 11 Feb 2014 13:53:44 -0500 Subject: [PATCH] Check in progress on github connection, this will not work. --- endpoints/webhooks.py | 28 ++++++++++++++++++++++++++-- requirements-nover.txt | 3 ++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/endpoints/webhooks.py b/endpoints/webhooks.py index 5a6c0ad3d..9d6b9f319 100644 --- a/endpoints/webhooks.py +++ b/endpoints/webhooks.py @@ -1,13 +1,17 @@ import logging import stripe +import urlparse +import json from flask import request, make_response, Blueprint from data import model -from app import app +from auth.auth import process_auth +from auth.permissions import ModifyRepositoryPermission from util.invoice import renderInvoiceToHtml from util.email import send_invoice_email - +from util.names import parse_repository_name +from util.http import abort logger = logging.getLogger(__name__) @@ -36,3 +40,23 @@ def stripe_webhook(): send_invoice_email(user.email, invoice_html) return make_response('Okay') + +@webhooks.route('/github/push/repository/', methods=['POST']) +@process_auth +@parse_repository_name +def github_push_webhook(namespace, repository): + # data = request.get_json() + permission = ModifyRepositoryPermission(namespace, repository) + if permission.can(): + payload = json.loads(request.form['payload']) + ref = payload['ref'] + + repo = model.get_repository(namespace, repository) + token = model.create_access_token(repo, 'write') + + host = urlparse.urlparse(request.url).netloc + tag = '%s/%s/%s:latest' % (host, repo.namespace, repo.name) + + model.create_repository_build(repo, token, build_spec, tag) + + abort(403) \ No newline at end of file diff --git a/requirements-nover.txt b/requirements-nover.txt index 5b1ef8841..969d1e563 100644 --- a/requirements-nover.txt +++ b/requirements-nover.txt @@ -22,4 +22,5 @@ logstash_formatter redis hiredis git+https://github.com/dotcloud/docker-py.git -loremipsum \ No newline at end of file +loremipsum +pygithub \ No newline at end of file