module GitHub.Data.PullRequests (
    SimplePullRequest(..),
    PullRequest(..),
    EditPullRequest(..),
    CreatePullRequest(..),
    PullRequestLinks(..),
    PullRequestCommit(..),
    PullRequestEvent(..),
    PullRequestEventType(..),
    PullRequestReference(..),
    MergeResult(..),
    ) where

import GitHub.Data.Definitions
import GitHub.Data.Id          (Id)
import GitHub.Data.Options     (IssueState (..), MergeableState (..))
import GitHub.Data.Repos       (Repo)
import GitHub.Data.URL         (URL)
import GitHub.Data.Teams       (SimpleTeam)
import GitHub.Internal.Prelude
import Prelude ()

import qualified Data.Text as T

data SimplePullRequest = SimplePullRequest
    { SimplePullRequest -> Maybe UTCTime
simplePullRequestClosedAt           :: !(Maybe UTCTime)
    , SimplePullRequest -> UTCTime
simplePullRequestCreatedAt          :: !UTCTime
    , SimplePullRequest -> SimpleUser
simplePullRequestUser               :: !SimpleUser
    , SimplePullRequest -> URL
simplePullRequestPatchUrl           :: !URL
    , SimplePullRequest -> IssueState
simplePullRequestState              :: !IssueState
    , SimplePullRequest -> IssueNumber
simplePullRequestNumber             :: !IssueNumber
    , SimplePullRequest -> URL
simplePullRequestHtmlUrl            :: !URL
    , SimplePullRequest -> UTCTime
simplePullRequestUpdatedAt          :: !UTCTime
    , SimplePullRequest -> Maybe Text
simplePullRequestBody               :: !(Maybe Text)
    , SimplePullRequest -> Vector SimpleUser
simplePullRequestAssignees          :: (Vector SimpleUser)
    , SimplePullRequest -> Vector SimpleUser
simplePullRequestRequestedReviewers :: (Vector SimpleUser)
    , SimplePullRequest -> Vector SimpleTeam
simplePullRequestRequestedTeamReviewers:: (Vector SimpleTeam)
    , SimplePullRequest -> URL
simplePullRequestIssueUrl           :: !URL
    , SimplePullRequest -> URL
simplePullRequestDiffUrl            :: !URL
    , SimplePullRequest -> URL
simplePullRequestUrl                :: !URL
    , SimplePullRequest -> PullRequestLinks
simplePullRequestLinks              :: !PullRequestLinks
    , SimplePullRequest -> Maybe UTCTime
simplePullRequestMergedAt           :: !(Maybe UTCTime)
    , SimplePullRequest -> Text
simplePullRequestTitle              :: !Text
    , SimplePullRequest -> Id PullRequest
simplePullRequestId                 :: !(Id PullRequest)
    }
  deriving (Int -> SimplePullRequest -> ShowS
[SimplePullRequest] -> ShowS
SimplePullRequest -> String
(Int -> SimplePullRequest -> ShowS)
-> (SimplePullRequest -> String)
-> ([SimplePullRequest] -> ShowS)
-> Show SimplePullRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SimplePullRequest -> ShowS
showsPrec :: Int -> SimplePullRequest -> ShowS
$cshow :: SimplePullRequest -> String
show :: SimplePullRequest -> String
$cshowList :: [SimplePullRequest] -> ShowS
showList :: [SimplePullRequest] -> ShowS
Show, Typeable SimplePullRequest
Typeable SimplePullRequest =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g)
 -> SimplePullRequest
 -> c SimplePullRequest)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c SimplePullRequest)
-> (SimplePullRequest -> Constr)
-> (SimplePullRequest -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c SimplePullRequest))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c SimplePullRequest))
-> ((forall b. Data b => b -> b)
    -> SimplePullRequest -> SimplePullRequest)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> SimplePullRequest -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> SimplePullRequest -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> SimplePullRequest -> m SimplePullRequest)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> SimplePullRequest -> m SimplePullRequest)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> SimplePullRequest -> m SimplePullRequest)
-> Data SimplePullRequest
SimplePullRequest -> Constr
SimplePullRequest -> DataType
(forall b. Data b => b -> b)
-> SimplePullRequest -> SimplePullRequest
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> SimplePullRequest -> u
forall u. (forall d. Data d => d -> u) -> SimplePullRequest -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SimplePullRequest
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SimplePullRequest -> c SimplePullRequest
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SimplePullRequest)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SimplePullRequest)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SimplePullRequest -> c SimplePullRequest
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SimplePullRequest -> c SimplePullRequest
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SimplePullRequest
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SimplePullRequest
$ctoConstr :: SimplePullRequest -> Constr
toConstr :: SimplePullRequest -> Constr
$cdataTypeOf :: SimplePullRequest -> DataType
dataTypeOf :: SimplePullRequest -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SimplePullRequest)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SimplePullRequest)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SimplePullRequest)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SimplePullRequest)
$cgmapT :: (forall b. Data b => b -> b)
-> SimplePullRequest -> SimplePullRequest
gmapT :: (forall b. Data b => b -> b)
-> SimplePullRequest -> SimplePullRequest
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SimplePullRequest -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SimplePullRequest -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SimplePullRequest -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SimplePullRequest -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SimplePullRequest -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SimplePullRequest -> m SimplePullRequest
Data, Typeable, SimplePullRequest -> SimplePullRequest -> Bool
(SimplePullRequest -> SimplePullRequest -> Bool)
-> (SimplePullRequest -> SimplePullRequest -> Bool)
-> Eq SimplePullRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SimplePullRequest -> SimplePullRequest -> Bool
== :: SimplePullRequest -> SimplePullRequest -> Bool
$c/= :: SimplePullRequest -> SimplePullRequest -> Bool
/= :: SimplePullRequest -> SimplePullRequest -> Bool
Eq, Eq SimplePullRequest
Eq SimplePullRequest =>
(SimplePullRequest -> SimplePullRequest -> Ordering)
-> (SimplePullRequest -> SimplePullRequest -> Bool)
-> (SimplePullRequest -> SimplePullRequest -> Bool)
-> (SimplePullRequest -> SimplePullRequest -> Bool)
-> (SimplePullRequest -> SimplePullRequest -> Bool)
-> (SimplePullRequest -> SimplePullRequest -> SimplePullRequest)
-> (SimplePullRequest -> SimplePullRequest -> SimplePullRequest)
-> Ord SimplePullRequest
SimplePullRequest -> SimplePullRequest -> Bool
SimplePullRequest -> SimplePullRequest -> Ordering
SimplePullRequest -> SimplePullRequest -> SimplePullRequest
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SimplePullRequest -> SimplePullRequest -> Ordering
compare :: SimplePullRequest -> SimplePullRequest -> Ordering
$c< :: SimplePullRequest -> SimplePullRequest -> Bool
< :: SimplePullRequest -> SimplePullRequest -> Bool
$c<= :: SimplePullRequest -> SimplePullRequest -> Bool
<= :: SimplePullRequest -> SimplePullRequest -> Bool
$c> :: SimplePullRequest -> SimplePullRequest -> Bool
> :: SimplePullRequest -> SimplePullRequest -> Bool
$c>= :: SimplePullRequest -> SimplePullRequest -> Bool
>= :: SimplePullRequest -> SimplePullRequest -> Bool
$cmax :: SimplePullRequest -> SimplePullRequest -> SimplePullRequest
max :: SimplePullRequest -> SimplePullRequest -> SimplePullRequest
$cmin :: SimplePullRequest -> SimplePullRequest -> SimplePullRequest
min :: SimplePullRequest -> SimplePullRequest -> SimplePullRequest
Ord, (forall x. SimplePullRequest -> Rep SimplePullRequest x)
-> (forall x. Rep SimplePullRequest x -> SimplePullRequest)
-> Generic SimplePullRequest
forall x. Rep SimplePullRequest x -> SimplePullRequest
forall x. SimplePullRequest -> Rep SimplePullRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SimplePullRequest -> Rep SimplePullRequest x
from :: forall x. SimplePullRequest -> Rep SimplePullRequest x
$cto :: forall x. Rep SimplePullRequest x -> SimplePullRequest
to :: forall x. Rep SimplePullRequest x -> SimplePullRequest
Generic)

instance NFData SimplePullRequest where rnf :: SimplePullRequest -> ()
rnf = SimplePullRequest -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary SimplePullRequest

data PullRequest = PullRequest
    { PullRequest -> Maybe UTCTime
pullRequestClosedAt             :: !(Maybe UTCTime)
    , PullRequest -> UTCTime
pullRequestCreatedAt            :: !UTCTime
    , PullRequest -> SimpleUser
pullRequestUser                 :: !SimpleUser
    , PullRequest -> URL
pullRequestPatchUrl             :: !URL
    , PullRequest -> IssueState
pullRequestState                :: !IssueState
    , PullRequest -> IssueNumber
pullRequestNumber               :: !IssueNumber
    , PullRequest -> URL
pullRequestHtmlUrl              :: !URL
    , PullRequest -> UTCTime
pullRequestUpdatedAt            :: !UTCTime
    , PullRequest -> Maybe Text
pullRequestBody                 :: !(Maybe Text)
    , PullRequest -> Vector SimpleUser
pullRequestAssignees            :: (Vector SimpleUser)
    , PullRequest -> Vector SimpleUser
pullRequestRequestedReviewers   :: (Vector SimpleUser)
    , PullRequest -> Vector SimpleTeam
pullRequestRequestedTeamReviewers :: (Vector SimpleTeam)
    , PullRequest -> URL
pullRequestIssueUrl             :: !URL
    , PullRequest -> URL
pullRequestDiffUrl              :: !URL
    , PullRequest -> URL
pullRequestUrl                  :: !URL
    , PullRequest -> PullRequestLinks
pullRequestLinks                :: !PullRequestLinks
    , PullRequest -> Maybe UTCTime
pullRequestMergedAt             :: !(Maybe UTCTime)
    , PullRequest -> Text
pullRequestTitle                :: !Text
    , PullRequest -> Id PullRequest
pullRequestId                   :: !(Id PullRequest)
    , PullRequest -> Maybe SimpleUser
pullRequestMergedBy             :: !(Maybe SimpleUser)
    , PullRequest -> Int
pullRequestChangedFiles         :: !Int
    , PullRequest -> PullRequestCommit
pullRequestHead                 :: !PullRequestCommit
    , PullRequest -> Int
pullRequestComments             :: !Count
    , PullRequest -> Int
pullRequestDeletions            :: !Count
    , PullRequest -> Int
pullRequestAdditions            :: !Count
    , PullRequest -> Int
pullRequestReviewComments       :: !Count
    , PullRequest -> PullRequestCommit
pullRequestBase                 :: !PullRequestCommit
    , PullRequest -> Int
pullRequestCommits              :: !Count
    , PullRequest -> Bool
pullRequestMerged               :: !Bool
    , PullRequest -> Maybe Bool
pullRequestMergeable            :: !(Maybe Bool)
    , PullRequest -> MergeableState
pullRequestMergeableState       :: !MergeableState
    }
  deriving (Int -> PullRequest -> ShowS
[PullRequest] -> ShowS
PullRequest -> String
(Int -> PullRequest -> ShowS)
-> (PullRequest -> String)
-> ([PullRequest] -> ShowS)
-> Show PullRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequest -> ShowS
showsPrec :: Int -> PullRequest -> ShowS
$cshow :: PullRequest -> String
show :: PullRequest -> String
$cshowList :: [PullRequest] -> ShowS
showList :: [PullRequest] -> ShowS
Show, Typeable PullRequest
Typeable PullRequest =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> PullRequest -> c PullRequest)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequest)
-> (PullRequest -> Constr)
-> (PullRequest -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequest))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequest))
-> ((forall b. Data b => b -> b) -> PullRequest -> PullRequest)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequest -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequest -> r)
-> (forall u. (forall d. Data d => d -> u) -> PullRequest -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequest -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PullRequest -> m PullRequest)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PullRequest -> m PullRequest)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PullRequest -> m PullRequest)
-> Data PullRequest
PullRequest -> Constr
PullRequest -> DataType
(forall b. Data b => b -> b) -> PullRequest -> PullRequest
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PullRequest -> u
forall u. (forall d. Data d => d -> u) -> PullRequest -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequest
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequest -> c PullRequest
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequest)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequest)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequest -> c PullRequest
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequest -> c PullRequest
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequest
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequest
$ctoConstr :: PullRequest -> Constr
toConstr :: PullRequest -> Constr
$cdataTypeOf :: PullRequest -> DataType
dataTypeOf :: PullRequest -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequest)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequest)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequest)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequest)
$cgmapT :: (forall b. Data b => b -> b) -> PullRequest -> PullRequest
gmapT :: (forall b. Data b => b -> b) -> PullRequest -> PullRequest
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequest -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequest -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequest -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PullRequest -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PullRequest -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PullRequest -> m PullRequest
Data, Typeable, PullRequest -> PullRequest -> Bool
(PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> Bool) -> Eq PullRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequest -> PullRequest -> Bool
== :: PullRequest -> PullRequest -> Bool
$c/= :: PullRequest -> PullRequest -> Bool
/= :: PullRequest -> PullRequest -> Bool
Eq, Eq PullRequest
Eq PullRequest =>
(PullRequest -> PullRequest -> Ordering)
-> (PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> PullRequest)
-> (PullRequest -> PullRequest -> PullRequest)
-> Ord PullRequest
PullRequest -> PullRequest -> Bool
PullRequest -> PullRequest -> Ordering
PullRequest -> PullRequest -> PullRequest
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequest -> PullRequest -> Ordering
compare :: PullRequest -> PullRequest -> Ordering
$c< :: PullRequest -> PullRequest -> Bool
< :: PullRequest -> PullRequest -> Bool
$c<= :: PullRequest -> PullRequest -> Bool
<= :: PullRequest -> PullRequest -> Bool
$c> :: PullRequest -> PullRequest -> Bool
> :: PullRequest -> PullRequest -> Bool
$c>= :: PullRequest -> PullRequest -> Bool
>= :: PullRequest -> PullRequest -> Bool
$cmax :: PullRequest -> PullRequest -> PullRequest
max :: PullRequest -> PullRequest -> PullRequest
$cmin :: PullRequest -> PullRequest -> PullRequest
min :: PullRequest -> PullRequest -> PullRequest
Ord, (forall x. PullRequest -> Rep PullRequest x)
-> (forall x. Rep PullRequest x -> PullRequest)
-> Generic PullRequest
forall x. Rep PullRequest x -> PullRequest
forall x. PullRequest -> Rep PullRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequest -> Rep PullRequest x
from :: forall x. PullRequest -> Rep PullRequest x
$cto :: forall x. Rep PullRequest x -> PullRequest
to :: forall x. Rep PullRequest x -> PullRequest
Generic)

instance NFData PullRequest where rnf :: PullRequest -> ()
rnf = PullRequest -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequest

data EditPullRequest = EditPullRequest
    { EditPullRequest -> Maybe Text
editPullRequestTitle :: !(Maybe Text)
    , EditPullRequest -> Maybe Text
editPullRequestBody  :: !(Maybe Text)
    , EditPullRequest -> Maybe IssueState
editPullRequestState :: !(Maybe IssueState)
    , EditPullRequest -> Maybe Text
editPullRequestBase  :: !(Maybe Text)
    , EditPullRequest -> Maybe Bool
editPullRequestMaintainerCanModify
                           :: !(Maybe Bool)
    }
  deriving (Int -> EditPullRequest -> ShowS
[EditPullRequest] -> ShowS
EditPullRequest -> String
(Int -> EditPullRequest -> ShowS)
-> (EditPullRequest -> String)
-> ([EditPullRequest] -> ShowS)
-> Show EditPullRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EditPullRequest -> ShowS
showsPrec :: Int -> EditPullRequest -> ShowS
$cshow :: EditPullRequest -> String
show :: EditPullRequest -> String
$cshowList :: [EditPullRequest] -> ShowS
showList :: [EditPullRequest] -> ShowS
Show, (forall x. EditPullRequest -> Rep EditPullRequest x)
-> (forall x. Rep EditPullRequest x -> EditPullRequest)
-> Generic EditPullRequest
forall x. Rep EditPullRequest x -> EditPullRequest
forall x. EditPullRequest -> Rep EditPullRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EditPullRequest -> Rep EditPullRequest x
from :: forall x. EditPullRequest -> Rep EditPullRequest x
$cto :: forall x. Rep EditPullRequest x -> EditPullRequest
to :: forall x. Rep EditPullRequest x -> EditPullRequest
Generic)

instance NFData EditPullRequest where rnf :: EditPullRequest -> ()
rnf = EditPullRequest -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary EditPullRequest

data CreatePullRequest
    = CreatePullRequest
      { CreatePullRequest -> Text
createPullRequestTitle :: !Text
      , CreatePullRequest -> Text
createPullRequestBody  :: !Text
      , CreatePullRequest -> Text
createPullRequestHead  :: !Text
      , CreatePullRequest -> Text
createPullRequestBase  :: !Text
      }
    | CreatePullRequestIssue
      { CreatePullRequest -> Int
createPullRequestIssueNum :: !Int
      , createPullRequestHead     :: !Text
      , createPullRequestBase     :: !Text
      }
  deriving (Int -> CreatePullRequest -> ShowS
[CreatePullRequest] -> ShowS
CreatePullRequest -> String
(Int -> CreatePullRequest -> ShowS)
-> (CreatePullRequest -> String)
-> ([CreatePullRequest] -> ShowS)
-> Show CreatePullRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreatePullRequest -> ShowS
showsPrec :: Int -> CreatePullRequest -> ShowS
$cshow :: CreatePullRequest -> String
show :: CreatePullRequest -> String
$cshowList :: [CreatePullRequest] -> ShowS
showList :: [CreatePullRequest] -> ShowS
Show, (forall x. CreatePullRequest -> Rep CreatePullRequest x)
-> (forall x. Rep CreatePullRequest x -> CreatePullRequest)
-> Generic CreatePullRequest
forall x. Rep CreatePullRequest x -> CreatePullRequest
forall x. CreatePullRequest -> Rep CreatePullRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CreatePullRequest -> Rep CreatePullRequest x
from :: forall x. CreatePullRequest -> Rep CreatePullRequest x
$cto :: forall x. Rep CreatePullRequest x -> CreatePullRequest
to :: forall x. Rep CreatePullRequest x -> CreatePullRequest
Generic)

instance NFData CreatePullRequest where rnf :: CreatePullRequest -> ()
rnf = CreatePullRequest -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary CreatePullRequest

data PullRequestLinks = PullRequestLinks
    { PullRequestLinks -> URL
pullRequestLinksReviewComments :: !URL
    , PullRequestLinks -> URL
pullRequestLinksComments       :: !URL
    , PullRequestLinks -> URL
pullRequestLinksHtml           :: !URL
    , PullRequestLinks -> URL
pullRequestLinksSelf           :: !URL
    }
  deriving (Int -> PullRequestLinks -> ShowS
[PullRequestLinks] -> ShowS
PullRequestLinks -> String
(Int -> PullRequestLinks -> ShowS)
-> (PullRequestLinks -> String)
-> ([PullRequestLinks] -> ShowS)
-> Show PullRequestLinks
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequestLinks -> ShowS
showsPrec :: Int -> PullRequestLinks -> ShowS
$cshow :: PullRequestLinks -> String
show :: PullRequestLinks -> String
$cshowList :: [PullRequestLinks] -> ShowS
showList :: [PullRequestLinks] -> ShowS
Show, Typeable PullRequestLinks
Typeable PullRequestLinks =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> PullRequestLinks -> c PullRequestLinks)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestLinks)
-> (PullRequestLinks -> Constr)
-> (PullRequestLinks -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestLinks))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestLinks))
-> ((forall b. Data b => b -> b)
    -> PullRequestLinks -> PullRequestLinks)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestLinks -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestLinks -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestLinks -> m PullRequestLinks)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestLinks -> m PullRequestLinks)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestLinks -> m PullRequestLinks)
-> Data PullRequestLinks
PullRequestLinks -> Constr
PullRequestLinks -> DataType
(forall b. Data b => b -> b)
-> PullRequestLinks -> PullRequestLinks
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestLinks -> u
forall u. (forall d. Data d => d -> u) -> PullRequestLinks -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestLinks
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestLinks -> c PullRequestLinks
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestLinks)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestLinks)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestLinks -> c PullRequestLinks
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestLinks -> c PullRequestLinks
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestLinks
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestLinks
$ctoConstr :: PullRequestLinks -> Constr
toConstr :: PullRequestLinks -> Constr
$cdataTypeOf :: PullRequestLinks -> DataType
dataTypeOf :: PullRequestLinks -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestLinks)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestLinks)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestLinks)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestLinks)
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestLinks -> PullRequestLinks
gmapT :: (forall b. Data b => b -> b)
-> PullRequestLinks -> PullRequestLinks
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestLinks -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestLinks -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestLinks -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestLinks -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestLinks -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestLinks -> m PullRequestLinks
Data, Typeable, PullRequestLinks -> PullRequestLinks -> Bool
(PullRequestLinks -> PullRequestLinks -> Bool)
-> (PullRequestLinks -> PullRequestLinks -> Bool)
-> Eq PullRequestLinks
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequestLinks -> PullRequestLinks -> Bool
== :: PullRequestLinks -> PullRequestLinks -> Bool
$c/= :: PullRequestLinks -> PullRequestLinks -> Bool
/= :: PullRequestLinks -> PullRequestLinks -> Bool
Eq, Eq PullRequestLinks
Eq PullRequestLinks =>
(PullRequestLinks -> PullRequestLinks -> Ordering)
-> (PullRequestLinks -> PullRequestLinks -> Bool)
-> (PullRequestLinks -> PullRequestLinks -> Bool)
-> (PullRequestLinks -> PullRequestLinks -> Bool)
-> (PullRequestLinks -> PullRequestLinks -> Bool)
-> (PullRequestLinks -> PullRequestLinks -> PullRequestLinks)
-> (PullRequestLinks -> PullRequestLinks -> PullRequestLinks)
-> Ord PullRequestLinks
PullRequestLinks -> PullRequestLinks -> Bool
PullRequestLinks -> PullRequestLinks -> Ordering
PullRequestLinks -> PullRequestLinks -> PullRequestLinks
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequestLinks -> PullRequestLinks -> Ordering
compare :: PullRequestLinks -> PullRequestLinks -> Ordering
$c< :: PullRequestLinks -> PullRequestLinks -> Bool
< :: PullRequestLinks -> PullRequestLinks -> Bool
$c<= :: PullRequestLinks -> PullRequestLinks -> Bool
<= :: PullRequestLinks -> PullRequestLinks -> Bool
$c> :: PullRequestLinks -> PullRequestLinks -> Bool
> :: PullRequestLinks -> PullRequestLinks -> Bool
$c>= :: PullRequestLinks -> PullRequestLinks -> Bool
>= :: PullRequestLinks -> PullRequestLinks -> Bool
$cmax :: PullRequestLinks -> PullRequestLinks -> PullRequestLinks
max :: PullRequestLinks -> PullRequestLinks -> PullRequestLinks
$cmin :: PullRequestLinks -> PullRequestLinks -> PullRequestLinks
min :: PullRequestLinks -> PullRequestLinks -> PullRequestLinks
Ord, (forall x. PullRequestLinks -> Rep PullRequestLinks x)
-> (forall x. Rep PullRequestLinks x -> PullRequestLinks)
-> Generic PullRequestLinks
forall x. Rep PullRequestLinks x -> PullRequestLinks
forall x. PullRequestLinks -> Rep PullRequestLinks x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequestLinks -> Rep PullRequestLinks x
from :: forall x. PullRequestLinks -> Rep PullRequestLinks x
$cto :: forall x. Rep PullRequestLinks x -> PullRequestLinks
to :: forall x. Rep PullRequestLinks x -> PullRequestLinks
Generic)

instance NFData PullRequestLinks where rnf :: PullRequestLinks -> ()
rnf = PullRequestLinks -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequestLinks

data PullRequestCommit = PullRequestCommit
    { PullRequestCommit -> Text
pullRequestCommitLabel :: !Text
    , PullRequestCommit -> Text
pullRequestCommitRef   :: !Text
    , PullRequestCommit -> Text
pullRequestCommitSha   :: !Text
    , PullRequestCommit -> SimpleUser
pullRequestCommitUser  :: !SimpleUser
    , PullRequestCommit -> Maybe Repo
pullRequestCommitRepo  :: !(Maybe Repo)
    }
  deriving (Int -> PullRequestCommit -> ShowS
[PullRequestCommit] -> ShowS
PullRequestCommit -> String
(Int -> PullRequestCommit -> ShowS)
-> (PullRequestCommit -> String)
-> ([PullRequestCommit] -> ShowS)
-> Show PullRequestCommit
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequestCommit -> ShowS
showsPrec :: Int -> PullRequestCommit -> ShowS
$cshow :: PullRequestCommit -> String
show :: PullRequestCommit -> String
$cshowList :: [PullRequestCommit] -> ShowS
showList :: [PullRequestCommit] -> ShowS
Show, Typeable PullRequestCommit
Typeable PullRequestCommit =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g)
 -> PullRequestCommit
 -> c PullRequestCommit)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestCommit)
-> (PullRequestCommit -> Constr)
-> (PullRequestCommit -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestCommit))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestCommit))
-> ((forall b. Data b => b -> b)
    -> PullRequestCommit -> PullRequestCommit)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestCommit -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestCommit -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestCommit -> m PullRequestCommit)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestCommit -> m PullRequestCommit)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestCommit -> m PullRequestCommit)
-> Data PullRequestCommit
PullRequestCommit -> Constr
PullRequestCommit -> DataType
(forall b. Data b => b -> b)
-> PullRequestCommit -> PullRequestCommit
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestCommit -> u
forall u. (forall d. Data d => d -> u) -> PullRequestCommit -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestCommit
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestCommit -> c PullRequestCommit
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestCommit)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestCommit)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestCommit -> c PullRequestCommit
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestCommit -> c PullRequestCommit
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestCommit
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestCommit
$ctoConstr :: PullRequestCommit -> Constr
toConstr :: PullRequestCommit -> Constr
$cdataTypeOf :: PullRequestCommit -> DataType
dataTypeOf :: PullRequestCommit -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestCommit)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestCommit)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestCommit)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestCommit)
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestCommit -> PullRequestCommit
gmapT :: (forall b. Data b => b -> b)
-> PullRequestCommit -> PullRequestCommit
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestCommit -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestCommit -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestCommit -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestCommit -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestCommit -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestCommit -> m PullRequestCommit
Data, Typeable, PullRequestCommit -> PullRequestCommit -> Bool
(PullRequestCommit -> PullRequestCommit -> Bool)
-> (PullRequestCommit -> PullRequestCommit -> Bool)
-> Eq PullRequestCommit
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequestCommit -> PullRequestCommit -> Bool
== :: PullRequestCommit -> PullRequestCommit -> Bool
$c/= :: PullRequestCommit -> PullRequestCommit -> Bool
/= :: PullRequestCommit -> PullRequestCommit -> Bool
Eq, Eq PullRequestCommit
Eq PullRequestCommit =>
(PullRequestCommit -> PullRequestCommit -> Ordering)
-> (PullRequestCommit -> PullRequestCommit -> Bool)
-> (PullRequestCommit -> PullRequestCommit -> Bool)
-> (PullRequestCommit -> PullRequestCommit -> Bool)
-> (PullRequestCommit -> PullRequestCommit -> Bool)
-> (PullRequestCommit -> PullRequestCommit -> PullRequestCommit)
-> (PullRequestCommit -> PullRequestCommit -> PullRequestCommit)
-> Ord PullRequestCommit
PullRequestCommit -> PullRequestCommit -> Bool
PullRequestCommit -> PullRequestCommit -> Ordering
PullRequestCommit -> PullRequestCommit -> PullRequestCommit
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequestCommit -> PullRequestCommit -> Ordering
compare :: PullRequestCommit -> PullRequestCommit -> Ordering
$c< :: PullRequestCommit -> PullRequestCommit -> Bool
< :: PullRequestCommit -> PullRequestCommit -> Bool
$c<= :: PullRequestCommit -> PullRequestCommit -> Bool
<= :: PullRequestCommit -> PullRequestCommit -> Bool
$c> :: PullRequestCommit -> PullRequestCommit -> Bool
> :: PullRequestCommit -> PullRequestCommit -> Bool
$c>= :: PullRequestCommit -> PullRequestCommit -> Bool
>= :: PullRequestCommit -> PullRequestCommit -> Bool
$cmax :: PullRequestCommit -> PullRequestCommit -> PullRequestCommit
max :: PullRequestCommit -> PullRequestCommit -> PullRequestCommit
$cmin :: PullRequestCommit -> PullRequestCommit -> PullRequestCommit
min :: PullRequestCommit -> PullRequestCommit -> PullRequestCommit
Ord, (forall x. PullRequestCommit -> Rep PullRequestCommit x)
-> (forall x. Rep PullRequestCommit x -> PullRequestCommit)
-> Generic PullRequestCommit
forall x. Rep PullRequestCommit x -> PullRequestCommit
forall x. PullRequestCommit -> Rep PullRequestCommit x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequestCommit -> Rep PullRequestCommit x
from :: forall x. PullRequestCommit -> Rep PullRequestCommit x
$cto :: forall x. Rep PullRequestCommit x -> PullRequestCommit
to :: forall x. Rep PullRequestCommit x -> PullRequestCommit
Generic)

instance NFData PullRequestCommit where rnf :: PullRequestCommit -> ()
rnf = PullRequestCommit -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequestCommit

data PullRequestEvent = PullRequestEvent
    { PullRequestEvent -> PullRequestEventType
pullRequestEventAction      :: !PullRequestEventType
    , PullRequestEvent -> Int
pullRequestEventNumber      :: !Int
    , PullRequestEvent -> PullRequest
pullRequestEventPullRequest :: !PullRequest
    , PullRequestEvent -> Repo
pullRequestRepository       :: !Repo
    , PullRequestEvent -> SimpleUser
pullRequestSender           :: !SimpleUser
    }
    deriving (Int -> PullRequestEvent -> ShowS
[PullRequestEvent] -> ShowS
PullRequestEvent -> String
(Int -> PullRequestEvent -> ShowS)
-> (PullRequestEvent -> String)
-> ([PullRequestEvent] -> ShowS)
-> Show PullRequestEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequestEvent -> ShowS
showsPrec :: Int -> PullRequestEvent -> ShowS
$cshow :: PullRequestEvent -> String
show :: PullRequestEvent -> String
$cshowList :: [PullRequestEvent] -> ShowS
showList :: [PullRequestEvent] -> ShowS
Show, Typeable PullRequestEvent
Typeable PullRequestEvent =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestEvent)
-> (PullRequestEvent -> Constr)
-> (PullRequestEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestEvent))
-> ((forall b. Data b => b -> b)
    -> PullRequestEvent -> PullRequestEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> Data PullRequestEvent
PullRequestEvent -> Constr
PullRequestEvent -> DataType
(forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
forall u. (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
$ctoConstr :: PullRequestEvent -> Constr
toConstr :: PullRequestEvent -> Constr
$cdataTypeOf :: PullRequestEvent -> DataType
dataTypeOf :: PullRequestEvent -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
gmapT :: (forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
Data, Typeable, PullRequestEvent -> PullRequestEvent -> Bool
(PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> Eq PullRequestEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequestEvent -> PullRequestEvent -> Bool
== :: PullRequestEvent -> PullRequestEvent -> Bool
$c/= :: PullRequestEvent -> PullRequestEvent -> Bool
/= :: PullRequestEvent -> PullRequestEvent -> Bool
Eq, Eq PullRequestEvent
Eq PullRequestEvent =>
(PullRequestEvent -> PullRequestEvent -> Ordering)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> PullRequestEvent)
-> (PullRequestEvent -> PullRequestEvent -> PullRequestEvent)
-> Ord PullRequestEvent
PullRequestEvent -> PullRequestEvent -> Bool
PullRequestEvent -> PullRequestEvent -> Ordering
PullRequestEvent -> PullRequestEvent -> PullRequestEvent
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequestEvent -> PullRequestEvent -> Ordering
compare :: PullRequestEvent -> PullRequestEvent -> Ordering
$c< :: PullRequestEvent -> PullRequestEvent -> Bool
< :: PullRequestEvent -> PullRequestEvent -> Bool
$c<= :: PullRequestEvent -> PullRequestEvent -> Bool
<= :: PullRequestEvent -> PullRequestEvent -> Bool
$c> :: PullRequestEvent -> PullRequestEvent -> Bool
> :: PullRequestEvent -> PullRequestEvent -> Bool
$c>= :: PullRequestEvent -> PullRequestEvent -> Bool
>= :: PullRequestEvent -> PullRequestEvent -> Bool
$cmax :: PullRequestEvent -> PullRequestEvent -> PullRequestEvent
max :: PullRequestEvent -> PullRequestEvent -> PullRequestEvent
$cmin :: PullRequestEvent -> PullRequestEvent -> PullRequestEvent
min :: PullRequestEvent -> PullRequestEvent -> PullRequestEvent
Ord, (forall x. PullRequestEvent -> Rep PullRequestEvent x)
-> (forall x. Rep PullRequestEvent x -> PullRequestEvent)
-> Generic PullRequestEvent
forall x. Rep PullRequestEvent x -> PullRequestEvent
forall x. PullRequestEvent -> Rep PullRequestEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequestEvent -> Rep PullRequestEvent x
from :: forall x. PullRequestEvent -> Rep PullRequestEvent x
$cto :: forall x. Rep PullRequestEvent x -> PullRequestEvent
to :: forall x. Rep PullRequestEvent x -> PullRequestEvent
Generic)

instance NFData PullRequestEvent where rnf :: PullRequestEvent -> ()
rnf = PullRequestEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequestEvent

data PullRequestEventType
    = PullRequestOpened
    | PullRequestClosed
    | PullRequestSynchronized
    | PullRequestReopened
    | PullRequestAssigned
    | PullRequestUnassigned
    | PullRequestLabeled
    | PullRequestUnlabeled
    | PullRequestReviewRequested
    | PullRequestReviewRequestRemoved
    | PullRequestEdited
    deriving (Int -> PullRequestEventType -> ShowS
[PullRequestEventType] -> ShowS
PullRequestEventType -> String
(Int -> PullRequestEventType -> ShowS)
-> (PullRequestEventType -> String)
-> ([PullRequestEventType] -> ShowS)
-> Show PullRequestEventType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequestEventType -> ShowS
showsPrec :: Int -> PullRequestEventType -> ShowS
$cshow :: PullRequestEventType -> String
show :: PullRequestEventType -> String
$cshowList :: [PullRequestEventType] -> ShowS
showList :: [PullRequestEventType] -> ShowS
Show, Typeable PullRequestEventType
Typeable PullRequestEventType =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g)
 -> PullRequestEventType
 -> c PullRequestEventType)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestEventType)
-> (PullRequestEventType -> Constr)
-> (PullRequestEventType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestEventType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestEventType))
-> ((forall b. Data b => b -> b)
    -> PullRequestEventType -> PullRequestEventType)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestEventType -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestEventType -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventType -> m PullRequestEventType)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventType -> m PullRequestEventType)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventType -> m PullRequestEventType)
-> Data PullRequestEventType
PullRequestEventType -> Constr
PullRequestEventType -> DataType
(forall b. Data b => b -> b)
-> PullRequestEventType -> PullRequestEventType
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEventType -> u
forall u.
(forall d. Data d => d -> u) -> PullRequestEventType -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventType
-> c PullRequestEventType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEventType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventType)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventType
-> c PullRequestEventType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventType
-> c PullRequestEventType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventType
$ctoConstr :: PullRequestEventType -> Constr
toConstr :: PullRequestEventType -> Constr
$cdataTypeOf :: PullRequestEventType -> DataType
dataTypeOf :: PullRequestEventType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEventType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEventType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventType)
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestEventType -> PullRequestEventType
gmapT :: (forall b. Data b => b -> b)
-> PullRequestEventType -> PullRequestEventType
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEventType -> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestEventType -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestEventType -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEventType -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEventType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventType -> m PullRequestEventType
Data, Typeable, PullRequestEventType -> PullRequestEventType -> Bool
(PullRequestEventType -> PullRequestEventType -> Bool)
-> (PullRequestEventType -> PullRequestEventType -> Bool)
-> Eq PullRequestEventType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequestEventType -> PullRequestEventType -> Bool
== :: PullRequestEventType -> PullRequestEventType -> Bool
$c/= :: PullRequestEventType -> PullRequestEventType -> Bool
/= :: PullRequestEventType -> PullRequestEventType -> Bool
Eq, Eq PullRequestEventType
Eq PullRequestEventType =>
(PullRequestEventType -> PullRequestEventType -> Ordering)
-> (PullRequestEventType -> PullRequestEventType -> Bool)
-> (PullRequestEventType -> PullRequestEventType -> Bool)
-> (PullRequestEventType -> PullRequestEventType -> Bool)
-> (PullRequestEventType -> PullRequestEventType -> Bool)
-> (PullRequestEventType
    -> PullRequestEventType -> PullRequestEventType)
-> (PullRequestEventType
    -> PullRequestEventType -> PullRequestEventType)
-> Ord PullRequestEventType
PullRequestEventType -> PullRequestEventType -> Bool
PullRequestEventType -> PullRequestEventType -> Ordering
PullRequestEventType
-> PullRequestEventType -> PullRequestEventType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequestEventType -> PullRequestEventType -> Ordering
compare :: PullRequestEventType -> PullRequestEventType -> Ordering
$c< :: PullRequestEventType -> PullRequestEventType -> Bool
< :: PullRequestEventType -> PullRequestEventType -> Bool
$c<= :: PullRequestEventType -> PullRequestEventType -> Bool
<= :: PullRequestEventType -> PullRequestEventType -> Bool
$c> :: PullRequestEventType -> PullRequestEventType -> Bool
> :: PullRequestEventType -> PullRequestEventType -> Bool
$c>= :: PullRequestEventType -> PullRequestEventType -> Bool
>= :: PullRequestEventType -> PullRequestEventType -> Bool
$cmax :: PullRequestEventType
-> PullRequestEventType -> PullRequestEventType
max :: PullRequestEventType
-> PullRequestEventType -> PullRequestEventType
$cmin :: PullRequestEventType
-> PullRequestEventType -> PullRequestEventType
min :: PullRequestEventType
-> PullRequestEventType -> PullRequestEventType
Ord, (forall x. PullRequestEventType -> Rep PullRequestEventType x)
-> (forall x. Rep PullRequestEventType x -> PullRequestEventType)
-> Generic PullRequestEventType
forall x. Rep PullRequestEventType x -> PullRequestEventType
forall x. PullRequestEventType -> Rep PullRequestEventType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequestEventType -> Rep PullRequestEventType x
from :: forall x. PullRequestEventType -> Rep PullRequestEventType x
$cto :: forall x. Rep PullRequestEventType x -> PullRequestEventType
to :: forall x. Rep PullRequestEventType x -> PullRequestEventType
Generic)

instance NFData PullRequestEventType where rnf :: PullRequestEventType -> ()
rnf = PullRequestEventType -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequestEventType

data PullRequestReference = PullRequestReference
    { PullRequestReference -> Maybe URL
pullRequestReferenceHtmlUrl  :: !(Maybe URL)
    , PullRequestReference -> Maybe URL
pullRequestReferencePatchUrl :: !(Maybe URL)
    , PullRequestReference -> Maybe URL
pullRequestReferenceDiffUrl  :: !(Maybe URL)
    }
    deriving (PullRequestReference -> PullRequestReference -> Bool
(PullRequestReference -> PullRequestReference -> Bool)
-> (PullRequestReference -> PullRequestReference -> Bool)
-> Eq PullRequestReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PullRequestReference -> PullRequestReference -> Bool
== :: PullRequestReference -> PullRequestReference -> Bool
$c/= :: PullRequestReference -> PullRequestReference -> Bool
/= :: PullRequestReference -> PullRequestReference -> Bool
Eq, Eq PullRequestReference
Eq PullRequestReference =>
(PullRequestReference -> PullRequestReference -> Ordering)
-> (PullRequestReference -> PullRequestReference -> Bool)
-> (PullRequestReference -> PullRequestReference -> Bool)
-> (PullRequestReference -> PullRequestReference -> Bool)
-> (PullRequestReference -> PullRequestReference -> Bool)
-> (PullRequestReference
    -> PullRequestReference -> PullRequestReference)
-> (PullRequestReference
    -> PullRequestReference -> PullRequestReference)
-> Ord PullRequestReference
PullRequestReference -> PullRequestReference -> Bool
PullRequestReference -> PullRequestReference -> Ordering
PullRequestReference
-> PullRequestReference -> PullRequestReference
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PullRequestReference -> PullRequestReference -> Ordering
compare :: PullRequestReference -> PullRequestReference -> Ordering
$c< :: PullRequestReference -> PullRequestReference -> Bool
< :: PullRequestReference -> PullRequestReference -> Bool
$c<= :: PullRequestReference -> PullRequestReference -> Bool
<= :: PullRequestReference -> PullRequestReference -> Bool
$c> :: PullRequestReference -> PullRequestReference -> Bool
> :: PullRequestReference -> PullRequestReference -> Bool
$c>= :: PullRequestReference -> PullRequestReference -> Bool
>= :: PullRequestReference -> PullRequestReference -> Bool
$cmax :: PullRequestReference
-> PullRequestReference -> PullRequestReference
max :: PullRequestReference
-> PullRequestReference -> PullRequestReference
$cmin :: PullRequestReference
-> PullRequestReference -> PullRequestReference
min :: PullRequestReference
-> PullRequestReference -> PullRequestReference
Ord, Int -> PullRequestReference -> ShowS
[PullRequestReference] -> ShowS
PullRequestReference -> String
(Int -> PullRequestReference -> ShowS)
-> (PullRequestReference -> String)
-> ([PullRequestReference] -> ShowS)
-> Show PullRequestReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PullRequestReference -> ShowS
showsPrec :: Int -> PullRequestReference -> ShowS
$cshow :: PullRequestReference -> String
show :: PullRequestReference -> String
$cshowList :: [PullRequestReference] -> ShowS
showList :: [PullRequestReference] -> ShowS
Show, (forall x. PullRequestReference -> Rep PullRequestReference x)
-> (forall x. Rep PullRequestReference x -> PullRequestReference)
-> Generic PullRequestReference
forall x. Rep PullRequestReference x -> PullRequestReference
forall x. PullRequestReference -> Rep PullRequestReference x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PullRequestReference -> Rep PullRequestReference x
from :: forall x. PullRequestReference -> Rep PullRequestReference x
$cto :: forall x. Rep PullRequestReference x -> PullRequestReference
to :: forall x. Rep PullRequestReference x -> PullRequestReference
Generic, Typeable, Typeable PullRequestReference
Typeable PullRequestReference =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g)
 -> PullRequestReference
 -> c PullRequestReference)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestReference)
-> (PullRequestReference -> Constr)
-> (PullRequestReference -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestReference))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestReference))
-> ((forall b. Data b => b -> b)
    -> PullRequestReference -> PullRequestReference)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestReference -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestReference -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReference -> m PullRequestReference)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReference -> m PullRequestReference)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReference -> m PullRequestReference)
-> Data PullRequestReference
PullRequestReference -> Constr
PullRequestReference -> DataType
(forall b. Data b => b -> b)
-> PullRequestReference -> PullRequestReference
forall a.
Typeable a =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestReference -> u
forall u.
(forall d. Data d => d -> u) -> PullRequestReference -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReference
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReference
-> c PullRequestReference
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestReference)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReference)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReference
-> c PullRequestReference
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReference
-> c PullRequestReference
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReference
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReference
$ctoConstr :: PullRequestReference -> Constr
toConstr :: PullRequestReference -> Constr
$cdataTypeOf :: PullRequestReference -> DataType
dataTypeOf :: PullRequestReference -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestReference)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestReference)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReference)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReference)
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestReference -> PullRequestReference
gmapT :: (forall b. Data b => b -> b)
-> PullRequestReference -> PullRequestReference
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestReference -> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestReference -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestReference -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestReference -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestReference -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReference -> m PullRequestReference
Data)

instance NFData PullRequestReference where rnf :: PullRequestReference -> ()
rnf = PullRequestReference -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf
instance Binary PullRequestReference


-------------------------------------------------------------------------------
-- JSON instances
-------------------------------------------------------------------------------

instance FromJSON SimplePullRequest where
    parseJSON :: Value -> Parser SimplePullRequest
parseJSON = String
-> (Object -> Parser SimplePullRequest)
-> Value
-> Parser SimplePullRequest
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SimplePullRequest" ((Object -> Parser SimplePullRequest)
 -> Value -> Parser SimplePullRequest)
-> (Object -> Parser SimplePullRequest)
-> Value
-> Parser SimplePullRequest
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe UTCTime
-> UTCTime
-> SimpleUser
-> URL
-> IssueState
-> IssueNumber
-> URL
-> UTCTime
-> Maybe Text
-> Vector SimpleUser
-> Vector SimpleUser
-> Vector SimpleTeam
-> URL
-> URL
-> URL
-> PullRequestLinks
-> Maybe UTCTime
-> Text
-> Id PullRequest
-> SimplePullRequest
SimplePullRequest
        (Maybe UTCTime
 -> UTCTime
 -> SimpleUser
 -> URL
 -> IssueState
 -> IssueNumber
 -> URL
 -> UTCTime
 -> Maybe Text
 -> Vector SimpleUser
 -> Vector SimpleUser
 -> Vector SimpleTeam
 -> URL
 -> URL
 -> URL
 -> PullRequestLinks
 -> Maybe UTCTime
 -> Text
 -> Id PullRequest
 -> SimplePullRequest)
-> Parser (Maybe UTCTime)
-> Parser
     (UTCTime
      -> SimpleUser
      -> URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"closed_at"
        Parser
  (UTCTime
   -> SimpleUser
   -> URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser UTCTime
-> Parser
     (SimpleUser
      -> URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created_at"
        Parser
  (SimpleUser
   -> URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser SimpleUser
-> Parser
     (URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser SimpleUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"user"
        Parser
  (URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser URL
-> Parser
     (IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"patch_url"
        Parser
  (IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser IssueState
-> Parser
     (IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser IssueState
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"state"
        Parser
  (IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser IssueNumber
-> Parser
     (URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser IssueNumber
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"number"
        Parser
  (URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser URL
-> Parser
     (UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"html_url"
        Parser
  (UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser UTCTime
-> Parser
     (Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updated_at"
        Parser
  (Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser (Maybe Text)
-> Parser
     (Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"body"
        Parser
  (Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser (Vector SimpleUser)
-> Parser
     (Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Vector SimpleUser)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"assignees"
        Parser
  (Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser (Vector SimpleUser)
-> Parser
     (Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector SimpleUser))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"requested_reviewers" Parser (Maybe (Vector SimpleUser))
-> Vector SimpleUser -> Parser (Vector SimpleUser)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Vector SimpleUser
forall a. Monoid a => a
mempty
        Parser
  (Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser (Vector SimpleTeam)
-> Parser
     (URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector SimpleTeam))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"requested_teams" Parser (Maybe (Vector SimpleTeam))
-> Vector SimpleTeam -> Parser (Vector SimpleTeam)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Vector SimpleTeam
forall a. Monoid a => a
mempty
        Parser
  (URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser URL
-> Parser
     (URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"issue_url"
        Parser
  (URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser URL
-> Parser
     (URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"diff_url"
        Parser
  (URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> SimplePullRequest)
-> Parser URL
-> Parser
     (PullRequestLinks
      -> Maybe UTCTime -> Text -> Id PullRequest -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"url"
        Parser
  (PullRequestLinks
   -> Maybe UTCTime -> Text -> Id PullRequest -> SimplePullRequest)
-> Parser PullRequestLinks
-> Parser
     (Maybe UTCTime -> Text -> Id PullRequest -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser PullRequestLinks
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"_links"
        Parser
  (Maybe UTCTime -> Text -> Id PullRequest -> SimplePullRequest)
-> Parser (Maybe UTCTime)
-> Parser (Text -> Id PullRequest -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"merged_at"
        Parser (Text -> Id PullRequest -> SimplePullRequest)
-> Parser Text -> Parser (Id PullRequest -> SimplePullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"title"
        Parser (Id PullRequest -> SimplePullRequest)
-> Parser (Id PullRequest) -> Parser SimplePullRequest
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Id PullRequest)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"

instance ToJSON EditPullRequest where
    toJSON :: EditPullRequest -> Value
toJSON (EditPullRequest Maybe Text
t Maybe Text
b Maybe IssueState
s Maybe Text
base Maybe Bool
mcm) =
        [Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ (Pair -> Bool) -> [Pair] -> [Pair]
forall a. (a -> Bool) -> [a] -> [a]
filter Pair -> Bool
forall {a}. (a, Value) -> Bool
notNull
            [ Key
"title" Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Maybe Text
t
            , Key
"body"  Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Maybe Text
b
            , Key
"state" Key -> Maybe IssueState -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Maybe IssueState
s
            , Key
"base"  Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Maybe Text
base
            , Key
"maintainer_can_modify"
                      Key -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Maybe Bool
mcm
            ]
      where
        notNull :: (a, Value) -> Bool
notNull (a
_, Value
Null) = Bool
False
        notNull (a
_, Value
_) = Bool
True

instance ToJSON CreatePullRequest where
    toJSON :: CreatePullRequest -> Value
toJSON (CreatePullRequest Text
t Text
b Text
headPR Text
basePR) =
        [Pair] -> Value
object [ Key
"title" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
t, Key
"body" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
b, Key
"head" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
headPR, Key
"base" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
basePR ]
    toJSON (CreatePullRequestIssue Int
issueNum Text
headPR Text
basePR) =
        [Pair] -> Value
object [ Key
"issue" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Int
issueNum, Key
"head" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
headPR, Key
"base" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
.= Text
basePR]

instance FromJSON PullRequest where
    parseJSON :: Value -> Parser PullRequest
parseJSON = String
-> (Object -> Parser PullRequest) -> Value -> Parser PullRequest
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequest" ((Object -> Parser PullRequest) -> Value -> Parser PullRequest)
-> (Object -> Parser PullRequest) -> Value -> Parser PullRequest
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe UTCTime
-> UTCTime
-> SimpleUser
-> URL
-> IssueState
-> IssueNumber
-> URL
-> UTCTime
-> Maybe Text
-> Vector SimpleUser
-> Vector SimpleUser
-> Vector SimpleTeam
-> URL
-> URL
-> URL
-> PullRequestLinks
-> Maybe UTCTime
-> Text
-> Id PullRequest
-> Maybe SimpleUser
-> Int
-> PullRequestCommit
-> Int
-> Int
-> Int
-> Int
-> PullRequestCommit
-> Int
-> Bool
-> Maybe Bool
-> MergeableState
-> PullRequest
PullRequest
        (Maybe UTCTime
 -> UTCTime
 -> SimpleUser
 -> URL
 -> IssueState
 -> IssueNumber
 -> URL
 -> UTCTime
 -> Maybe Text
 -> Vector SimpleUser
 -> Vector SimpleUser
 -> Vector SimpleTeam
 -> URL
 -> URL
 -> URL
 -> PullRequestLinks
 -> Maybe UTCTime
 -> Text
 -> Id PullRequest
 -> Maybe SimpleUser
 -> Int
 -> PullRequestCommit
 -> Int
 -> Int
 -> Int
 -> Int
 -> PullRequestCommit
 -> Int
 -> Bool
 -> Maybe Bool
 -> MergeableState
 -> PullRequest)
-> Parser (Maybe UTCTime)
-> Parser
     (UTCTime
      -> SimpleUser
      -> URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"closed_at"
        Parser
  (UTCTime
   -> SimpleUser
   -> URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser UTCTime
-> Parser
     (SimpleUser
      -> URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created_at"
        Parser
  (SimpleUser
   -> URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser SimpleUser
-> Parser
     (URL
      -> IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser SimpleUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"user"
        Parser
  (URL
   -> IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser URL
-> Parser
     (IssueState
      -> IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"patch_url"
        Parser
  (IssueState
   -> IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser IssueState
-> Parser
     (IssueNumber
      -> URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser IssueState
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"state"
        Parser
  (IssueNumber
   -> URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser IssueNumber
-> Parser
     (URL
      -> UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser IssueNumber
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"number"
        Parser
  (URL
   -> UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser URL
-> Parser
     (UTCTime
      -> Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"html_url"
        Parser
  (UTCTime
   -> Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser UTCTime
-> Parser
     (Maybe Text
      -> Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updated_at"
        Parser
  (Maybe Text
   -> Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Maybe Text)
-> Parser
     (Vector SimpleUser
      -> Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"body"
        Parser
  (Vector SimpleUser
   -> Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Vector SimpleUser)
-> Parser
     (Vector SimpleUser
      -> Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Vector SimpleUser)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"assignees"
        Parser
  (Vector SimpleUser
   -> Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Vector SimpleUser)
-> Parser
     (Vector SimpleTeam
      -> URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector SimpleUser))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"requested_reviewers" Parser (Maybe (Vector SimpleUser))
-> Vector SimpleUser -> Parser (Vector SimpleUser)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Vector SimpleUser
forall a. Monoid a => a
mempty
        Parser
  (Vector SimpleTeam
   -> URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Vector SimpleTeam)
-> Parser
     (URL
      -> URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector SimpleTeam))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"requested_teams" Parser (Maybe (Vector SimpleTeam))
-> Vector SimpleTeam -> Parser (Vector SimpleTeam)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Vector SimpleTeam
forall a. Monoid a => a
mempty
        Parser
  (URL
   -> URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser URL
-> Parser
     (URL
      -> URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"issue_url"
        Parser
  (URL
   -> URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser URL
-> Parser
     (URL
      -> PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"diff_url"
        Parser
  (URL
   -> PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser URL
-> Parser
     (PullRequestLinks
      -> Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"url"
        Parser
  (PullRequestLinks
   -> Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser PullRequestLinks
-> Parser
     (Maybe UTCTime
      -> Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser PullRequestLinks
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"_links"
        Parser
  (Maybe UTCTime
   -> Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Maybe UTCTime)
-> Parser
     (Text
      -> Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"merged_at"
        Parser
  (Text
   -> Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Text
-> Parser
     (Id PullRequest
      -> Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"title"
        Parser
  (Id PullRequest
   -> Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Id PullRequest)
-> Parser
     (Maybe SimpleUser
      -> Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Id PullRequest)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
        Parser
  (Maybe SimpleUser
   -> Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser (Maybe SimpleUser)
-> Parser
     (Int
      -> PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe SimpleUser)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"merged_by"
        Parser
  (Int
   -> PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Int
-> Parser
     (PullRequestCommit
      -> Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"changed_files"
        Parser
  (PullRequestCommit
   -> Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser PullRequestCommit
-> Parser
     (Int
      -> Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser PullRequestCommit
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"head"
        Parser
  (Int
   -> Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Int
-> Parser
     (Int
      -> Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"comments"
        Parser
  (Int
   -> Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Int
-> Parser
     (Int
      -> Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deletions"
        Parser
  (Int
   -> Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Int
-> Parser
     (Int
      -> PullRequestCommit
      -> Int
      -> Bool
      -> Maybe Bool
      -> MergeableState
      -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"additions"
        Parser
  (Int
   -> PullRequestCommit
   -> Int
   -> Bool
   -> Maybe Bool
   -> MergeableState
   -> PullRequest)
-> Parser Int
-> Parser
     (PullRequestCommit
      -> Int -> Bool -> Maybe Bool -> MergeableState -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"review_comments"
        Parser
  (PullRequestCommit
   -> Int -> Bool -> Maybe Bool -> MergeableState -> PullRequest)
-> Parser PullRequestCommit
-> Parser
     (Int -> Bool -> Maybe Bool -> MergeableState -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser PullRequestCommit
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"base"
        Parser (Int -> Bool -> Maybe Bool -> MergeableState -> PullRequest)
-> Parser Int
-> Parser (Bool -> Maybe Bool -> MergeableState -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"commits"
        Parser (Bool -> Maybe Bool -> MergeableState -> PullRequest)
-> Parser Bool
-> Parser (Maybe Bool -> MergeableState -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"merged"
        Parser (Maybe Bool -> MergeableState -> PullRequest)
-> Parser (Maybe Bool) -> Parser (MergeableState -> PullRequest)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"mergeable"
        Parser (MergeableState -> PullRequest)
-> Parser MergeableState -> Parser PullRequest
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser MergeableState
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"mergeable_state"

instance FromJSON PullRequestLinks where
    parseJSON :: Value -> Parser PullRequestLinks
parseJSON = String
-> (Object -> Parser PullRequestLinks)
-> Value
-> Parser PullRequestLinks
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestLinks" ((Object -> Parser PullRequestLinks)
 -> Value -> Parser PullRequestLinks)
-> (Object -> Parser PullRequestLinks)
-> Value
-> Parser PullRequestLinks
forall a b. (a -> b) -> a -> b
$ \Object
o -> URL -> URL -> URL -> URL -> PullRequestLinks
PullRequestLinks
        (URL -> URL -> URL -> URL -> PullRequestLinks)
-> Parser URL -> Parser (URL -> URL -> URL -> PullRequestLinks)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Href URL -> URL) -> Parser (Href URL) -> Parser URL
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Href URL -> URL
forall a. Href a -> a
getHref (Object
o Object -> Key -> Parser (Href URL)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"review_comments")
        Parser (URL -> URL -> URL -> PullRequestLinks)
-> Parser URL -> Parser (URL -> URL -> PullRequestLinks)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Href URL -> URL) -> Parser (Href URL) -> Parser URL
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Href URL -> URL
forall a. Href a -> a
getHref (Object
o Object -> Key -> Parser (Href URL)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"comments")
        Parser (URL -> URL -> PullRequestLinks)
-> Parser URL -> Parser (URL -> PullRequestLinks)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Href URL -> URL) -> Parser (Href URL) -> Parser URL
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Href URL -> URL
forall a. Href a -> a
getHref (Object
o Object -> Key -> Parser (Href URL)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"html")
        Parser (URL -> PullRequestLinks)
-> Parser URL -> Parser PullRequestLinks
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Href URL -> URL) -> Parser (Href URL) -> Parser URL
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Href URL -> URL
forall a. Href a -> a
getHref (Object
o Object -> Key -> Parser (Href URL)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"self")

instance FromJSON PullRequestCommit where
    parseJSON :: Value -> Parser PullRequestCommit
parseJSON = String
-> (Object -> Parser PullRequestCommit)
-> Value
-> Parser PullRequestCommit
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestCommit" ((Object -> Parser PullRequestCommit)
 -> Value -> Parser PullRequestCommit)
-> (Object -> Parser PullRequestCommit)
-> Value
-> Parser PullRequestCommit
forall a b. (a -> b) -> a -> b
$ \Object
o -> Text
-> Text -> Text -> SimpleUser -> Maybe Repo -> PullRequestCommit
PullRequestCommit
        (Text
 -> Text -> Text -> SimpleUser -> Maybe Repo -> PullRequestCommit)
-> Parser Text
-> Parser
     (Text -> Text -> SimpleUser -> Maybe Repo -> PullRequestCommit)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"label"
        Parser
  (Text -> Text -> SimpleUser -> Maybe Repo -> PullRequestCommit)
-> Parser Text
-> Parser (Text -> SimpleUser -> Maybe Repo -> PullRequestCommit)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref"
        Parser (Text -> SimpleUser -> Maybe Repo -> PullRequestCommit)
-> Parser Text
-> Parser (SimpleUser -> Maybe Repo -> PullRequestCommit)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sha"
        Parser (SimpleUser -> Maybe Repo -> PullRequestCommit)
-> Parser SimpleUser -> Parser (Maybe Repo -> PullRequestCommit)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser SimpleUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"user"
        Parser (Maybe Repo -> PullRequestCommit)
-> Parser (Maybe Repo) -> Parser PullRequestCommit
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Repo)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repo"

instance FromJSON PullRequestEvent where
    parseJSON :: Value -> Parser PullRequestEvent
parseJSON = String
-> (Object -> Parser PullRequestEvent)
-> Value
-> Parser PullRequestEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestEvent" ((Object -> Parser PullRequestEvent)
 -> Value -> Parser PullRequestEvent)
-> (Object -> Parser PullRequestEvent)
-> Value
-> Parser PullRequestEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> PullRequestEventType
-> Int -> PullRequest -> Repo -> SimpleUser -> PullRequestEvent
PullRequestEvent
        (PullRequestEventType
 -> Int -> PullRequest -> Repo -> SimpleUser -> PullRequestEvent)
-> Parser PullRequestEventType
-> Parser
     (Int -> PullRequest -> Repo -> SimpleUser -> PullRequestEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser PullRequestEventType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (Int -> PullRequest -> Repo -> SimpleUser -> PullRequestEvent)
-> Parser Int
-> Parser (PullRequest -> Repo -> SimpleUser -> PullRequestEvent)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"number"
        Parser (PullRequest -> Repo -> SimpleUser -> PullRequestEvent)
-> Parser PullRequest
-> Parser (Repo -> SimpleUser -> PullRequestEvent)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser PullRequest
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pull_request"
        Parser (Repo -> SimpleUser -> PullRequestEvent)
-> Parser Repo -> Parser (SimpleUser -> PullRequestEvent)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Repo
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (SimpleUser -> PullRequestEvent)
-> Parser SimpleUser -> Parser PullRequestEvent
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser SimpleUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PullRequestEventType where
    parseJSON :: Value -> Parser PullRequestEventType
parseJSON = String
-> (Text -> Parser PullRequestEventType)
-> Value
-> Parser PullRequestEventType
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"PullRequestEventType" ((Text -> Parser PullRequestEventType)
 -> Value -> Parser PullRequestEventType)
-> (Text -> Parser PullRequestEventType)
-> Value
-> Parser PullRequestEventType
forall a b. (a -> b) -> a -> b
$ \Text
t -> case Text -> Text
T.toLower Text
t of
        Text
"opened"                 -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestOpened
        Text
"closed"                 -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestClosed
        Text
"synchronize"            -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestSynchronized
        Text
"reopened"               -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestReopened
        Text
"assigned"               -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestAssigned
        Text
"unassigned"             -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestUnassigned
        Text
"labeled"                -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestLabeled
        Text
"unlabeled"              -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestUnlabeled
        Text
"review_requested"       -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestReviewRequested
        Text
"review_request_removed" -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestReviewRequestRemoved
        Text
"edited"                 -> PullRequestEventType -> Parser PullRequestEventType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventType
PullRequestEdited
        Text
_                        -> String -> Parser PullRequestEventType
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> Parser PullRequestEventType)
-> String -> Parser PullRequestEventType
forall a b. (a -> b) -> a -> b
$ String
"Unknown PullRequestEventType: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Text -> String
T.unpack Text
t

instance FromJSON PullRequestReference where
    parseJSON :: Value -> Parser PullRequestReference
parseJSON = String
-> (Object -> Parser PullRequestReference)
-> Value
-> Parser PullRequestReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestReference" ((Object -> Parser PullRequestReference)
 -> Value -> Parser PullRequestReference)
-> (Object -> Parser PullRequestReference)
-> Value
-> Parser PullRequestReference
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe URL -> Maybe URL -> Maybe URL -> PullRequestReference
PullRequestReference
        (Maybe URL -> Maybe URL -> Maybe URL -> PullRequestReference)
-> Parser (Maybe URL)
-> Parser (Maybe URL -> Maybe URL -> PullRequestReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe URL)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"html_url"
        Parser (Maybe URL -> Maybe URL -> PullRequestReference)
-> Parser (Maybe URL) -> Parser (Maybe URL -> PullRequestReference)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe URL)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"patch_url"
        Parser (Maybe URL -> PullRequestReference)
-> Parser (Maybe URL) -> Parser PullRequestReference
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe URL)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"diff_url"

-- Helpers

newtype Href a = Href { forall a. Href a -> a
getHref :: a }

instance FromJSON a => FromJSON (Href a) where
    parseJSON :: Value -> Parser (Href a)
parseJSON = String -> (Object -> Parser (Href a)) -> Value -> Parser (Href a)
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"href object" ((Object -> Parser (Href a)) -> Value -> Parser (Href a))
-> (Object -> Parser (Href a)) -> Value -> Parser (Href a)
forall a b. (a -> b) -> a -> b
$
        \Object
obj -> a -> Href a
forall a. a -> Href a
Href (a -> Href a) -> Parser a -> Parser (Href a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj Object -> Key -> Parser a
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"href"

-- | Pull request merge results
data MergeResult
    = MergeSuccessful
    | MergeCannotPerform
    | MergeConflict
  deriving (MergeResult -> MergeResult -> Bool
(MergeResult -> MergeResult -> Bool)
-> (MergeResult -> MergeResult -> Bool) -> Eq MergeResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MergeResult -> MergeResult -> Bool
== :: MergeResult -> MergeResult -> Bool
$c/= :: MergeResult -> MergeResult -> Bool
/= :: MergeResult -> MergeResult -> Bool
Eq, Eq MergeResult
Eq MergeResult =>
(MergeResult -> MergeResult -> Ordering)
-> (MergeResult -> MergeResult -> Bool)
-> (MergeResult -> MergeResult -> Bool)
-> (MergeResult -> MergeResult -> Bool)
-> (MergeResult -> MergeResult -> Bool)
-> (MergeResult -> MergeResult -> MergeResult)
-> (MergeResult -> MergeResult -> MergeResult)
-> Ord MergeResult
MergeResult -> MergeResult -> Bool
MergeResult -> MergeResult -> Ordering
MergeResult -> MergeResult -> MergeResult
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: MergeResult -> MergeResult -> Ordering
compare :: MergeResult -> MergeResult -> Ordering
$c< :: MergeResult -> MergeResult -> Bool
< :: MergeResult -> MergeResult -> Bool
$c<= :: MergeResult -> MergeResult -> Bool
<= :: MergeResult -> MergeResult -> Bool
$c> :: MergeResult -> MergeResult -> Bool
> :: MergeResult -> MergeResult -> Bool
$c>= :: MergeResult -> MergeResult -> Bool
>= :: MergeResult -> MergeResult -> Bool
$cmax :: MergeResult -> MergeResult -> MergeResult
max :: MergeResult -> MergeResult -> MergeResult
$cmin :: MergeResult -> MergeResult -> MergeResult
min :: MergeResult -> MergeResult -> MergeResult
Ord, ReadPrec [MergeResult]
ReadPrec MergeResult
Int -> ReadS MergeResult
ReadS [MergeResult]
(Int -> ReadS MergeResult)
-> ReadS [MergeResult]
-> ReadPrec MergeResult
-> ReadPrec [MergeResult]
-> Read MergeResult
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS MergeResult
readsPrec :: Int -> ReadS MergeResult
$creadList :: ReadS [MergeResult]
readList :: ReadS [MergeResult]
$creadPrec :: ReadPrec MergeResult
readPrec :: ReadPrec MergeResult
$creadListPrec :: ReadPrec [MergeResult]
readListPrec :: ReadPrec [MergeResult]
Read, Int -> MergeResult -> ShowS
[MergeResult] -> ShowS
MergeResult -> String
(Int -> MergeResult -> ShowS)
-> (MergeResult -> String)
-> ([MergeResult] -> ShowS)
-> Show MergeResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MergeResult -> ShowS
showsPrec :: Int -> MergeResult -> ShowS
$cshow :: MergeResult -> String
show :: MergeResult -> String
$cshowList :: [MergeResult] -> ShowS
showList :: [MergeResult] -> ShowS
Show, Int -> MergeResult
MergeResult -> Int
MergeResult -> [MergeResult]
MergeResult -> MergeResult
MergeResult -> MergeResult -> [MergeResult]
MergeResult -> MergeResult -> MergeResult -> [MergeResult]
(MergeResult -> MergeResult)
-> (MergeResult -> MergeResult)
-> (Int -> MergeResult)
-> (MergeResult -> Int)
-> (MergeResult -> [MergeResult])
-> (MergeResult -> MergeResult -> [MergeResult])
-> (MergeResult -> MergeResult -> [MergeResult])
-> (MergeResult -> MergeResult -> MergeResult -> [MergeResult])
-> Enum MergeResult
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: MergeResult -> MergeResult
succ :: MergeResult -> MergeResult
$cpred :: MergeResult -> MergeResult
pred :: MergeResult -> MergeResult
$ctoEnum :: Int -> MergeResult
toEnum :: Int -> MergeResult
$cfromEnum :: MergeResult -> Int
fromEnum :: MergeResult -> Int
$cenumFrom :: MergeResult -> [MergeResult]
enumFrom :: MergeResult -> [MergeResult]
$cenumFromThen :: MergeResult -> MergeResult -> [MergeResult]
enumFromThen :: MergeResult -> MergeResult -> [MergeResult]
$cenumFromTo :: MergeResult -> MergeResult -> [MergeResult]
enumFromTo :: MergeResult -> MergeResult -> [MergeResult]
$cenumFromThenTo :: MergeResult -> MergeResult -> MergeResult -> [MergeResult]
enumFromThenTo :: MergeResult -> MergeResult -> MergeResult -> [MergeResult]
Enum, MergeResult
MergeResult -> MergeResult -> Bounded MergeResult
forall a. a -> a -> Bounded a
$cminBound :: MergeResult
minBound :: MergeResult
$cmaxBound :: MergeResult
maxBound :: MergeResult
Bounded, (forall x. MergeResult -> Rep MergeResult x)
-> (forall x. Rep MergeResult x -> MergeResult)
-> Generic MergeResult
forall x. Rep MergeResult x -> MergeResult
forall x. MergeResult -> Rep MergeResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MergeResult -> Rep MergeResult x
from :: forall x. MergeResult -> Rep MergeResult x
$cto :: forall x. Rep MergeResult x -> MergeResult
to :: forall x. Rep MergeResult x -> MergeResult
Generic, Typeable)