-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | GitHub WebHook Handler -- -- Generic definition of a GitHub Webhook Handler. Specialized version -- for Snap can be found in the 'github-webhook-handler-snap' package. @package github-webhook-handler @version 0.0.7 module GitHub.WebHook.Handler data Handler m Handler :: [String] -> m ByteString -> (ByteString -> m (Maybe ByteString)) -> Handler m -- | Secret keys which are used to authenticate the incoming request. If -- the list is empty then no authentication is required. The handler -- tries each key until it finds one which works. This makes it easier to -- rotate keys because you can have multiple ones active at any given -- point in time. [hSecretKeys] :: Handler m -> [String] -- | Action which is used to read the request body. [hBody] :: Handler m -> m ByteString -- | Action which is used to retrieve a particular header from the request. [hHeader] :: Handler m -> ByteString -> m (Maybe ByteString) data Error -- | The incoming request is not well-formed. If that happens it means -- GitHub screwed something up, or changed the format of the request. InvalidRequest :: Error -- | The request looks valid but we failed to parse the payload. This could -- be because our parsing code is wrong, or because GitHub added a new -- event type which we don't handle yet. ParseError :: !Text -> Error -- | We were expecting a signed request but no signature was included. Such -- requests are rejected beause we don't want to accept requests from -- untrusted sources. UnsignedRequest :: Error -- | A signature was included in the request but it did not match the -- secret key which was providid to the handler. Usually points to a -- configuration error on either end. InvalidSignature :: Error runHandler :: (Applicative m, Monad m) => Handler m -> m (Either Error (UUID, Payload))