github :: HookAction :: defaultinit
# A nitcorn action dedicated to GitHub hook listening.
private class HookAction
super Action
# Listener that contains this action.
#
# The `listener` is used for its `event_factory` method
# and the `apply_event`.
var listener: HookListener
# Parse hook request then call `listener.apply_event`.
redef fun answer(request, uri) do
# get event type
var kind = request.header.get_or_null("X-GitHub-Event")
if kind == null then return new HttpResponse(403)
# parse event
var event = listener.event_factory(kind, request.body)
if event == null then return new HttpResponse(403)
listener.apply_event(event)
return new HttpResponse(200)
end
end
lib/github/hooks.nit:126,1--147,3