Source code for muffineer.resources.gogs
import json
import logging
import falcon
from muffineer.models.gogs import PushEvent
from marshmallow import Schema, fields
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
[docs]class GogsEvent(Schema):
    """Gogs event schema"""
    secret = fields.String()
    ref = fields.String()
    after = fields.String()
    before = fields.String()
    compare_url = fields.String()
    commits = fields.List(fields.Dict())
    repository = fields.Dict()
    pusher = fields.Dict()
    sender = fields.Dict() 
[docs]class GogsEventResource(object):
    """
    Return list of domains
    """
    schemas = {'post': GogsEvent}
[docs]    def on_post(self, req, resp):
        event = req.context['doc']
        key = req.get_header('X-Gogs-Signature', required=True)
        event = PushEvent(event)
        event.send()
        resp.status = falcon.HTTP_200