-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Access to the GitHub API, v3.
--   
--   The GitHub API provides programmatic access to the full GitHub Web
--   site, from Issues to Gists to repos down to the underlying git data
--   like references and trees. This library wraps all of that, exposing a
--   basic but Haskell-friendly set of functions and data structures.
--   
--   For supported endpoints see <a>GitHub</a> module.
--   
--   <pre>
--   import qualified GitHub as GH
--   
--   main :: IO ()
--   main = do
--       possibleUser &lt;- GH.executeRequest' $ GH.userInfoForR "phadej"
--       print possibleUser
--   </pre>
--   
--   For more of an overview please see the README:
--   <a>https://github.com/phadej/github/blob/master/README.md</a>
@package github
@version 0.23


-- | This module may change between minor releases. Do not rely on its
--   contents.
module GitHub.Internal.Prelude
data UTCTime
data HashMap k v
data Text
pack :: String -> Text
unpack :: Text -> String

-- | Boxed vectors, supporting efficient slicing.
data Vector a
class Binary t
class Typeable a => Data a
class Typeable (a :: k)
class Generic a
class Hashable a
hashWithSalt :: Hashable a => Int -> a -> Int
hash :: Hashable a => a -> Int
class IsString a
fromString :: IsString a => String -> a
class NFData a
rnf :: NFData a => a -> ()
genericRnf :: (Generic a, GNFData (Rep a)) => a -> ()
class Semigroup a
(<>) :: Semigroup a => a -> a -> a
sconcat :: Semigroup a => NonEmpty a -> a
stimes :: (Semigroup a, Integral b) => b -> a -> a
class FromJSON a
parseJSON :: FromJSON a => Value -> Parser a
parseJSONList :: FromJSON a => Value -> Parser [a]
class ToJSON a
toJSON :: ToJSON a => a -> Value
toEncoding :: ToJSON a => a -> Encoding
toJSONList :: ToJSON a => [a] -> Value
toEncodingList :: ToJSON a => [a] -> Encoding
data Value
Object :: !Object -> Value
Array :: !Array -> Value
String :: !Text -> Value
Number :: !Scientific -> Value
Bool :: !Bool -> Value
Null :: Value
type Object = HashMap Text Value
emptyObject :: Value
encode :: ToJSON a => a -> ByteString
withText :: String -> (Text -> Parser a) -> Value -> Parser a
withObject :: String -> (Object -> Parser a) -> Value -> Parser a
(.:) :: FromJSON a => Object -> Text -> Parser a
(.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a)
(.!=) :: Parser (Maybe a) -> a -> Parser a
(.=) :: (KeyValue kv, ToJSON v) => Text -> v -> kv
object :: [Pair] -> Value
typeMismatch :: String -> Value -> Parser a
(<|>) :: Alternative f => f a -> f a -> f a
catMaybes :: [Maybe a] -> [a]
intercalate :: [a] -> [[a]] -> [a]
toList :: Foldable t => t a -> [a]
formatISO8601 :: UTCTime -> String


-- | Verification of incomming webhook payloads, as described at
--   <a>https://developer.github.com/webhooks/securing/</a>
module GitHub.Data.Webhooks.Validate

-- | Validates a given payload against a given HMAC hexdigest using a given
--   secret. Returns <a>True</a> iff the given hash is non-empty and it's a
--   valid signature of the payload.
isValidPayload :: Text -> Maybe Text -> ByteString -> Bool


module GitHub.Data.URL

-- | Data representing URLs in responses.
--   
--   <i>N.B.</i> syntactical validity is not verified.
newtype URL
URL :: Text -> URL
getUrl :: URL -> Text
instance Data.Data.Data GitHub.Data.URL.URL
instance GHC.Generics.Generic GitHub.Data.URL.URL
instance GHC.Show.Show GitHub.Data.URL.URL
instance GHC.Classes.Ord GitHub.Data.URL.URL
instance GHC.Classes.Eq GitHub.Data.URL.URL
instance Control.DeepSeq.NFData GitHub.Data.URL.URL
instance Data.Binary.Class.Binary GitHub.Data.URL.URL
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.URL.URL
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.URL.URL


module GitHub.Data.RateLimit
data Limits
Limits :: !Int -> !Int -> !Int -> Limits
[limitsMax] :: Limits -> !Int
[limitsRemaining] :: Limits -> !Int
[limitsReset] :: Limits -> !Int
data RateLimit
RateLimit :: Limits -> Limits -> Limits -> RateLimit
[rateLimitCore] :: RateLimit -> Limits
[rateLimitSearch] :: RateLimit -> Limits
[rateLimitGraphQL] :: RateLimit -> Limits
instance GHC.Generics.Generic GitHub.Data.RateLimit.RateLimit
instance GHC.Classes.Ord GitHub.Data.RateLimit.RateLimit
instance GHC.Classes.Eq GitHub.Data.RateLimit.RateLimit
instance Data.Data.Data GitHub.Data.RateLimit.RateLimit
instance GHC.Show.Show GitHub.Data.RateLimit.RateLimit
instance GHC.Generics.Generic GitHub.Data.RateLimit.Limits
instance GHC.Classes.Ord GitHub.Data.RateLimit.Limits
instance GHC.Classes.Eq GitHub.Data.RateLimit.Limits
instance Data.Data.Data GitHub.Data.RateLimit.Limits
instance GHC.Show.Show GitHub.Data.RateLimit.Limits
instance Control.DeepSeq.NFData GitHub.Data.RateLimit.RateLimit
instance Data.Binary.Class.Binary GitHub.Data.RateLimit.RateLimit
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.RateLimit.RateLimit
instance Control.DeepSeq.NFData GitHub.Data.RateLimit.Limits
instance Data.Binary.Class.Binary GitHub.Data.RateLimit.Limits
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.RateLimit.Limits


module GitHub.Data.Name
newtype Name entity
N :: Text -> Name entity

-- | Smart constructor for <a>Name</a>
mkName :: proxy entity -> Text -> Name entity
untagName :: Name entity -> Text
instance Data.Data.Data entity => Data.Data.Data (GitHub.Data.Name.Name entity)
instance GHC.Generics.Generic (GitHub.Data.Name.Name entity)
instance GHC.Show.Show (GitHub.Data.Name.Name entity)
instance GHC.Classes.Ord (GitHub.Data.Name.Name entity)
instance GHC.Classes.Eq (GitHub.Data.Name.Name entity)
instance Data.Hashable.Class.Hashable (GitHub.Data.Name.Name entity)
instance Data.Binary.Class.Binary (GitHub.Data.Name.Name entity)
instance Control.DeepSeq.NFData (GitHub.Data.Name.Name entity)
instance Data.Aeson.Types.FromJSON.FromJSON (GitHub.Data.Name.Name entity)
instance Data.Aeson.Types.ToJSON.ToJSON (GitHub.Data.Name.Name entity)
instance Data.String.IsString (GitHub.Data.Name.Name entity)
instance Data.Aeson.Types.ToJSON.ToJSONKey (GitHub.Data.Name.Name entity)
instance Data.Aeson.Types.FromJSON.FromJSONKey (GitHub.Data.Name.Name entity)


module GitHub.Data.Id

-- | Numeric identifier.
newtype Id entity
Id :: Int -> Id entity

-- | Smart constructor for <a>Id</a>.
mkId :: proxy entity -> Int -> Id entity
untagId :: Id entity -> Int
instance Data.Data.Data entity => Data.Data.Data (GitHub.Data.Id.Id entity)
instance GHC.Generics.Generic (GitHub.Data.Id.Id entity)
instance GHC.Show.Show (GitHub.Data.Id.Id entity)
instance GHC.Classes.Ord (GitHub.Data.Id.Id entity)
instance GHC.Classes.Eq (GitHub.Data.Id.Id entity)
instance Data.Hashable.Class.Hashable (GitHub.Data.Id.Id entity)
instance Data.Binary.Class.Binary (GitHub.Data.Id.Id entity)
instance Control.DeepSeq.NFData (GitHub.Data.Id.Id entity)
instance Data.Aeson.Types.FromJSON.FromJSON (GitHub.Data.Id.Id entity)
instance Data.Aeson.Types.ToJSON.ToJSON (GitHub.Data.Id.Id entity)


module GitHub.Data.Webhooks
data RepoWebhook
RepoWebhook :: !URL -> !URL -> !Id RepoWebhook -> !Text -> !Bool -> !Vector RepoWebhookEvent -> !Map Text Text -> !RepoWebhookResponse -> !UTCTime -> !UTCTime -> RepoWebhook
[repoWebhookUrl] :: RepoWebhook -> !URL
[repoWebhookTestUrl] :: RepoWebhook -> !URL
[repoWebhookId] :: RepoWebhook -> !Id RepoWebhook
[repoWebhookName] :: RepoWebhook -> !Text
[repoWebhookActive] :: RepoWebhook -> !Bool
[repoWebhookEvents] :: RepoWebhook -> !Vector RepoWebhookEvent
[repoWebhookConfig] :: RepoWebhook -> !Map Text Text
[repoWebhookLastResponse] :: RepoWebhook -> !RepoWebhookResponse
[repoWebhookUpdatedAt] :: RepoWebhook -> !UTCTime
[repoWebhookCreatedAt] :: RepoWebhook -> !UTCTime

-- | See <a>https://developer.github.com/webhooks/#events</a>.
data RepoWebhookEvent
WebhookWildcardEvent :: RepoWebhookEvent
WebhookCheckRunEvent :: RepoWebhookEvent
WebhookCheckSuiteEvent :: RepoWebhookEvent
WebhookCommitCommentEvent :: RepoWebhookEvent
WebhookContentReferenceEvent :: RepoWebhookEvent
WebhookCreateEvent :: RepoWebhookEvent
WebhookDeleteEvent :: RepoWebhookEvent
WebhookDeployKeyEvent :: RepoWebhookEvent
WebhookDeploymentEvent :: RepoWebhookEvent
WebhookDeploymentStatusEvent :: RepoWebhookEvent
WebhookDownloadEvent :: RepoWebhookEvent
WebhookFollowEvent :: RepoWebhookEvent
WebhookForkEvent :: RepoWebhookEvent
WebhookForkApplyEvent :: RepoWebhookEvent
WebhookGitHubAppAuthorizationEvent :: RepoWebhookEvent
WebhookGistEvent :: RepoWebhookEvent
WebhookGollumEvent :: RepoWebhookEvent
WebhookInstallationEvent :: RepoWebhookEvent
WebhookInstallationRepositoriesEvent :: RepoWebhookEvent
WebhookIssueCommentEvent :: RepoWebhookEvent
WebhookIssuesEvent :: RepoWebhookEvent
WebhookLabelEvent :: RepoWebhookEvent
WebhookMarketplacePurchaseEvent :: RepoWebhookEvent
WebhookMemberEvent :: RepoWebhookEvent
WebhookMembershipEvent :: RepoWebhookEvent
WebhookMetaEvent :: RepoWebhookEvent
WebhookMilestoneEvent :: RepoWebhookEvent
WebhookOrganizationEvent :: RepoWebhookEvent
WebhookOrgBlockEvent :: RepoWebhookEvent
WebhookPageBuildEvent :: RepoWebhookEvent
WebhookPingEvent :: RepoWebhookEvent
WebhookProjectCardEvent :: RepoWebhookEvent
WebhookProjectColumnEvent :: RepoWebhookEvent
WebhookProjectEvent :: RepoWebhookEvent
WebhookPublicEvent :: RepoWebhookEvent
WebhookPullRequestEvent :: RepoWebhookEvent
WebhookPullRequestReviewEvent :: RepoWebhookEvent
WebhookPullRequestReviewCommentEvent :: RepoWebhookEvent
WebhookPushEvent :: RepoWebhookEvent
WebhookRegistryPackageEvent :: RepoWebhookEvent
WebhookReleaseEvent :: RepoWebhookEvent
WebhookRepositoryEvent :: RepoWebhookEvent
WebhookRepositoryImportEvent :: RepoWebhookEvent
WebhookRepositoryVulnerabilityAlertEvent :: RepoWebhookEvent
WebhookSecurityAdvisoryEvent :: RepoWebhookEvent
WebhookStarEvent :: RepoWebhookEvent
WebhookStatusEvent :: RepoWebhookEvent
WebhookTeamEvent :: RepoWebhookEvent
WebhookTeamAddEvent :: RepoWebhookEvent
WebhookWatchEvent :: RepoWebhookEvent
data RepoWebhookResponse
RepoWebhookResponse :: !Maybe Int -> !Text -> !Maybe Text -> RepoWebhookResponse
[repoWebhookResponseCode] :: RepoWebhookResponse -> !Maybe Int
[repoWebhookResponseStatus] :: RepoWebhookResponse -> !Text
[repoWebhookResponseMessage] :: RepoWebhookResponse -> !Maybe Text
data PingEvent
PingEvent :: !Text -> !RepoWebhook -> !Id RepoWebhook -> PingEvent
[pingEventZen] :: PingEvent -> !Text
[pingEventHook] :: PingEvent -> !RepoWebhook
[pingEventHookId] :: PingEvent -> !Id RepoWebhook
data NewRepoWebhook
NewRepoWebhook :: !Text -> !Map Text Text -> !Maybe (Vector RepoWebhookEvent) -> !Maybe Bool -> NewRepoWebhook
[newRepoWebhookName] :: NewRepoWebhook -> !Text
[newRepoWebhookConfig] :: NewRepoWebhook -> !Map Text Text
[newRepoWebhookEvents] :: NewRepoWebhook -> !Maybe (Vector RepoWebhookEvent)
[newRepoWebhookActive] :: NewRepoWebhook -> !Maybe Bool
data EditRepoWebhook
EditRepoWebhook :: !Maybe (Map Text Text) -> !Maybe (Vector RepoWebhookEvent) -> !Maybe (Vector RepoWebhookEvent) -> !Maybe (Vector RepoWebhookEvent) -> !Maybe Bool -> EditRepoWebhook
[editRepoWebhookConfig] :: EditRepoWebhook -> !Maybe (Map Text Text)
[editRepoWebhookEvents] :: EditRepoWebhook -> !Maybe (Vector RepoWebhookEvent)
[editRepoWebhookAddEvents] :: EditRepoWebhook -> !Maybe (Vector RepoWebhookEvent)
[editRepoWebhookRemoveEvents] :: EditRepoWebhook -> !Maybe (Vector RepoWebhookEvent)
[editRepoWebhookActive] :: EditRepoWebhook -> !Maybe Bool
instance GHC.Generics.Generic GitHub.Data.Webhooks.EditRepoWebhook
instance Data.Data.Data GitHub.Data.Webhooks.EditRepoWebhook
instance GHC.Show.Show GitHub.Data.Webhooks.EditRepoWebhook
instance GHC.Classes.Ord GitHub.Data.Webhooks.EditRepoWebhook
instance GHC.Classes.Eq GitHub.Data.Webhooks.EditRepoWebhook
instance GHC.Generics.Generic GitHub.Data.Webhooks.NewRepoWebhook
instance Data.Data.Data GitHub.Data.Webhooks.NewRepoWebhook
instance GHC.Show.Show GitHub.Data.Webhooks.NewRepoWebhook
instance GHC.Classes.Ord GitHub.Data.Webhooks.NewRepoWebhook
instance GHC.Classes.Eq GitHub.Data.Webhooks.NewRepoWebhook
instance GHC.Generics.Generic GitHub.Data.Webhooks.PingEvent
instance GHC.Classes.Ord GitHub.Data.Webhooks.PingEvent
instance GHC.Classes.Eq GitHub.Data.Webhooks.PingEvent
instance Data.Data.Data GitHub.Data.Webhooks.PingEvent
instance GHC.Show.Show GitHub.Data.Webhooks.PingEvent
instance GHC.Generics.Generic GitHub.Data.Webhooks.RepoWebhook
instance GHC.Classes.Ord GitHub.Data.Webhooks.RepoWebhook
instance GHC.Classes.Eq GitHub.Data.Webhooks.RepoWebhook
instance Data.Data.Data GitHub.Data.Webhooks.RepoWebhook
instance GHC.Show.Show GitHub.Data.Webhooks.RepoWebhook
instance GHC.Generics.Generic GitHub.Data.Webhooks.RepoWebhookResponse
instance GHC.Classes.Ord GitHub.Data.Webhooks.RepoWebhookResponse
instance GHC.Classes.Eq GitHub.Data.Webhooks.RepoWebhookResponse
instance Data.Data.Data GitHub.Data.Webhooks.RepoWebhookResponse
instance GHC.Show.Show GitHub.Data.Webhooks.RepoWebhookResponse
instance GHC.Generics.Generic GitHub.Data.Webhooks.RepoWebhookEvent
instance GHC.Classes.Ord GitHub.Data.Webhooks.RepoWebhookEvent
instance GHC.Classes.Eq GitHub.Data.Webhooks.RepoWebhookEvent
instance Data.Data.Data GitHub.Data.Webhooks.RepoWebhookEvent
instance GHC.Show.Show GitHub.Data.Webhooks.RepoWebhookEvent
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.EditRepoWebhook
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.EditRepoWebhook
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Webhooks.EditRepoWebhook
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.NewRepoWebhook
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.NewRepoWebhook
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Webhooks.NewRepoWebhook
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.PingEvent
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.PingEvent
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Webhooks.PingEvent
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.RepoWebhook
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.RepoWebhook
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Webhooks.RepoWebhook
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.RepoWebhookResponse
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.RepoWebhookResponse
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Webhooks.RepoWebhookResponse
instance Control.DeepSeq.NFData GitHub.Data.Webhooks.RepoWebhookEvent
instance Data.Binary.Class.Binary GitHub.Data.Webhooks.RepoWebhookEvent
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Webhooks.RepoWebhookEvent
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Webhooks.RepoWebhookEvent


module GitHub.Data.PublicSSHKeys
data PublicSSHKeyBasic
PublicSSHKeyBasic :: !Id PublicSSHKey -> !Text -> PublicSSHKeyBasic
[basicPublicSSHKeyId] :: PublicSSHKeyBasic -> !Id PublicSSHKey
[basicPublicSSHKeyKey] :: PublicSSHKeyBasic -> !Text
data PublicSSHKey
PublicSSHKey :: !Id PublicSSHKey -> !Text -> !URL -> !Text -> !Bool -> !Maybe UTCTime -> !Bool -> PublicSSHKey
[publicSSHKeyId] :: PublicSSHKey -> !Id PublicSSHKey
[publicSSHKeyKey] :: PublicSSHKey -> !Text
[publicSSHKeyUrl] :: PublicSSHKey -> !URL
[publicSSHKeyTitle] :: PublicSSHKey -> !Text
[publicSSHKeyVerified] :: PublicSSHKey -> !Bool
[publicSSHKeyCreatedAt] :: PublicSSHKey -> !Maybe UTCTime
[publicSSHKeyReadOnly] :: PublicSSHKey -> !Bool
data NewPublicSSHKey
NewPublicSSHKey :: !Text -> !Text -> NewPublicSSHKey
[newPublicSSHKeyKey] :: NewPublicSSHKey -> !Text
[newPublicSSHKeyTitle] :: NewPublicSSHKey -> !Text
instance GHC.Generics.Generic GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance GHC.Classes.Ord GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance GHC.Classes.Eq GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance Data.Data.Data GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance GHC.Show.Show GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance GHC.Generics.Generic GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance GHC.Classes.Ord GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance GHC.Classes.Eq GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance Data.Data.Data GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance GHC.Show.Show GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance GHC.Generics.Generic GitHub.Data.PublicSSHKeys.PublicSSHKey
instance GHC.Classes.Ord GitHub.Data.PublicSSHKeys.PublicSSHKey
instance GHC.Classes.Eq GitHub.Data.PublicSSHKeys.PublicSSHKey
instance Data.Data.Data GitHub.Data.PublicSSHKeys.PublicSSHKey
instance GHC.Show.Show GitHub.Data.PublicSSHKeys.PublicSSHKey
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PublicSSHKeys.NewPublicSSHKey
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PublicSSHKeys.PublicSSHKeyBasic
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PublicSSHKeys.PublicSSHKey


module GitHub.Data.Email
data EmailVisibility
EmailVisibilityPrivate :: EmailVisibility
EmailVisibilityPublic :: EmailVisibility
data Email
Email :: !Text -> !Bool -> !Bool -> !Maybe EmailVisibility -> Email
[emailAddress] :: Email -> !Text
[emailVerified] :: Email -> !Bool
[emailPrimary] :: Email -> !Bool
[emailVisibility] :: Email -> !Maybe EmailVisibility
instance GHC.Generics.Generic GitHub.Data.Email.Email
instance GHC.Classes.Ord GitHub.Data.Email.Email
instance GHC.Classes.Eq GitHub.Data.Email.Email
instance Data.Data.Data GitHub.Data.Email.Email
instance GHC.Show.Show GitHub.Data.Email.Email
instance GHC.Generics.Generic GitHub.Data.Email.EmailVisibility
instance GHC.Classes.Ord GitHub.Data.Email.EmailVisibility
instance GHC.Classes.Eq GitHub.Data.Email.EmailVisibility
instance GHC.Enum.Bounded GitHub.Data.Email.EmailVisibility
instance GHC.Enum.Enum GitHub.Data.Email.EmailVisibility
instance Data.Data.Data GitHub.Data.Email.EmailVisibility
instance GHC.Show.Show GitHub.Data.Email.EmailVisibility
instance Control.DeepSeq.NFData GitHub.Data.Email.Email
instance Data.Binary.Class.Binary GitHub.Data.Email.Email
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Email.Email
instance Control.DeepSeq.NFData GitHub.Data.Email.EmailVisibility
instance Data.Binary.Class.Binary GitHub.Data.Email.EmailVisibility
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Email.EmailVisibility


module GitHub.Data.DeployKeys
data RepoDeployKey
RepoDeployKey :: !Id RepoDeployKey -> !Text -> !URL -> !Text -> !Bool -> !UTCTime -> !Bool -> RepoDeployKey
[repoDeployKeyId] :: RepoDeployKey -> !Id RepoDeployKey
[repoDeployKeyKey] :: RepoDeployKey -> !Text
[repoDeployKeyUrl] :: RepoDeployKey -> !URL
[repoDeployKeyTitle] :: RepoDeployKey -> !Text
[repoDeployKeyVerified] :: RepoDeployKey -> !Bool
[repoDeployKeyCreatedAt] :: RepoDeployKey -> !UTCTime
[repoDeployKeyReadOnly] :: RepoDeployKey -> !Bool
data NewRepoDeployKey
NewRepoDeployKey :: !Text -> !Text -> !Bool -> NewRepoDeployKey
[newRepoDeployKeyKey] :: NewRepoDeployKey -> !Text
[newRepoDeployKeyTitle] :: NewRepoDeployKey -> !Text
[newRepoDeployKeyReadOnly] :: NewRepoDeployKey -> !Bool
instance GHC.Generics.Generic GitHub.Data.DeployKeys.NewRepoDeployKey
instance GHC.Classes.Ord GitHub.Data.DeployKeys.NewRepoDeployKey
instance GHC.Classes.Eq GitHub.Data.DeployKeys.NewRepoDeployKey
instance Data.Data.Data GitHub.Data.DeployKeys.NewRepoDeployKey
instance GHC.Show.Show GitHub.Data.DeployKeys.NewRepoDeployKey
instance GHC.Generics.Generic GitHub.Data.DeployKeys.RepoDeployKey
instance GHC.Classes.Ord GitHub.Data.DeployKeys.RepoDeployKey
instance GHC.Classes.Eq GitHub.Data.DeployKeys.RepoDeployKey
instance Data.Data.Data GitHub.Data.DeployKeys.RepoDeployKey
instance GHC.Show.Show GitHub.Data.DeployKeys.RepoDeployKey
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.DeployKeys.NewRepoDeployKey
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.DeployKeys.NewRepoDeployKey
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.DeployKeys.RepoDeployKey


module GitHub.Data.Definitions

-- | Errors have been tagged according to their source, so you can more
--   easily dispatch and handle them.
data Error

-- | A HTTP error occurred. The actual caught error is included.
HTTPError :: !HttpException -> Error

-- | An error in the parser itself.
ParseError :: !Text -> Error

-- | The JSON is malformed or unexpected.
JsonError :: !Text -> Error

-- | Incorrect input.
UserError :: !Text -> Error

-- | Type of the repository owners.
data OwnerType
OwnerUser :: OwnerType
OwnerOrganization :: OwnerType
OwnerBot :: OwnerType
data SimpleUser
SimpleUser :: !Id User -> !Name User -> !URL -> !URL -> SimpleUser
[simpleUserId] :: SimpleUser -> !Id User
[simpleUserLogin] :: SimpleUser -> !Name User
[simpleUserAvatarUrl] :: SimpleUser -> !URL
[simpleUserUrl] :: SimpleUser -> !URL
data SimpleOrganization
SimpleOrganization :: !Id Organization -> !Name Organization -> !URL -> !URL -> SimpleOrganization
[simpleOrganizationId] :: SimpleOrganization -> !Id Organization
[simpleOrganizationLogin] :: SimpleOrganization -> !Name Organization
[simpleOrganizationUrl] :: SimpleOrganization -> !URL
[simpleOrganizationAvatarUrl] :: SimpleOrganization -> !URL

-- | Sometimes we don't know the type of the owner, e.g. in <tt>Repo</tt>
data SimpleOwner
SimpleOwner :: !Id Owner -> !Name Owner -> !URL -> !URL -> !OwnerType -> SimpleOwner
[simpleOwnerId] :: SimpleOwner -> !Id Owner
[simpleOwnerLogin] :: SimpleOwner -> !Name Owner
[simpleOwnerUrl] :: SimpleOwner -> !URL
[simpleOwnerAvatarUrl] :: SimpleOwner -> !URL
[simpleOwnerType] :: SimpleOwner -> !OwnerType
data User
User :: !Id User -> !Name User -> !Maybe Text -> !OwnerType -> !UTCTime -> !Int -> !URL -> !Int -> !Int -> !Maybe Bool -> !Maybe Text -> !Maybe Text -> !Int -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !URL -> !URL -> User
[userId] :: User -> !Id User
[userLogin] :: User -> !Name User
[userName] :: User -> !Maybe Text

-- | Should always be <a>OwnerUser</a> or <a>OwnerBot</a>
[userType] :: User -> !OwnerType
[userCreatedAt] :: User -> !UTCTime
[userPublicGists] :: User -> !Int
[userAvatarUrl] :: User -> !URL
[userFollowers] :: User -> !Int
[userFollowing] :: User -> !Int
[userHireable] :: User -> !Maybe Bool
[userBlog] :: User -> !Maybe Text
[userBio] :: User -> !Maybe Text
[userPublicRepos] :: User -> !Int
[userLocation] :: User -> !Maybe Text
[userCompany] :: User -> !Maybe Text
[userEmail] :: User -> !Maybe Text
[userUrl] :: User -> !URL
[userHtmlUrl] :: User -> !URL
data Organization
Organization :: !Id Organization -> !Name Organization -> !Maybe Text -> !OwnerType -> !Maybe Text -> !Maybe Text -> !Int -> !Maybe Text -> !URL -> !Int -> !URL -> !Maybe Text -> !Int -> !Int -> !URL -> !UTCTime -> Organization
[organizationId] :: Organization -> !Id Organization
[organizationLogin] :: Organization -> !Name Organization
[organizationName] :: Organization -> !Maybe Text

-- | Should always be <a>OwnerOrganization</a>
[organizationType] :: Organization -> !OwnerType
[organizationBlog] :: Organization -> !Maybe Text
[organizationLocation] :: Organization -> !Maybe Text
[organizationFollowers] :: Organization -> !Int
[organizationCompany] :: Organization -> !Maybe Text
[organizationAvatarUrl] :: Organization -> !URL
[organizationPublicGists] :: Organization -> !Int
[organizationHtmlUrl] :: Organization -> !URL
[organizationEmail] :: Organization -> !Maybe Text
[organizationFollowing] :: Organization -> !Int
[organizationPublicRepos] :: Organization -> !Int
[organizationUrl] :: Organization -> !URL
[organizationCreatedAt] :: Organization -> !UTCTime

-- | In practic, you cam't have concrete values of <a>Owner</a>.
newtype Owner
Owner :: Either User Organization -> Owner
fromOwner :: Owner -> Either User Organization
parseUser :: Object -> Parser User
parseOrganization :: Object -> Parser Organization

-- | Filter members returned in the list.
data OrgMemberFilter

-- | Members without two-factor authentication enabled. Available for
--   organization owners.
OrgMemberFilter2faDisabled :: OrgMemberFilter

-- | All members the authenticated user can see.
OrgMemberFilterAll :: OrgMemberFilter

-- | Filter members returned by their role.
data OrgMemberRole

-- | All members of the organization, regardless of role.
OrgMemberRoleAll :: OrgMemberRole

-- | Organization owners.
OrgMemberRoleAdmin :: OrgMemberRole

-- | Non-owner organization members.
OrgMemberRoleMember :: OrgMemberRole

-- | Request query string
type QueryString = [(ByteString, Maybe ByteString)]

-- | Count of elements
type Count = Int
newtype IssueNumber
IssueNumber :: Int -> IssueNumber
unIssueNumber :: IssueNumber -> Int
data IssueLabel
IssueLabel :: !Text -> !URL -> !Name IssueLabel -> IssueLabel
[labelColor] :: IssueLabel -> !Text
[labelUrl] :: IssueLabel -> !URL
[labelName] :: IssueLabel -> !Name IssueLabel
instance GHC.Generics.Generic GitHub.Data.Definitions.IssueLabel
instance GHC.Classes.Ord GitHub.Data.Definitions.IssueLabel
instance GHC.Classes.Eq GitHub.Data.Definitions.IssueLabel
instance Data.Data.Data GitHub.Data.Definitions.IssueLabel
instance GHC.Show.Show GitHub.Data.Definitions.IssueLabel
instance Data.Data.Data GitHub.Data.Definitions.IssueNumber
instance GHC.Generics.Generic GitHub.Data.Definitions.IssueNumber
instance GHC.Show.Show GitHub.Data.Definitions.IssueNumber
instance GHC.Classes.Ord GitHub.Data.Definitions.IssueNumber
instance GHC.Classes.Eq GitHub.Data.Definitions.IssueNumber
instance GHC.Generics.Generic GitHub.Data.Definitions.OrgMemberRole
instance Data.Data.Data GitHub.Data.Definitions.OrgMemberRole
instance GHC.Enum.Bounded GitHub.Data.Definitions.OrgMemberRole
instance GHC.Enum.Enum GitHub.Data.Definitions.OrgMemberRole
instance GHC.Classes.Ord GitHub.Data.Definitions.OrgMemberRole
instance GHC.Classes.Eq GitHub.Data.Definitions.OrgMemberRole
instance GHC.Show.Show GitHub.Data.Definitions.OrgMemberRole
instance GHC.Generics.Generic GitHub.Data.Definitions.OrgMemberFilter
instance Data.Data.Data GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Enum.Bounded GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Enum.Enum GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Classes.Ord GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Classes.Eq GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Show.Show GitHub.Data.Definitions.OrgMemberFilter
instance GHC.Generics.Generic GitHub.Data.Definitions.SimpleOwner
instance GHC.Classes.Ord GitHub.Data.Definitions.SimpleOwner
instance GHC.Classes.Eq GitHub.Data.Definitions.SimpleOwner
instance Data.Data.Data GitHub.Data.Definitions.SimpleOwner
instance GHC.Show.Show GitHub.Data.Definitions.SimpleOwner
instance GHC.Generics.Generic GitHub.Data.Definitions.Owner
instance GHC.Classes.Ord GitHub.Data.Definitions.Owner
instance GHC.Classes.Eq GitHub.Data.Definitions.Owner
instance Data.Data.Data GitHub.Data.Definitions.Owner
instance GHC.Show.Show GitHub.Data.Definitions.Owner
instance GHC.Generics.Generic GitHub.Data.Definitions.SimpleOrganization
instance GHC.Classes.Ord GitHub.Data.Definitions.SimpleOrganization
instance GHC.Classes.Eq GitHub.Data.Definitions.SimpleOrganization
instance Data.Data.Data GitHub.Data.Definitions.SimpleOrganization
instance GHC.Show.Show GitHub.Data.Definitions.SimpleOrganization
instance GHC.Generics.Generic GitHub.Data.Definitions.Organization
instance GHC.Classes.Ord GitHub.Data.Definitions.Organization
instance GHC.Classes.Eq GitHub.Data.Definitions.Organization
instance Data.Data.Data GitHub.Data.Definitions.Organization
instance GHC.Show.Show GitHub.Data.Definitions.Organization
instance GHC.Generics.Generic GitHub.Data.Definitions.SimpleUser
instance GHC.Classes.Ord GitHub.Data.Definitions.SimpleUser
instance GHC.Classes.Eq GitHub.Data.Definitions.SimpleUser
instance Data.Data.Data GitHub.Data.Definitions.SimpleUser
instance GHC.Show.Show GitHub.Data.Definitions.SimpleUser
instance GHC.Generics.Generic GitHub.Data.Definitions.User
instance GHC.Classes.Ord GitHub.Data.Definitions.User
instance GHC.Classes.Eq GitHub.Data.Definitions.User
instance Data.Data.Data GitHub.Data.Definitions.User
instance GHC.Show.Show GitHub.Data.Definitions.User
instance Data.Data.Data GitHub.Data.Definitions.OwnerType
instance GHC.Generics.Generic GitHub.Data.Definitions.OwnerType
instance GHC.Read.Read GitHub.Data.Definitions.OwnerType
instance GHC.Show.Show GitHub.Data.Definitions.OwnerType
instance GHC.Enum.Bounded GitHub.Data.Definitions.OwnerType
instance GHC.Enum.Enum GitHub.Data.Definitions.OwnerType
instance GHC.Classes.Ord GitHub.Data.Definitions.OwnerType
instance GHC.Classes.Eq GitHub.Data.Definitions.OwnerType
instance GHC.Show.Show GitHub.Data.Definitions.Error
instance Control.DeepSeq.NFData GitHub.Data.Definitions.IssueLabel
instance Data.Binary.Class.Binary GitHub.Data.Definitions.IssueLabel
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.IssueLabel
instance Data.Hashable.Class.Hashable GitHub.Data.Definitions.IssueNumber
instance Data.Binary.Class.Binary GitHub.Data.Definitions.IssueNumber
instance Control.DeepSeq.NFData GitHub.Data.Definitions.IssueNumber
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.IssueNumber
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Definitions.IssueNumber
instance Control.DeepSeq.NFData GitHub.Data.Definitions.SimpleOwner
instance Data.Binary.Class.Binary GitHub.Data.Definitions.SimpleOwner
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.SimpleOwner
instance Control.DeepSeq.NFData GitHub.Data.Definitions.Owner
instance Data.Binary.Class.Binary GitHub.Data.Definitions.Owner
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.Owner
instance Control.DeepSeq.NFData GitHub.Data.Definitions.SimpleOrganization
instance Data.Binary.Class.Binary GitHub.Data.Definitions.SimpleOrganization
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.SimpleOrganization
instance Control.DeepSeq.NFData GitHub.Data.Definitions.Organization
instance Data.Binary.Class.Binary GitHub.Data.Definitions.Organization
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.Organization
instance Control.DeepSeq.NFData GitHub.Data.Definitions.SimpleUser
instance Data.Binary.Class.Binary GitHub.Data.Definitions.SimpleUser
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.SimpleUser
instance Control.DeepSeq.NFData GitHub.Data.Definitions.User
instance Data.Binary.Class.Binary GitHub.Data.Definitions.User
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.User
instance Control.DeepSeq.NFData GitHub.Data.Definitions.OwnerType
instance Data.Binary.Class.Binary GitHub.Data.Definitions.OwnerType
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Definitions.OwnerType
instance GHC.Exception.Type.Exception GitHub.Data.Definitions.Error

module GitHub.Data.Reviews
data ReviewState
ReviewStatePending :: ReviewState
ReviewStateApproved :: ReviewState
ReviewStateDismissed :: ReviewState
ReviewStateCommented :: ReviewState
ReviewStateChangesRequested :: ReviewState
data Review
Review :: !Text -> !Text -> ReviewState -> !UTCTime -> !URL -> !Text -> !SimpleUser -> !Id Review -> Review
[reviewBody] :: Review -> !Text
[reviewCommitId] :: Review -> !Text
[reviewState] :: Review -> ReviewState
[reviewSubmittedAt] :: Review -> !UTCTime
[reviewPullRequestUrl] :: Review -> !URL
[reviewHtmlUrl] :: Review -> !Text
[reviewUser] :: Review -> !SimpleUser
[reviewId] :: Review -> !Id Review
data ReviewComment
ReviewComment :: !Id ReviewComment -> !SimpleUser -> !Text -> !URL -> !Id Review -> !Text -> !Text -> !Int -> !Int -> !Text -> !Text -> !UTCTime -> !UTCTime -> !URL -> !URL -> ReviewComment
[reviewCommentId] :: ReviewComment -> !Id ReviewComment
[reviewCommentUser] :: ReviewComment -> !SimpleUser
[reviewCommentBody] :: ReviewComment -> !Text
[reviewCommentUrl] :: ReviewComment -> !URL
[reviewCommentPullRequestReviewId] :: ReviewComment -> !Id Review
[reviewCommentDiffHunk] :: ReviewComment -> !Text
[reviewCommentPath] :: ReviewComment -> !Text
[reviewCommentPosition] :: ReviewComment -> !Int
[reviewCommentOriginalPosition] :: ReviewComment -> !Int
[reviewCommentCommitId] :: ReviewComment -> !Text
[reviewCommentOriginalCommitId] :: ReviewComment -> !Text
[reviewCommentCreatedAt] :: ReviewComment -> !UTCTime
[reviewCommentUpdatedAt] :: ReviewComment -> !UTCTime
[reviewCommentHtmlUrl] :: ReviewComment -> !URL
[reviewCommentPullRequestUrl] :: ReviewComment -> !URL
instance GHC.Generics.Generic GitHub.Data.Reviews.ReviewComment
instance GHC.Show.Show GitHub.Data.Reviews.ReviewComment
instance GHC.Generics.Generic GitHub.Data.Reviews.Review
instance GHC.Show.Show GitHub.Data.Reviews.Review
instance GHC.Generics.Generic GitHub.Data.Reviews.ReviewState
instance GHC.Classes.Ord GitHub.Data.Reviews.ReviewState
instance GHC.Classes.Eq GitHub.Data.Reviews.ReviewState
instance GHC.Enum.Bounded GitHub.Data.Reviews.ReviewState
instance GHC.Enum.Enum GitHub.Data.Reviews.ReviewState
instance GHC.Show.Show GitHub.Data.Reviews.ReviewState
instance Control.DeepSeq.NFData GitHub.Data.Reviews.ReviewComment
instance Data.Binary.Class.Binary GitHub.Data.Reviews.ReviewComment
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Reviews.ReviewComment
instance Control.DeepSeq.NFData GitHub.Data.Reviews.Review
instance Data.Binary.Class.Binary GitHub.Data.Reviews.Review
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Reviews.Review
instance Control.DeepSeq.NFData GitHub.Data.Reviews.ReviewState
instance Data.Binary.Class.Binary GitHub.Data.Reviews.ReviewState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Reviews.ReviewState


module GitHub.Data.Request

-- | Most requests ask for <tt>JSON</tt>.
type Request = GenRequest 'MtJSON

-- | Github request data type.
--   
--   <ul>
--   <li><tt>rw</tt> describes whether authentication is required. It's
--   required for non-<tt>GET</tt> requests.</li>
--   <li><tt>mt</tt> describes the media type, i.e. how the response should
--   be interpreted.</li>
--   <li><tt>a</tt> is the result type</li>
--   </ul>
--   
--   <i>Note:</i> <a>Request</a> is not <a>Functor</a> on purpose.
data GenRequest (mt :: MediaType *) (rw :: RW) a
[Query] :: Paths -> QueryString -> GenRequest mt rw a
[PagedQuery] :: Paths -> QueryString -> FetchCount -> GenRequest mt rw (Vector a)

-- | Command
[Command] :: CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a
query :: Paths -> QueryString -> Request mt a
pagedQuery :: FromJSON a => Paths -> QueryString -> FetchCount -> Request mt (Vector a)
command :: CommandMethod -> Paths -> ByteString -> Request 'RW a

-- | Type used as with <tt>DataKinds</tt> to tag whether requests need
--   authentication or aren't read-only.
data RW

-- | <i>Read-only</i>, doesn't necessarily requires authentication
RO :: RW

-- | <i>Read authenticated</i>
RA :: RW

-- | <i>Read-write</i>, requires authentication
RW :: RW

-- | Http method of requests with body.
data CommandMethod
Post :: CommandMethod
Patch :: CommandMethod
Put :: CommandMethod
Delete :: CommandMethod
toMethod :: CommandMethod -> Method

-- | <a>PagedQuery</a> returns just some results, using this data we can
--   specify how many pages we want to fetch.
data FetchCount
FetchAtLeast :: !Word -> FetchCount
FetchAll :: FetchCount
data MediaType a

-- | <pre>
--   application/vnd.github.v3+json
--   </pre>
MtJSON :: MediaType a

-- | <tt>application/vnd.github.v3.raw</tt>
--   <a>https://developer.github.com/v3/media/#raw-1</a>
MtRaw :: MediaType a

-- | <tt>application/vnd.github.v3.diff</tt>
--   <a>https://developer.github.com/v3/media/#diff</a>
MtDiff :: MediaType a

-- | <tt>application/vnd.github.v3.patch</tt>
--   <a>https://developer.github.com/v3/media/#patch</a>
MtPatch :: MediaType a

-- | <tt>application/vnd.github.v3.sha</tt>
--   <a>https://developer.github.com/v3/media/#sha</a>
MtSha :: MediaType a

-- | <tt>application/vnd.github.v3.star+json</tt>
--   <a>https://developer.github.com/v3/activity/starring/#alternative-response-with-star-creation-timestamps-1</a>
MtStar :: MediaType a

-- | 
--   <a>https://developer.github.com/v3/repos/contents/#get-archive-link</a>
MtRedirect :: MediaType a

-- | Parse status
MtStatus :: MediaType a

-- | Always succeeds
MtUnit :: MediaType a

-- | Some other (preview) type; this is an extension point.
MtPreview :: a -> MediaType a
type Paths = [Text]
class IsPathPart a
toPathPart :: IsPathPart a => a -> Text

-- | Request query string
type QueryString = [(ByteString, Maybe ByteString)]

-- | Count of elements
type Count = Int
instance GHC.Generics.Generic GitHub.Data.Request.RW
instance Data.Data.Data GitHub.Data.Request.RW
instance GHC.Enum.Bounded GitHub.Data.Request.RW
instance GHC.Enum.Enum GitHub.Data.Request.RW
instance GHC.Show.Show GitHub.Data.Request.RW
instance GHC.Read.Read GitHub.Data.Request.RW
instance GHC.Classes.Ord GitHub.Data.Request.RW
instance GHC.Classes.Eq GitHub.Data.Request.RW
instance GHC.Generics.Generic (GitHub.Data.Request.MediaType a)
instance Data.Data.Data a => Data.Data.Data (GitHub.Data.Request.MediaType a)
instance GHC.Show.Show a => GHC.Show.Show (GitHub.Data.Request.MediaType a)
instance GHC.Read.Read a => GHC.Read.Read (GitHub.Data.Request.MediaType a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (GitHub.Data.Request.MediaType a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (GitHub.Data.Request.MediaType a)
instance GHC.Generics.Generic GitHub.Data.Request.FetchCount
instance GHC.Show.Show GitHub.Data.Request.FetchCount
instance GHC.Read.Read GitHub.Data.Request.FetchCount
instance GHC.Classes.Ord GitHub.Data.Request.FetchCount
instance GHC.Classes.Eq GitHub.Data.Request.FetchCount
instance GHC.Generics.Generic GitHub.Data.Request.CommandMethod
instance Data.Data.Data GitHub.Data.Request.CommandMethod
instance GHC.Enum.Bounded GitHub.Data.Request.CommandMethod
instance GHC.Enum.Enum GitHub.Data.Request.CommandMethod
instance GHC.Show.Show GitHub.Data.Request.CommandMethod
instance GHC.Read.Read GitHub.Data.Request.CommandMethod
instance GHC.Classes.Ord GitHub.Data.Request.CommandMethod
instance GHC.Classes.Eq GitHub.Data.Request.CommandMethod
instance GHC.Classes.Eq (GitHub.Data.Request.GenRequest rw mt a)
instance GHC.Classes.Ord (GitHub.Data.Request.GenRequest rw mt a)
instance GHC.Show.Show (GitHub.Data.Request.GenRequest rw mt a)
instance Data.Hashable.Class.Hashable (GitHub.Data.Request.GenRequest rw mt a)
instance GHC.Num.Num GitHub.Data.Request.FetchCount
instance Data.Hashable.Class.Hashable GitHub.Data.Request.FetchCount
instance Data.Binary.Class.Binary GitHub.Data.Request.FetchCount
instance Control.DeepSeq.NFData GitHub.Data.Request.FetchCount
instance Data.Hashable.Class.Hashable GitHub.Data.Request.CommandMethod
instance GitHub.Data.Request.IsPathPart (GitHub.Data.Name.Name a)
instance GitHub.Data.Request.IsPathPart (GitHub.Data.Id.Id a)
instance GitHub.Data.Request.IsPathPart GitHub.Data.Definitions.IssueNumber


-- | This module also exports <tt><a>FromJSON</a> a =&gt; <a>FromJSON</a>
--   (<a>HashMap</a> <a>Language</a> a)</tt> orphan-ish instance for
--   <tt>aeson &lt; 1</tt>
module GitHub.Data.Repos
data Repo
Repo :: !Maybe URL -> !Maybe Text -> !Maybe UTCTime -> !URL -> !Maybe URL -> !Maybe Int -> !Maybe Text -> !Maybe Bool -> !Maybe URL -> !Bool -> !Bool -> !Maybe URL -> !Maybe Int -> !Maybe UTCTime -> !Maybe Int -> !SimpleOwner -> !Name Repo -> !Maybe Language -> !Maybe Text -> !Maybe UTCTime -> !Id Repo -> !URL -> !Maybe Int -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe RepoRef -> !Maybe RepoRef -> !URL -> !Int -> Repo
[repoSshUrl] :: Repo -> !Maybe URL
[repoDescription] :: Repo -> !Maybe Text
[repoCreatedAt] :: Repo -> !Maybe UTCTime
[repoHtmlUrl] :: Repo -> !URL
[repoSvnUrl] :: Repo -> !Maybe URL
[repoForks] :: Repo -> !Maybe Int
[repoHomepage] :: Repo -> !Maybe Text
[repoFork] :: Repo -> !Maybe Bool
[repoGitUrl] :: Repo -> !Maybe URL
[repoPrivate] :: Repo -> !Bool
[repoArchived] :: Repo -> !Bool
[repoCloneUrl] :: Repo -> !Maybe URL
[repoSize] :: Repo -> !Maybe Int
[repoUpdatedAt] :: Repo -> !Maybe UTCTime
[repoWatchers] :: Repo -> !Maybe Int
[repoOwner] :: Repo -> !SimpleOwner
[repoName] :: Repo -> !Name Repo
[repoLanguage] :: Repo -> !Maybe Language
[repoDefaultBranch] :: Repo -> !Maybe Text

-- | this is Nothing for new repositories
[repoPushedAt] :: Repo -> !Maybe UTCTime
[repoId] :: Repo -> !Id Repo
[repoUrl] :: Repo -> !URL
[repoOpenIssues] :: Repo -> !Maybe Int
[repoHasWiki] :: Repo -> !Maybe Bool
[repoHasIssues] :: Repo -> !Maybe Bool
[repoHasDownloads] :: Repo -> !Maybe Bool
[repoParent] :: Repo -> !Maybe RepoRef
[repoSource] :: Repo -> !Maybe RepoRef
[repoHooksUrl] :: Repo -> !URL
[repoStargazersCount] :: Repo -> !Int
data RepoRef
RepoRef :: !SimpleOwner -> !Name Repo -> RepoRef
[repoRefOwner] :: RepoRef -> !SimpleOwner
[repoRefRepo] :: RepoRef -> !Name Repo
data NewRepo
NewRepo :: !Name Repo -> !Maybe Text -> !Maybe Text -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> NewRepo
[newRepoName] :: NewRepo -> !Name Repo
[newRepoDescription] :: NewRepo -> !Maybe Text
[newRepoHomepage] :: NewRepo -> !Maybe Text
[newRepoPrivate] :: NewRepo -> !Maybe Bool
[newRepoHasIssues] :: NewRepo -> !Maybe Bool
[newRepoHasWiki] :: NewRepo -> !Maybe Bool
[newRepoAutoInit] :: NewRepo -> !Maybe Bool
newRepo :: Name Repo -> NewRepo
data EditRepo
EditRepo :: !Maybe (Name Repo) -> !Maybe Text -> !Maybe Text -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> EditRepo
[editName] :: EditRepo -> !Maybe (Name Repo)
[editDescription] :: EditRepo -> !Maybe Text
[editHomepage] :: EditRepo -> !Maybe Text
[editPublic] :: EditRepo -> !Maybe Bool
[editHasIssues] :: EditRepo -> !Maybe Bool
[editHasWiki] :: EditRepo -> !Maybe Bool
[editHasDownloads] :: EditRepo -> !Maybe Bool

-- | Filter the list of the user's repos using any of these constructors.
data RepoPublicity

-- | All repos accessible to the user.
RepoPublicityAll :: RepoPublicity

-- | Only repos owned by the user.
RepoPublicityOwner :: RepoPublicity

-- | Only public repos.
RepoPublicityPublic :: RepoPublicity

-- | Only private repos.
RepoPublicityPrivate :: RepoPublicity

-- | Only repos to which the user is a member but not an owner.
RepoPublicityMember :: RepoPublicity

-- | The value is the number of bytes of code written in that language.
type Languages = HashMap Language Int

-- | A programming language.
newtype Language
Language :: Text -> Language
getLanguage :: Language -> Text
data Contributor

-- | An existing Github user, with their number of contributions, avatar
--   URL, login, URL, ID, and Gravatar ID.
KnownContributor :: !Int -> !URL -> !Name User -> !URL -> !Id User -> !Text -> Contributor

-- | An unknown Github user with their number of contributions and recorded
--   name.
AnonymousContributor :: !Int -> !Text -> Contributor
contributorToSimpleUser :: Contributor -> Maybe SimpleUser
data ArchiveFormat

-- | ".tar.gz" format
ArchiveFormatTarball :: ArchiveFormat

-- | ".zip" format
ArchiveFormatZipball :: ArchiveFormat
instance GHC.Generics.Generic GitHub.Data.Repos.ArchiveFormat
instance Data.Data.Data GitHub.Data.Repos.ArchiveFormat
instance GHC.Enum.Bounded GitHub.Data.Repos.ArchiveFormat
instance GHC.Enum.Enum GitHub.Data.Repos.ArchiveFormat
instance GHC.Classes.Ord GitHub.Data.Repos.ArchiveFormat
instance GHC.Classes.Eq GitHub.Data.Repos.ArchiveFormat
instance GHC.Show.Show GitHub.Data.Repos.ArchiveFormat
instance GHC.Generics.Generic GitHub.Data.Repos.Contributor
instance GHC.Classes.Ord GitHub.Data.Repos.Contributor
instance GHC.Classes.Eq GitHub.Data.Repos.Contributor
instance Data.Data.Data GitHub.Data.Repos.Contributor
instance GHC.Show.Show GitHub.Data.Repos.Contributor
instance GHC.Generics.Generic GitHub.Data.Repos.NewRepo
instance Data.Data.Data GitHub.Data.Repos.NewRepo
instance GHC.Show.Show GitHub.Data.Repos.NewRepo
instance GHC.Classes.Ord GitHub.Data.Repos.NewRepo
instance GHC.Classes.Eq GitHub.Data.Repos.NewRepo
instance GHC.Generics.Generic GitHub.Data.Repos.EditRepo
instance Data.Data.Data GitHub.Data.Repos.EditRepo
instance GHC.Show.Show GitHub.Data.Repos.EditRepo
instance GHC.Classes.Ord GitHub.Data.Repos.EditRepo
instance GHC.Classes.Eq GitHub.Data.Repos.EditRepo
instance GHC.Generics.Generic GitHub.Data.Repos.RepoRef
instance GHC.Classes.Ord GitHub.Data.Repos.RepoRef
instance GHC.Classes.Eq GitHub.Data.Repos.RepoRef
instance Data.Data.Data GitHub.Data.Repos.RepoRef
instance GHC.Show.Show GitHub.Data.Repos.RepoRef
instance GHC.Generics.Generic GitHub.Data.Repos.Repo
instance GHC.Classes.Ord GitHub.Data.Repos.Repo
instance GHC.Classes.Eq GitHub.Data.Repos.Repo
instance Data.Data.Data GitHub.Data.Repos.Repo
instance GHC.Show.Show GitHub.Data.Repos.Repo
instance GHC.Generics.Generic GitHub.Data.Repos.Language
instance GHC.Classes.Ord GitHub.Data.Repos.Language
instance GHC.Classes.Eq GitHub.Data.Repos.Language
instance Data.Data.Data GitHub.Data.Repos.Language
instance GHC.Show.Show GitHub.Data.Repos.Language
instance GHC.Generics.Generic GitHub.Data.Repos.RepoPublicity
instance Data.Data.Data GitHub.Data.Repos.RepoPublicity
instance GHC.Enum.Bounded GitHub.Data.Repos.RepoPublicity
instance GHC.Enum.Enum GitHub.Data.Repos.RepoPublicity
instance GHC.Classes.Ord GitHub.Data.Repos.RepoPublicity
instance GHC.Classes.Eq GitHub.Data.Repos.RepoPublicity
instance GHC.Show.Show GitHub.Data.Repos.RepoPublicity
instance GitHub.Data.Request.IsPathPart GitHub.Data.Repos.ArchiveFormat
instance Control.DeepSeq.NFData GitHub.Data.Repos.Contributor
instance Data.Binary.Class.Binary GitHub.Data.Repos.Contributor
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Repos.Contributor
instance Control.DeepSeq.NFData GitHub.Data.Repos.NewRepo
instance Data.Binary.Class.Binary GitHub.Data.Repos.NewRepo
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Repos.NewRepo
instance Control.DeepSeq.NFData GitHub.Data.Repos.EditRepo
instance Data.Binary.Class.Binary GitHub.Data.Repos.EditRepo
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Repos.EditRepo
instance Control.DeepSeq.NFData GitHub.Data.Repos.Repo
instance Data.Binary.Class.Binary GitHub.Data.Repos.Repo
instance Control.DeepSeq.NFData GitHub.Data.Repos.RepoRef
instance Data.Binary.Class.Binary GitHub.Data.Repos.RepoRef
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Repos.Repo
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Repos.RepoRef
instance Control.DeepSeq.NFData GitHub.Data.Repos.Language
instance Data.Binary.Class.Binary GitHub.Data.Repos.Language
instance Data.Hashable.Class.Hashable GitHub.Data.Repos.Language
instance Data.String.IsString GitHub.Data.Repos.Language
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Repos.Language
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Repos.Language
instance Data.Aeson.Types.FromJSON.FromJSONKey GitHub.Data.Repos.Language


module GitHub.Data.Teams
data Privacy
PrivacyClosed :: Privacy
PrivacySecret :: Privacy
data Permission
PermissionPull :: Permission
PermissionPush :: Permission
PermissionAdmin :: Permission
data AddTeamRepoPermission
AddTeamRepoPermission :: !Permission -> AddTeamRepoPermission
[addTeamRepoPermission] :: AddTeamRepoPermission -> !Permission
data SimpleTeam
SimpleTeam :: !Id Team -> !URL -> !Text -> !Name Team -> !Maybe Text -> !Maybe Privacy -> !Permission -> !URL -> !URL -> SimpleTeam
[simpleTeamId] :: SimpleTeam -> !Id Team
[simpleTeamUrl] :: SimpleTeam -> !URL
[simpleTeamName] :: SimpleTeam -> !Text
[simpleTeamSlug] :: SimpleTeam -> !Name Team
[simpleTeamDescription] :: SimpleTeam -> !Maybe Text
[simpleTeamPrivacy] :: SimpleTeam -> !Maybe Privacy
[simpleTeamPermission] :: SimpleTeam -> !Permission
[simpleTeamMembersUrl] :: SimpleTeam -> !URL
[simpleTeamRepositoriesUrl] :: SimpleTeam -> !URL
data Team
Team :: !Id Team -> !URL -> !Text -> !Name Team -> !Maybe Text -> !Maybe Privacy -> !Permission -> !URL -> !URL -> !Int -> !Int -> !SimpleOrganization -> Team
[teamId] :: Team -> !Id Team
[teamUrl] :: Team -> !URL
[teamName] :: Team -> !Text
[teamSlug] :: Team -> !Name Team
[teamDescription] :: Team -> !Maybe Text
[teamPrivacy] :: Team -> !Maybe Privacy
[teamPermission] :: Team -> !Permission
[teamMembersUrl] :: Team -> !URL
[teamRepositoriesUrl] :: Team -> !URL
[teamMembersCount] :: Team -> !Int
[teamReposCount] :: Team -> !Int
[teamOrganization] :: Team -> !SimpleOrganization
data CreateTeam
CreateTeam :: !Name Team -> !Maybe Text -> !Vector (Name Repo) -> Permission -> CreateTeam
[createTeamName] :: CreateTeam -> !Name Team
[createTeamDescription] :: CreateTeam -> !Maybe Text
[createTeamRepoNames] :: CreateTeam -> !Vector (Name Repo)
[createTeamPermission] :: CreateTeam -> Permission
data EditTeam
EditTeam :: !Name Team -> !Maybe Text -> !Permission -> EditTeam
[editTeamName] :: EditTeam -> !Name Team
[editTeamDescription] :: EditTeam -> !Maybe Text
[editTeamPermission] :: EditTeam -> !Permission
data Role
RoleMaintainer :: Role
RoleMember :: Role
data ReqState
StatePending :: ReqState
StateActive :: ReqState
data TeamMembership
TeamMembership :: !URL -> !Role -> !ReqState -> TeamMembership
[teamMembershipUrl] :: TeamMembership -> !URL
[teamMembershipRole] :: TeamMembership -> !Role
[teamMembershipReqState] :: TeamMembership -> !ReqState
data CreateTeamMembership
CreateTeamMembership :: !Role -> CreateTeamMembership
[createTeamMembershipRole] :: CreateTeamMembership -> !Role

-- | Filters members returned by their role in the team.
data TeamMemberRole

-- | all members of the team.
TeamMemberRoleAll :: TeamMemberRole

-- | team maintainers
TeamMemberRoleMaintainer :: TeamMemberRole

-- | normal members of the team.
TeamMemberRoleMember :: TeamMemberRole
instance GHC.Generics.Generic GitHub.Data.Teams.TeamMemberRole
instance Data.Data.Data GitHub.Data.Teams.TeamMemberRole
instance GHC.Enum.Bounded GitHub.Data.Teams.TeamMemberRole
instance GHC.Enum.Enum GitHub.Data.Teams.TeamMemberRole
instance GHC.Classes.Ord GitHub.Data.Teams.TeamMemberRole
instance GHC.Classes.Eq GitHub.Data.Teams.TeamMemberRole
instance GHC.Show.Show GitHub.Data.Teams.TeamMemberRole
instance GHC.Generics.Generic GitHub.Data.Teams.CreateTeamMembership
instance GHC.Classes.Ord GitHub.Data.Teams.CreateTeamMembership
instance GHC.Classes.Eq GitHub.Data.Teams.CreateTeamMembership
instance Data.Data.Data GitHub.Data.Teams.CreateTeamMembership
instance GHC.Show.Show GitHub.Data.Teams.CreateTeamMembership
instance GHC.Generics.Generic GitHub.Data.Teams.TeamMembership
instance GHC.Classes.Ord GitHub.Data.Teams.TeamMembership
instance GHC.Classes.Eq GitHub.Data.Teams.TeamMembership
instance Data.Data.Data GitHub.Data.Teams.TeamMembership
instance GHC.Show.Show GitHub.Data.Teams.TeamMembership
instance GHC.Generics.Generic GitHub.Data.Teams.ReqState
instance GHC.Classes.Ord GitHub.Data.Teams.ReqState
instance GHC.Classes.Eq GitHub.Data.Teams.ReqState
instance Data.Data.Data GitHub.Data.Teams.ReqState
instance GHC.Show.Show GitHub.Data.Teams.ReqState
instance GHC.Generics.Generic GitHub.Data.Teams.Role
instance GHC.Classes.Ord GitHub.Data.Teams.Role
instance GHC.Classes.Eq GitHub.Data.Teams.Role
instance Data.Data.Data GitHub.Data.Teams.Role
instance GHC.Show.Show GitHub.Data.Teams.Role
instance GHC.Generics.Generic GitHub.Data.Teams.EditTeam
instance GHC.Classes.Ord GitHub.Data.Teams.EditTeam
instance GHC.Classes.Eq GitHub.Data.Teams.EditTeam
instance Data.Data.Data GitHub.Data.Teams.EditTeam
instance GHC.Show.Show GitHub.Data.Teams.EditTeam
instance GHC.Generics.Generic GitHub.Data.Teams.CreateTeam
instance GHC.Classes.Ord GitHub.Data.Teams.CreateTeam
instance GHC.Classes.Eq GitHub.Data.Teams.CreateTeam
instance Data.Data.Data GitHub.Data.Teams.CreateTeam
instance GHC.Show.Show GitHub.Data.Teams.CreateTeam
instance GHC.Generics.Generic GitHub.Data.Teams.SimpleTeam
instance GHC.Classes.Ord GitHub.Data.Teams.SimpleTeam
instance GHC.Classes.Eq GitHub.Data.Teams.SimpleTeam
instance Data.Data.Data GitHub.Data.Teams.SimpleTeam
instance GHC.Show.Show GitHub.Data.Teams.SimpleTeam
instance GHC.Generics.Generic GitHub.Data.Teams.Team
instance GHC.Classes.Ord GitHub.Data.Teams.Team
instance GHC.Classes.Eq GitHub.Data.Teams.Team
instance Data.Data.Data GitHub.Data.Teams.Team
instance GHC.Show.Show GitHub.Data.Teams.Team
instance GHC.Generics.Generic GitHub.Data.Teams.AddTeamRepoPermission
instance GHC.Classes.Ord GitHub.Data.Teams.AddTeamRepoPermission
instance GHC.Classes.Eq GitHub.Data.Teams.AddTeamRepoPermission
instance Data.Data.Data GitHub.Data.Teams.AddTeamRepoPermission
instance GHC.Show.Show GitHub.Data.Teams.AddTeamRepoPermission
instance GHC.Generics.Generic GitHub.Data.Teams.Permission
instance GHC.Classes.Ord GitHub.Data.Teams.Permission
instance GHC.Classes.Eq GitHub.Data.Teams.Permission
instance GHC.Enum.Bounded GitHub.Data.Teams.Permission
instance GHC.Enum.Enum GitHub.Data.Teams.Permission
instance Data.Data.Data GitHub.Data.Teams.Permission
instance GHC.Show.Show GitHub.Data.Teams.Permission
instance GHC.Generics.Generic GitHub.Data.Teams.Privacy
instance GHC.Classes.Ord GitHub.Data.Teams.Privacy
instance GHC.Classes.Eq GitHub.Data.Teams.Privacy
instance GHC.Enum.Bounded GitHub.Data.Teams.Privacy
instance GHC.Enum.Enum GitHub.Data.Teams.Privacy
instance Data.Data.Data GitHub.Data.Teams.Privacy
instance GHC.Show.Show GitHub.Data.Teams.Privacy
instance Control.DeepSeq.NFData GitHub.Data.Teams.CreateTeamMembership
instance Data.Binary.Class.Binary GitHub.Data.Teams.CreateTeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.CreateTeamMembership
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.CreateTeamMembership
instance Control.DeepSeq.NFData GitHub.Data.Teams.TeamMembership
instance Data.Binary.Class.Binary GitHub.Data.Teams.TeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.TeamMembership
instance Control.DeepSeq.NFData GitHub.Data.Teams.ReqState
instance Data.Binary.Class.Binary GitHub.Data.Teams.ReqState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.ReqState
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.ReqState
instance Control.DeepSeq.NFData GitHub.Data.Teams.Role
instance Data.Binary.Class.Binary GitHub.Data.Teams.Role
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.Role
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.Role
instance Control.DeepSeq.NFData GitHub.Data.Teams.EditTeam
instance Data.Binary.Class.Binary GitHub.Data.Teams.EditTeam
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.EditTeam
instance Control.DeepSeq.NFData GitHub.Data.Teams.CreateTeam
instance Data.Binary.Class.Binary GitHub.Data.Teams.CreateTeam
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.CreateTeam
instance Control.DeepSeq.NFData GitHub.Data.Teams.SimpleTeam
instance Data.Binary.Class.Binary GitHub.Data.Teams.SimpleTeam
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.SimpleTeam
instance Control.DeepSeq.NFData GitHub.Data.Teams.Team
instance Data.Binary.Class.Binary GitHub.Data.Teams.Team
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.Team
instance Control.DeepSeq.NFData GitHub.Data.Teams.AddTeamRepoPermission
instance Data.Binary.Class.Binary GitHub.Data.Teams.AddTeamRepoPermission
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.AddTeamRepoPermission
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.AddTeamRepoPermission
instance Control.DeepSeq.NFData GitHub.Data.Teams.Permission
instance Data.Binary.Class.Binary GitHub.Data.Teams.Permission
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.Permission
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.Permission
instance Control.DeepSeq.NFData GitHub.Data.Teams.Privacy
instance Data.Binary.Class.Binary GitHub.Data.Teams.Privacy
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Teams.Privacy
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Teams.Privacy


module GitHub.Data.Search
data SearchResult entity
SearchResult :: !Int -> !Vector entity -> SearchResult entity
[searchResultTotalCount] :: SearchResult entity -> !Int
[searchResultResults] :: SearchResult entity -> !Vector entity
data Code
Code :: !Text -> !Text -> !Text -> !URL -> !URL -> !URL -> !Repo -> Code
[codeName] :: Code -> !Text
[codePath] :: Code -> !Text
[codeSha] :: Code -> !Text
[codeUrl] :: Code -> !URL
[codeGitUrl] :: Code -> !URL
[codeHtmlUrl] :: Code -> !URL
[codeRepo] :: Code -> !Repo
instance GHC.Generics.Generic GitHub.Data.Search.Code
instance GHC.Classes.Ord GitHub.Data.Search.Code
instance GHC.Classes.Eq GitHub.Data.Search.Code
instance Data.Data.Data GitHub.Data.Search.Code
instance GHC.Show.Show GitHub.Data.Search.Code
instance GHC.Generics.Generic (GitHub.Data.Search.SearchResult entity)
instance GHC.Classes.Ord entity => GHC.Classes.Ord (GitHub.Data.Search.SearchResult entity)
instance GHC.Classes.Eq entity => GHC.Classes.Eq (GitHub.Data.Search.SearchResult entity)
instance Data.Data.Data entity => Data.Data.Data (GitHub.Data.Search.SearchResult entity)
instance GHC.Show.Show entity => GHC.Show.Show (GitHub.Data.Search.SearchResult entity)
instance Control.DeepSeq.NFData GitHub.Data.Search.Code
instance Data.Binary.Class.Binary GitHub.Data.Search.Code
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Search.Code
instance Control.DeepSeq.NFData entity => Control.DeepSeq.NFData (GitHub.Data.Search.SearchResult entity)
instance Data.Binary.Class.Binary entity => Data.Binary.Class.Binary (GitHub.Data.Search.SearchResult entity)
instance Data.Aeson.Types.FromJSON.FromJSON entity => Data.Aeson.Types.FromJSON.FromJSON (GitHub.Data.Search.SearchResult entity)

module GitHub.Data.Releases
data Release
Release :: !URL -> !URL -> !URL -> !URL -> !URL -> !URL -> !Id Release -> !Text -> !Text -> !Text -> !Text -> !Bool -> !Bool -> !UTCTime -> !Maybe UTCTime -> !SimpleUser -> !Vector ReleaseAsset -> Release
[releaseUrl] :: Release -> !URL
[releaseHtmlUrl] :: Release -> !URL
[releaseAssetsurl] :: Release -> !URL
[releaseUploadUrl] :: Release -> !URL
[releaseTarballUrl] :: Release -> !URL
[releaseZipballUrl] :: Release -> !URL
[releaseId] :: Release -> !Id Release
[releaseTagName] :: Release -> !Text
[releaseTargetCommitish] :: Release -> !Text
[releaseName] :: Release -> !Text
[releaseBody] :: Release -> !Text
[releaseDraft] :: Release -> !Bool
[releasePrerelease] :: Release -> !Bool
[releaseCreatedAt] :: Release -> !UTCTime
[releasePublishedAt] :: Release -> !Maybe UTCTime
[releaseAuthor] :: Release -> !SimpleUser
[releaseAssets] :: Release -> !Vector ReleaseAsset
data ReleaseAsset
ReleaseAsset :: !URL -> !Text -> !Id ReleaseAsset -> !Text -> !Maybe Text -> !Text -> !Text -> !Int -> !Int -> !UTCTime -> !UTCTime -> !SimpleUser -> ReleaseAsset
[releaseAssetUrl] :: ReleaseAsset -> !URL
[releaseAssetBrowserDownloadUrl] :: ReleaseAsset -> !Text
[releaseAssetId] :: ReleaseAsset -> !Id ReleaseAsset
[releaseAssetName] :: ReleaseAsset -> !Text
[releaseAssetLabel] :: ReleaseAsset -> !Maybe Text
[releaseAssetState] :: ReleaseAsset -> !Text
[releaseAssetContentType] :: ReleaseAsset -> !Text
[releaseAssetSize] :: ReleaseAsset -> !Int
[releaseAssetDownloadCount] :: ReleaseAsset -> !Int
[releaseAssetCreatedAt] :: ReleaseAsset -> !UTCTime
[releaseAssetUpdatedAt] :: ReleaseAsset -> !UTCTime
[releaseAssetUploader] :: ReleaseAsset -> !SimpleUser
instance GHC.Generics.Generic GitHub.Data.Releases.Release
instance GHC.Classes.Ord GitHub.Data.Releases.Release
instance GHC.Classes.Eq GitHub.Data.Releases.Release
instance Data.Data.Data GitHub.Data.Releases.Release
instance GHC.Show.Show GitHub.Data.Releases.Release
instance GHC.Generics.Generic GitHub.Data.Releases.ReleaseAsset
instance GHC.Classes.Ord GitHub.Data.Releases.ReleaseAsset
instance GHC.Classes.Eq GitHub.Data.Releases.ReleaseAsset
instance Data.Data.Data GitHub.Data.Releases.ReleaseAsset
instance GHC.Show.Show GitHub.Data.Releases.ReleaseAsset
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Releases.Release
instance Control.DeepSeq.NFData GitHub.Data.Releases.Release
instance Data.Binary.Class.Binary GitHub.Data.Releases.Release
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Releases.ReleaseAsset
instance Control.DeepSeq.NFData GitHub.Data.Releases.ReleaseAsset
instance Data.Binary.Class.Binary GitHub.Data.Releases.ReleaseAsset


module GitHub.Data.Milestone
data Milestone
Milestone :: !SimpleUser -> !Maybe UTCTime -> !Int -> !Id Milestone -> !Int -> !Maybe Text -> !Text -> !URL -> !UTCTime -> !Text -> Milestone
[milestoneCreator] :: Milestone -> !SimpleUser
[milestoneDueOn] :: Milestone -> !Maybe UTCTime
[milestoneOpenIssues] :: Milestone -> !Int
[milestoneNumber] :: Milestone -> !Id Milestone
[milestoneClosedIssues] :: Milestone -> !Int
[milestoneDescription] :: Milestone -> !Maybe Text
[milestoneTitle] :: Milestone -> !Text
[milestoneUrl] :: Milestone -> !URL
[milestoneCreatedAt] :: Milestone -> !UTCTime
[milestoneState] :: Milestone -> !Text
data NewMilestone
NewMilestone :: !Text -> !Text -> !Maybe Text -> !Maybe UTCTime -> NewMilestone
[newMilestoneTitle] :: NewMilestone -> !Text
[newMilestoneState] :: NewMilestone -> !Text
[newMilestoneDescription] :: NewMilestone -> !Maybe Text
[newMilestoneDueOn] :: NewMilestone -> !Maybe UTCTime
data UpdateMilestone
UpdateMilestone :: !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe UTCTime -> UpdateMilestone
[updateMilestoneTitle] :: UpdateMilestone -> !Maybe Text
[updateMilestoneState] :: UpdateMilestone -> !Maybe Text
[updateMilestoneDescription] :: UpdateMilestone -> !Maybe Text
[updateMilestoneDueOn] :: UpdateMilestone -> !Maybe UTCTime
instance GHC.Generics.Generic GitHub.Data.Milestone.UpdateMilestone
instance GHC.Classes.Ord GitHub.Data.Milestone.UpdateMilestone
instance GHC.Classes.Eq GitHub.Data.Milestone.UpdateMilestone
instance Data.Data.Data GitHub.Data.Milestone.UpdateMilestone
instance GHC.Show.Show GitHub.Data.Milestone.UpdateMilestone
instance GHC.Generics.Generic GitHub.Data.Milestone.NewMilestone
instance GHC.Classes.Ord GitHub.Data.Milestone.NewMilestone
instance GHC.Classes.Eq GitHub.Data.Milestone.NewMilestone
instance Data.Data.Data GitHub.Data.Milestone.NewMilestone
instance GHC.Show.Show GitHub.Data.Milestone.NewMilestone
instance GHC.Generics.Generic GitHub.Data.Milestone.Milestone
instance GHC.Classes.Ord GitHub.Data.Milestone.Milestone
instance GHC.Classes.Eq GitHub.Data.Milestone.Milestone
instance Data.Data.Data GitHub.Data.Milestone.Milestone
instance GHC.Show.Show GitHub.Data.Milestone.Milestone
instance Control.DeepSeq.NFData GitHub.Data.Milestone.UpdateMilestone
instance Data.Binary.Class.Binary GitHub.Data.Milestone.UpdateMilestone
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Milestone.UpdateMilestone
instance Control.DeepSeq.NFData GitHub.Data.Milestone.NewMilestone
instance Data.Binary.Class.Binary GitHub.Data.Milestone.NewMilestone
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Milestone.NewMilestone
instance Control.DeepSeq.NFData GitHub.Data.Milestone.Milestone
instance Data.Binary.Class.Binary GitHub.Data.Milestone.Milestone
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Milestone.Milestone


-- | Module with modifiers for pull requests' and issues' listings.
module GitHub.Data.Options
stateOpen :: HasState mod => mod
stateClosed :: HasState mod => mod
stateAll :: HasState mod => mod
sortAscending :: HasDirection mod => mod
sortDescending :: HasDirection mod => mod
sortByCreated :: HasCreatedUpdated mod => mod
sortByUpdated :: HasCreatedUpdated mod => mod

-- | See <a>https://developer.github.com/v3/pulls/#parameters</a>.
data PullRequestMod
prModToQueryString :: PullRequestMod -> QueryString
optionsBase :: Text -> PullRequestMod
optionsNoBase :: PullRequestMod
optionsHead :: Text -> PullRequestMod
optionsNoHead :: PullRequestMod
sortByPopularity :: PullRequestMod
sortByLongRunning :: PullRequestMod

-- | See <a>https://developer.github.com/v3/issues/#parameters</a>.
data IssueMod
issueModToQueryString :: IssueMod -> QueryString
sortByComments :: HasComments mod => mod
optionsLabels :: (HasLabels mod, Foldable f) => f (Name IssueLabel) -> mod
optionsSince :: HasSince mod => UTCTime -> mod
optionsSinceAll :: HasSince mod => mod
optionsAssignedIssues :: IssueMod
optionsCreatedIssues :: IssueMod
optionsMentionedIssues :: IssueMod
optionsSubscribedIssues :: IssueMod
optionsAllIssues :: IssueMod

-- | See <a>https://developer.github.com/v3/issues/#parameters-1</a>.
data IssueRepoMod
issueRepoModToQueryString :: IssueRepoMod -> QueryString

-- | Don't care about milestones.
--   
--   <a>optionsAnyMilestone</a> means there should be some milestone, but
--   it can be any.
--   
--   See
--   <a>https://developer.github.com/v3/issues/#list-issues-for-a-repository</a>
optionsIrrelevantMilestone :: IssueRepoMod
optionsAnyMilestone :: IssueRepoMod
optionsNoMilestone :: IssueRepoMod
optionsIrrelevantAssignee :: IssueRepoMod
optionsAnyAssignee :: IssueRepoMod
optionsNoAssignee :: IssueRepoMod

-- | <a>Issue</a> or <a>PullRequest</a> state
data IssueState
StateOpen :: IssueState
StateClosed :: IssueState

-- | <a>PullRequest</a> mergeable_state
data MergeableState
StateUnknown :: MergeableState
StateClean :: MergeableState
StateDirty :: MergeableState
StateUnstable :: MergeableState
StateBlocked :: MergeableState
StateBehind :: MergeableState
class HasState mod
class HasDirection mod
class HasCreatedUpdated mod
class HasComments mod
class HasLabels mod
class HasSince mod
instance Data.Data.Data GitHub.Data.Options.IssueRepoOptions
instance GHC.Generics.Generic GitHub.Data.Options.IssueRepoOptions
instance GHC.Show.Show GitHub.Data.Options.IssueRepoOptions
instance GHC.Classes.Ord GitHub.Data.Options.IssueRepoOptions
instance GHC.Classes.Eq GitHub.Data.Options.IssueRepoOptions
instance Data.Data.Data GitHub.Data.Options.IssueOptions
instance GHC.Generics.Generic GitHub.Data.Options.IssueOptions
instance GHC.Show.Show GitHub.Data.Options.IssueOptions
instance GHC.Classes.Ord GitHub.Data.Options.IssueOptions
instance GHC.Classes.Eq GitHub.Data.Options.IssueOptions
instance Data.Data.Data GitHub.Data.Options.PullRequestOptions
instance GHC.Generics.Generic GitHub.Data.Options.PullRequestOptions
instance GHC.Show.Show GitHub.Data.Options.PullRequestOptions
instance GHC.Classes.Ord GitHub.Data.Options.PullRequestOptions
instance GHC.Classes.Eq GitHub.Data.Options.PullRequestOptions
instance Data.Data.Data a => Data.Data.Data (GitHub.Data.Options.FilterBy a)
instance GHC.Generics.Generic (GitHub.Data.Options.FilterBy a)
instance GHC.Show.Show a => GHC.Show.Show (GitHub.Data.Options.FilterBy a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (GitHub.Data.Options.FilterBy a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (GitHub.Data.Options.FilterBy a)
instance Data.Data.Data GitHub.Data.Options.SortIssue
instance GHC.Generics.Generic GitHub.Data.Options.SortIssue
instance GHC.Enum.Bounded GitHub.Data.Options.SortIssue
instance GHC.Enum.Enum GitHub.Data.Options.SortIssue
instance GHC.Show.Show GitHub.Data.Options.SortIssue
instance GHC.Classes.Ord GitHub.Data.Options.SortIssue
instance GHC.Classes.Eq GitHub.Data.Options.SortIssue
instance Data.Data.Data GitHub.Data.Options.IssueFilter
instance GHC.Generics.Generic GitHub.Data.Options.IssueFilter
instance GHC.Enum.Bounded GitHub.Data.Options.IssueFilter
instance GHC.Enum.Enum GitHub.Data.Options.IssueFilter
instance GHC.Show.Show GitHub.Data.Options.IssueFilter
instance GHC.Classes.Ord GitHub.Data.Options.IssueFilter
instance GHC.Classes.Eq GitHub.Data.Options.IssueFilter
instance Data.Data.Data GitHub.Data.Options.SortPR
instance GHC.Generics.Generic GitHub.Data.Options.SortPR
instance GHC.Enum.Bounded GitHub.Data.Options.SortPR
instance GHC.Enum.Enum GitHub.Data.Options.SortPR
instance GHC.Show.Show GitHub.Data.Options.SortPR
instance GHC.Classes.Ord GitHub.Data.Options.SortPR
instance GHC.Classes.Eq GitHub.Data.Options.SortPR
instance Data.Data.Data GitHub.Data.Options.SortDirection
instance GHC.Generics.Generic GitHub.Data.Options.SortDirection
instance GHC.Enum.Bounded GitHub.Data.Options.SortDirection
instance GHC.Enum.Enum GitHub.Data.Options.SortDirection
instance GHC.Show.Show GitHub.Data.Options.SortDirection
instance GHC.Classes.Ord GitHub.Data.Options.SortDirection
instance GHC.Classes.Eq GitHub.Data.Options.SortDirection
instance Data.Data.Data GitHub.Data.Options.MergeableState
instance GHC.Generics.Generic GitHub.Data.Options.MergeableState
instance GHC.Enum.Bounded GitHub.Data.Options.MergeableState
instance GHC.Enum.Enum GitHub.Data.Options.MergeableState
instance GHC.Show.Show GitHub.Data.Options.MergeableState
instance GHC.Classes.Ord GitHub.Data.Options.MergeableState
instance GHC.Classes.Eq GitHub.Data.Options.MergeableState
instance Data.Data.Data GitHub.Data.Options.IssueState
instance GHC.Generics.Generic GitHub.Data.Options.IssueState
instance GHC.Enum.Bounded GitHub.Data.Options.IssueState
instance GHC.Enum.Enum GitHub.Data.Options.IssueState
instance GHC.Show.Show GitHub.Data.Options.IssueState
instance GHC.Classes.Ord GitHub.Data.Options.IssueState
instance GHC.Classes.Eq GitHub.Data.Options.IssueState
instance GitHub.Data.Options.HasState GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasDirection GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasCreatedUpdated GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasComments GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasLabels GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasSince GitHub.Data.Options.IssueRepoMod
instance GHC.Base.Semigroup GitHub.Data.Options.IssueRepoMod
instance GHC.Base.Monoid GitHub.Data.Options.IssueRepoMod
instance GitHub.Data.Options.HasSince GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasLabels GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasComments GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasState GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasDirection GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasCreatedUpdated GitHub.Data.Options.IssueMod
instance GHC.Base.Semigroup GitHub.Data.Options.IssueMod
instance GHC.Base.Monoid GitHub.Data.Options.IssueMod
instance GitHub.Data.Options.HasState GitHub.Data.Options.PullRequestMod
instance GitHub.Data.Options.HasDirection GitHub.Data.Options.PullRequestMod
instance GitHub.Data.Options.HasCreatedUpdated GitHub.Data.Options.PullRequestMod
instance GHC.Base.Semigroup GitHub.Data.Options.PullRequestMod
instance GHC.Base.Monoid GitHub.Data.Options.PullRequestMod
instance Control.DeepSeq.NFData GitHub.Data.Options.SortIssue
instance Data.Binary.Class.Binary GitHub.Data.Options.SortIssue
instance Control.DeepSeq.NFData GitHub.Data.Options.IssueFilter
instance Data.Binary.Class.Binary GitHub.Data.Options.IssueFilter
instance Control.DeepSeq.NFData GitHub.Data.Options.SortPR
instance Data.Binary.Class.Binary GitHub.Data.Options.SortPR
instance Control.DeepSeq.NFData GitHub.Data.Options.SortDirection
instance Data.Binary.Class.Binary GitHub.Data.Options.SortDirection
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Options.MergeableState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Options.MergeableState
instance Control.DeepSeq.NFData GitHub.Data.Options.MergeableState
instance Data.Binary.Class.Binary GitHub.Data.Options.MergeableState
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Options.IssueState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Options.IssueState
instance Control.DeepSeq.NFData GitHub.Data.Options.IssueState
instance Data.Binary.Class.Binary GitHub.Data.Options.IssueState


module GitHub.Data.PullRequests
data SimplePullRequest
SimplePullRequest :: !Maybe UTCTime -> !UTCTime -> !SimpleUser -> !URL -> !IssueState -> !IssueNumber -> !URL -> !UTCTime -> !Maybe Text -> Vector SimpleUser -> Vector SimpleUser -> !URL -> !URL -> !URL -> !PullRequestLinks -> !Maybe UTCTime -> !Text -> !Id PullRequest -> SimplePullRequest
[simplePullRequestClosedAt] :: SimplePullRequest -> !Maybe UTCTime
[simplePullRequestCreatedAt] :: SimplePullRequest -> !UTCTime
[simplePullRequestUser] :: SimplePullRequest -> !SimpleUser
[simplePullRequestPatchUrl] :: SimplePullRequest -> !URL
[simplePullRequestState] :: SimplePullRequest -> !IssueState
[simplePullRequestNumber] :: SimplePullRequest -> !IssueNumber
[simplePullRequestHtmlUrl] :: SimplePullRequest -> !URL
[simplePullRequestUpdatedAt] :: SimplePullRequest -> !UTCTime
[simplePullRequestBody] :: SimplePullRequest -> !Maybe Text
[simplePullRequestAssignees] :: SimplePullRequest -> Vector SimpleUser
[simplePullRequestRequestedReviewers] :: SimplePullRequest -> Vector SimpleUser
[simplePullRequestIssueUrl] :: SimplePullRequest -> !URL
[simplePullRequestDiffUrl] :: SimplePullRequest -> !URL
[simplePullRequestUrl] :: SimplePullRequest -> !URL
[simplePullRequestLinks] :: SimplePullRequest -> !PullRequestLinks
[simplePullRequestMergedAt] :: SimplePullRequest -> !Maybe UTCTime
[simplePullRequestTitle] :: SimplePullRequest -> !Text
[simplePullRequestId] :: SimplePullRequest -> !Id PullRequest
data PullRequest
PullRequest :: !Maybe UTCTime -> !UTCTime -> !SimpleUser -> !URL -> !IssueState -> !IssueNumber -> !URL -> !UTCTime -> !Maybe Text -> Vector SimpleUser -> Vector SimpleUser -> !URL -> !URL -> !URL -> !PullRequestLinks -> !Maybe UTCTime -> !Text -> !Id PullRequest -> !Maybe SimpleUser -> !Int -> !PullRequestCommit -> !Count -> !Count -> !Count -> !Count -> !PullRequestCommit -> !Count -> !Bool -> !Maybe Bool -> !MergeableState -> PullRequest
[pullRequestClosedAt] :: PullRequest -> !Maybe UTCTime
[pullRequestCreatedAt] :: PullRequest -> !UTCTime
[pullRequestUser] :: PullRequest -> !SimpleUser
[pullRequestPatchUrl] :: PullRequest -> !URL
[pullRequestState] :: PullRequest -> !IssueState
[pullRequestNumber] :: PullRequest -> !IssueNumber
[pullRequestHtmlUrl] :: PullRequest -> !URL
[pullRequestUpdatedAt] :: PullRequest -> !UTCTime
[pullRequestBody] :: PullRequest -> !Maybe Text
[pullRequestAssignees] :: PullRequest -> Vector SimpleUser
[pullRequestRequestedReviewers] :: PullRequest -> Vector SimpleUser
[pullRequestIssueUrl] :: PullRequest -> !URL
[pullRequestDiffUrl] :: PullRequest -> !URL
[pullRequestUrl] :: PullRequest -> !URL
[pullRequestLinks] :: PullRequest -> !PullRequestLinks
[pullRequestMergedAt] :: PullRequest -> !Maybe UTCTime
[pullRequestTitle] :: PullRequest -> !Text
[pullRequestId] :: PullRequest -> !Id PullRequest
[pullRequestMergedBy] :: PullRequest -> !Maybe SimpleUser
[pullRequestChangedFiles] :: PullRequest -> !Int
[pullRequestHead] :: PullRequest -> !PullRequestCommit
[pullRequestComments] :: PullRequest -> !Count
[pullRequestDeletions] :: PullRequest -> !Count
[pullRequestAdditions] :: PullRequest -> !Count
[pullRequestReviewComments] :: PullRequest -> !Count
[pullRequestBase] :: PullRequest -> !PullRequestCommit
[pullRequestCommits] :: PullRequest -> !Count
[pullRequestMerged] :: PullRequest -> !Bool
[pullRequestMergeable] :: PullRequest -> !Maybe Bool
[pullRequestMergeableState] :: PullRequest -> !MergeableState
data EditPullRequest
EditPullRequest :: !Maybe Text -> !Maybe Text -> !Maybe IssueState -> !Maybe Text -> !Maybe Bool -> EditPullRequest
[editPullRequestTitle] :: EditPullRequest -> !Maybe Text
[editPullRequestBody] :: EditPullRequest -> !Maybe Text
[editPullRequestState] :: EditPullRequest -> !Maybe IssueState
[editPullRequestBase] :: EditPullRequest -> !Maybe Text
[editPullRequestMaintainerCanModify] :: EditPullRequest -> !Maybe Bool
data CreatePullRequest
CreatePullRequest :: !Text -> !Text -> !Text -> !Text -> CreatePullRequest
[createPullRequestTitle] :: CreatePullRequest -> !Text
[createPullRequestBody] :: CreatePullRequest -> !Text
[createPullRequestHead] :: CreatePullRequest -> !Text
[createPullRequestBase] :: CreatePullRequest -> !Text
CreatePullRequestIssue :: !Int -> !Text -> !Text -> CreatePullRequest
[createPullRequestIssueNum] :: CreatePullRequest -> !Int
[createPullRequestHead] :: CreatePullRequest -> !Text
[createPullRequestBase] :: CreatePullRequest -> !Text
data PullRequestLinks
PullRequestLinks :: !URL -> !URL -> !URL -> !URL -> PullRequestLinks
[pullRequestLinksReviewComments] :: PullRequestLinks -> !URL
[pullRequestLinksComments] :: PullRequestLinks -> !URL
[pullRequestLinksHtml] :: PullRequestLinks -> !URL
[pullRequestLinksSelf] :: PullRequestLinks -> !URL
data PullRequestCommit
PullRequestCommit :: !Text -> !Text -> !Text -> !SimpleUser -> !Maybe Repo -> PullRequestCommit
[pullRequestCommitLabel] :: PullRequestCommit -> !Text
[pullRequestCommitRef] :: PullRequestCommit -> !Text
[pullRequestCommitSha] :: PullRequestCommit -> !Text
[pullRequestCommitUser] :: PullRequestCommit -> !SimpleUser
[pullRequestCommitRepo] :: PullRequestCommit -> !Maybe Repo
data PullRequestEvent
PullRequestEvent :: !PullRequestEventType -> !Int -> !PullRequest -> !Repo -> !SimpleUser -> PullRequestEvent
[pullRequestEventAction] :: PullRequestEvent -> !PullRequestEventType
[pullRequestEventNumber] :: PullRequestEvent -> !Int
[pullRequestEventPullRequest] :: PullRequestEvent -> !PullRequest
[pullRequestRepository] :: PullRequestEvent -> !Repo
[pullRequestSender] :: PullRequestEvent -> !SimpleUser
data PullRequestEventType
PullRequestOpened :: PullRequestEventType
PullRequestClosed :: PullRequestEventType
PullRequestSynchronized :: PullRequestEventType
PullRequestReopened :: PullRequestEventType
PullRequestAssigned :: PullRequestEventType
PullRequestUnassigned :: PullRequestEventType
PullRequestLabeled :: PullRequestEventType
PullRequestUnlabeled :: PullRequestEventType
PullRequestReviewRequested :: PullRequestEventType
PullRequestReviewRequestRemoved :: PullRequestEventType
PullRequestEdited :: PullRequestEventType
data PullRequestReference
PullRequestReference :: !Maybe URL -> !Maybe URL -> !Maybe URL -> PullRequestReference
[pullRequestReferenceHtmlUrl] :: PullRequestReference -> !Maybe URL
[pullRequestReferencePatchUrl] :: PullRequestReference -> !Maybe URL
[pullRequestReferenceDiffUrl] :: PullRequestReference -> !Maybe URL

-- | Pull request merge results
data MergeResult
MergeSuccessful :: MergeResult
MergeCannotPerform :: MergeResult
MergeConflict :: MergeResult
instance GHC.Generics.Generic GitHub.Data.PullRequests.MergeResult
instance GHC.Enum.Bounded GitHub.Data.PullRequests.MergeResult
instance GHC.Enum.Enum GitHub.Data.PullRequests.MergeResult
instance GHC.Show.Show GitHub.Data.PullRequests.MergeResult
instance GHC.Read.Read GitHub.Data.PullRequests.MergeResult
instance GHC.Classes.Ord GitHub.Data.PullRequests.MergeResult
instance GHC.Classes.Eq GitHub.Data.PullRequests.MergeResult
instance Data.Data.Data GitHub.Data.PullRequests.PullRequestReference
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequestReference
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequestReference
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequestReference
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequestReference
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequestEvent
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequestEvent
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequestEvent
instance Data.Data.Data GitHub.Data.PullRequests.PullRequestEvent
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequestEvent
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequestEventType
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequestEventType
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequestEventType
instance Data.Data.Data GitHub.Data.PullRequests.PullRequestEventType
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequestEventType
instance GHC.Generics.Generic GitHub.Data.PullRequests.SimplePullRequest
instance GHC.Classes.Ord GitHub.Data.PullRequests.SimplePullRequest
instance GHC.Classes.Eq GitHub.Data.PullRequests.SimplePullRequest
instance Data.Data.Data GitHub.Data.PullRequests.SimplePullRequest
instance GHC.Show.Show GitHub.Data.PullRequests.SimplePullRequest
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequest
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequest
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequest
instance Data.Data.Data GitHub.Data.PullRequests.PullRequest
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequest
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequestCommit
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequestCommit
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequestCommit
instance Data.Data.Data GitHub.Data.PullRequests.PullRequestCommit
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequestCommit
instance GHC.Generics.Generic GitHub.Data.PullRequests.PullRequestLinks
instance GHC.Classes.Ord GitHub.Data.PullRequests.PullRequestLinks
instance GHC.Classes.Eq GitHub.Data.PullRequests.PullRequestLinks
instance Data.Data.Data GitHub.Data.PullRequests.PullRequestLinks
instance GHC.Show.Show GitHub.Data.PullRequests.PullRequestLinks
instance GHC.Generics.Generic GitHub.Data.PullRequests.CreatePullRequest
instance GHC.Show.Show GitHub.Data.PullRequests.CreatePullRequest
instance GHC.Generics.Generic GitHub.Data.PullRequests.EditPullRequest
instance GHC.Show.Show GitHub.Data.PullRequests.EditPullRequest
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequestLinks
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (GitHub.Data.PullRequests.Href a)
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequestReference
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequestReference
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequestReference
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequestEvent
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequestEvent
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequestEvent
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequestEventType
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequestEventType
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequestEventType
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.SimplePullRequest
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.SimplePullRequest
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.SimplePullRequest
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequest
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequest
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequest
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequestCommit
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequestCommit
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.PullRequests.PullRequestCommit
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.PullRequestLinks
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.PullRequestLinks
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.CreatePullRequest
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.CreatePullRequest
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.PullRequests.CreatePullRequest
instance Control.DeepSeq.NFData GitHub.Data.PullRequests.EditPullRequest
instance Data.Binary.Class.Binary GitHub.Data.PullRequests.EditPullRequest
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.PullRequests.EditPullRequest


module GitHub.Data.Issues
data Issue
Issue :: !Maybe UTCTime -> !UTCTime -> !URL -> !Maybe URL -> !Maybe SimpleUser -> !Vector IssueLabel -> !IssueNumber -> !Vector SimpleUser -> !SimpleUser -> !Text -> !Maybe PullRequestReference -> !URL -> !UTCTime -> !Maybe Text -> !IssueState -> !Id Issue -> !Int -> !Maybe Milestone -> Issue
[issueClosedAt] :: Issue -> !Maybe UTCTime
[issueUpdatedAt] :: Issue -> !UTCTime
[issueEventsUrl] :: Issue -> !URL
[issueHtmlUrl] :: Issue -> !Maybe URL
[issueClosedBy] :: Issue -> !Maybe SimpleUser
[issueLabels] :: Issue -> !Vector IssueLabel
[issueNumber] :: Issue -> !IssueNumber
[issueAssignees] :: Issue -> !Vector SimpleUser
[issueUser] :: Issue -> !SimpleUser
[issueTitle] :: Issue -> !Text
[issuePullRequest] :: Issue -> !Maybe PullRequestReference
[issueUrl] :: Issue -> !URL
[issueCreatedAt] :: Issue -> !UTCTime
[issueBody] :: Issue -> !Maybe Text
[issueState] :: Issue -> !IssueState
[issueId] :: Issue -> !Id Issue
[issueComments] :: Issue -> !Int
[issueMilestone] :: Issue -> !Maybe Milestone
data NewIssue
NewIssue :: !Text -> !Maybe Text -> !Vector (Name User) -> !Maybe (Id Milestone) -> !Maybe (Vector (Name IssueLabel)) -> NewIssue
[newIssueTitle] :: NewIssue -> !Text
[newIssueBody] :: NewIssue -> !Maybe Text
[newIssueAssignees] :: NewIssue -> !Vector (Name User)
[newIssueMilestone] :: NewIssue -> !Maybe (Id Milestone)
[newIssueLabels] :: NewIssue -> !Maybe (Vector (Name IssueLabel))
data EditIssue
EditIssue :: !Maybe Text -> !Maybe Text -> !Maybe (Vector (Name User)) -> !Maybe IssueState -> !Maybe (Id Milestone) -> !Maybe (Vector (Name IssueLabel)) -> EditIssue
[editIssueTitle] :: EditIssue -> !Maybe Text
[editIssueBody] :: EditIssue -> !Maybe Text
[editIssueAssignees] :: EditIssue -> !Maybe (Vector (Name User))
[editIssueState] :: EditIssue -> !Maybe IssueState
[editIssueMilestone] :: EditIssue -> !Maybe (Id Milestone)
[editIssueLabels] :: EditIssue -> !Maybe (Vector (Name IssueLabel))
data IssueComment
IssueComment :: !UTCTime -> !SimpleUser -> !URL -> !URL -> !UTCTime -> !Text -> !Int -> IssueComment
[issueCommentUpdatedAt] :: IssueComment -> !UTCTime
[issueCommentUser] :: IssueComment -> !SimpleUser
[issueCommentUrl] :: IssueComment -> !URL
[issueCommentHtmlUrl] :: IssueComment -> !URL
[issueCommentCreatedAt] :: IssueComment -> !UTCTime
[issueCommentBody] :: IssueComment -> !Text
[issueCommentId] :: IssueComment -> !Int

-- | See <a>https://developer.github.com/v3/issues/events/#events-1</a>
data EventType

-- | The actor was @mentioned in an issue body.
Mentioned :: EventType

-- | The actor subscribed to receive notifications for an issue.
Subscribed :: EventType

-- | The issue was unsubscribed from by the actor.
Unsubscribed :: EventType

-- | The issue was referenced from a commit message. The commit_id
--   attribute is the commit SHA1 of where that happened.
Referenced :: EventType

-- | The issue was merged by the actor. The commit_id attribute is the SHA1
--   of the HEAD commit that was merged.
Merged :: EventType

-- | The issue was assigned to the actor.
Assigned :: EventType

-- | The issue was closed by the actor. When the commit_id is present, it
--   identifies the commit that closed the issue using “closes / fixes #NN”
--   syntax.
Closed :: EventType

-- | The issue was reopened by the actor.
Reopened :: EventType

-- | The issue was unassigned to the actor
ActorUnassigned :: EventType

-- | A label was added to the issue.
Labeled :: EventType

-- | A label was removed from the issue.
Unlabeled :: EventType

-- | The issue was added to a milestone.
Milestoned :: EventType

-- | The issue was removed from a milestone.
Demilestoned :: EventType

-- | The issue title was changed.
Renamed :: EventType

-- | The issue was locked by the actor.
Locked :: EventType

-- | The issue was unlocked by the actor.
Unlocked :: EventType

-- | The pull request’s branch was deleted.
HeadRefDeleted :: EventType

-- | The pull request’s branch was restored.
HeadRefRestored :: EventType

-- | The actor requested review from the subject on this pull request.
ReviewRequested :: EventType

-- | The actor dismissed a review from the pull request.
ReviewDismissed :: EventType

-- | The actor removed the review request for the subject on this pull
--   request.
ReviewRequestRemoved :: EventType

-- | A user with write permissions marked an issue as a duplicate of
--   another issue or a pull request as a duplicate of another pull
--   request.
MarkedAsDuplicate :: EventType

-- | An issue that a user had previously marked as a duplicate of another
--   issue is no longer considered a duplicate, or a pull request that a
--   user had previously marked as a duplicate of another pull request is
--   no longer considered a duplicate.
UnmarkedAsDuplicate :: EventType

-- | The issue was added to a project board.
AddedToProject :: EventType

-- | The issue was moved between columns in a project board.
MovedColumnsInProject :: EventType

-- | The issue was removed from a project board.
RemovedFromProject :: EventType

-- | The issue was created by converting a note in a project board to an
--   issue.
ConvertedNoteToIssue :: EventType

-- | Issue event
data IssueEvent
IssueEvent :: !SimpleUser -> !EventType -> !Maybe Text -> !URL -> !UTCTime -> !Int -> !Maybe Issue -> !Maybe IssueLabel -> IssueEvent
[issueEventActor] :: IssueEvent -> !SimpleUser
[issueEventType] :: IssueEvent -> !EventType
[issueEventCommitId] :: IssueEvent -> !Maybe Text
[issueEventUrl] :: IssueEvent -> !URL
[issueEventCreatedAt] :: IssueEvent -> !UTCTime
[issueEventId] :: IssueEvent -> !Int
[issueEventIssue] :: IssueEvent -> !Maybe Issue
[issueEventLabel] :: IssueEvent -> !Maybe IssueLabel
instance GHC.Generics.Generic GitHub.Data.Issues.IssueEvent
instance GHC.Classes.Ord GitHub.Data.Issues.IssueEvent
instance GHC.Classes.Eq GitHub.Data.Issues.IssueEvent
instance Data.Data.Data GitHub.Data.Issues.IssueEvent
instance GHC.Show.Show GitHub.Data.Issues.IssueEvent
instance GHC.Generics.Generic GitHub.Data.Issues.EventType
instance GHC.Classes.Ord GitHub.Data.Issues.EventType
instance GHC.Classes.Eq GitHub.Data.Issues.EventType
instance GHC.Enum.Bounded GitHub.Data.Issues.EventType
instance GHC.Enum.Enum GitHub.Data.Issues.EventType
instance Data.Data.Data GitHub.Data.Issues.EventType
instance GHC.Show.Show GitHub.Data.Issues.EventType
instance GHC.Generics.Generic GitHub.Data.Issues.IssueComment
instance GHC.Classes.Ord GitHub.Data.Issues.IssueComment
instance GHC.Classes.Eq GitHub.Data.Issues.IssueComment
instance Data.Data.Data GitHub.Data.Issues.IssueComment
instance GHC.Show.Show GitHub.Data.Issues.IssueComment
instance GHC.Generics.Generic GitHub.Data.Issues.EditIssue
instance GHC.Classes.Ord GitHub.Data.Issues.EditIssue
instance GHC.Classes.Eq GitHub.Data.Issues.EditIssue
instance Data.Data.Data GitHub.Data.Issues.EditIssue
instance GHC.Show.Show GitHub.Data.Issues.EditIssue
instance GHC.Generics.Generic GitHub.Data.Issues.NewIssue
instance GHC.Classes.Ord GitHub.Data.Issues.NewIssue
instance GHC.Classes.Eq GitHub.Data.Issues.NewIssue
instance Data.Data.Data GitHub.Data.Issues.NewIssue
instance GHC.Show.Show GitHub.Data.Issues.NewIssue
instance GHC.Generics.Generic GitHub.Data.Issues.Issue
instance GHC.Classes.Ord GitHub.Data.Issues.Issue
instance GHC.Classes.Eq GitHub.Data.Issues.Issue
instance Data.Data.Data GitHub.Data.Issues.Issue
instance GHC.Show.Show GitHub.Data.Issues.Issue
instance Control.DeepSeq.NFData GitHub.Data.Issues.IssueEvent
instance Data.Binary.Class.Binary GitHub.Data.Issues.IssueEvent
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Issues.IssueEvent
instance Control.DeepSeq.NFData GitHub.Data.Issues.EventType
instance Data.Binary.Class.Binary GitHub.Data.Issues.EventType
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Issues.EventType
instance Control.DeepSeq.NFData GitHub.Data.Issues.IssueComment
instance Data.Binary.Class.Binary GitHub.Data.Issues.IssueComment
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Issues.IssueComment
instance Control.DeepSeq.NFData GitHub.Data.Issues.EditIssue
instance Data.Binary.Class.Binary GitHub.Data.Issues.EditIssue
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Issues.EditIssue
instance Control.DeepSeq.NFData GitHub.Data.Issues.NewIssue
instance Data.Binary.Class.Binary GitHub.Data.Issues.NewIssue
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Issues.NewIssue
instance Control.DeepSeq.NFData GitHub.Data.Issues.Issue
instance Data.Binary.Class.Binary GitHub.Data.Issues.Issue
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Issues.Issue


module GitHub.Data.Invitation
data Invitation
Invitation :: !Id Invitation -> !Maybe (Name User) -> !Maybe Text -> !InvitationRole -> !UTCTime -> !SimpleUser -> Invitation
[invitationId] :: Invitation -> !Id Invitation
[invitationLogin] :: Invitation -> !Maybe (Name User)
[invitationEmail] :: Invitation -> !Maybe Text
[invitationRole] :: Invitation -> !InvitationRole
[invitationCreatedAt] :: Invitation -> !UTCTime
[inviter] :: Invitation -> !SimpleUser
data InvitationRole
InvitationRoleDirectMember :: InvitationRole
InvitationRoleAdmin :: InvitationRole
InvitationRoleBillingManager :: InvitationRole
InvitationRoleHiringManager :: InvitationRole
InvitationRoleReinstate :: InvitationRole
data RepoInvitation
RepoInvitation :: !Id RepoInvitation -> !SimpleUser -> !SimpleUser -> !Repo -> !URL -> !UTCTime -> !Text -> !URL -> RepoInvitation
[repoInvitationId] :: RepoInvitation -> !Id RepoInvitation
[repoInvitationInvitee] :: RepoInvitation -> !SimpleUser
[repoInvitationInviter] :: RepoInvitation -> !SimpleUser
[repoInvitationRepo] :: RepoInvitation -> !Repo
[repoInvitationUrl] :: RepoInvitation -> !URL
[repoInvitationCreatedAt] :: RepoInvitation -> !UTCTime
[repoInvitationPermission] :: RepoInvitation -> !Text
[repoInvitationHtmlUrl] :: RepoInvitation -> !URL
instance GHC.Generics.Generic GitHub.Data.Invitation.RepoInvitation
instance GHC.Classes.Ord GitHub.Data.Invitation.RepoInvitation
instance GHC.Classes.Eq GitHub.Data.Invitation.RepoInvitation
instance Data.Data.Data GitHub.Data.Invitation.RepoInvitation
instance GHC.Show.Show GitHub.Data.Invitation.RepoInvitation
instance GHC.Generics.Generic GitHub.Data.Invitation.Invitation
instance GHC.Classes.Ord GitHub.Data.Invitation.Invitation
instance GHC.Classes.Eq GitHub.Data.Invitation.Invitation
instance Data.Data.Data GitHub.Data.Invitation.Invitation
instance GHC.Show.Show GitHub.Data.Invitation.Invitation
instance Data.Data.Data GitHub.Data.Invitation.InvitationRole
instance GHC.Generics.Generic GitHub.Data.Invitation.InvitationRole
instance GHC.Enum.Bounded GitHub.Data.Invitation.InvitationRole
instance GHC.Enum.Enum GitHub.Data.Invitation.InvitationRole
instance GHC.Show.Show GitHub.Data.Invitation.InvitationRole
instance GHC.Classes.Ord GitHub.Data.Invitation.InvitationRole
instance GHC.Classes.Eq GitHub.Data.Invitation.InvitationRole
instance Control.DeepSeq.NFData GitHub.Data.Invitation.RepoInvitation
instance Data.Binary.Class.Binary GitHub.Data.Invitation.RepoInvitation
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Invitation.RepoInvitation
instance Control.DeepSeq.NFData GitHub.Data.Invitation.Invitation
instance Data.Binary.Class.Binary GitHub.Data.Invitation.Invitation
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Invitation.Invitation
instance Control.DeepSeq.NFData GitHub.Data.Invitation.InvitationRole
instance Data.Binary.Class.Binary GitHub.Data.Invitation.InvitationRole
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Invitation.InvitationRole


module GitHub.Data.GitData

-- | The options for querying commits.
data CommitQueryOption
CommitQuerySha :: !Text -> CommitQueryOption
CommitQueryPath :: !Text -> CommitQueryOption
CommitQueryAuthor :: !Text -> CommitQueryOption
CommitQuerySince :: !UTCTime -> CommitQueryOption
CommitQueryUntil :: !UTCTime -> CommitQueryOption
data Stats
Stats :: !Int -> !Int -> !Int -> Stats
[statsAdditions] :: Stats -> !Int
[statsTotal] :: Stats -> !Int
[statsDeletions] :: Stats -> !Int
data Commit
Commit :: !Name Commit -> !Vector Tree -> !URL -> !GitCommit -> !Maybe SimpleUser -> !Maybe SimpleUser -> !Vector File -> !Maybe Stats -> Commit
[commitSha] :: Commit -> !Name Commit
[commitParents] :: Commit -> !Vector Tree
[commitUrl] :: Commit -> !URL
[commitGitCommit] :: Commit -> !GitCommit
[commitCommitter] :: Commit -> !Maybe SimpleUser
[commitAuthor] :: Commit -> !Maybe SimpleUser
[commitFiles] :: Commit -> !Vector File
[commitStats] :: Commit -> !Maybe Stats
data Tree
Tree :: !Name Tree -> !URL -> !Vector GitTree -> Tree
[treeSha] :: Tree -> !Name Tree
[treeUrl] :: Tree -> !URL
[treeGitTrees] :: Tree -> !Vector GitTree
data GitTree
GitTree :: !Text -> !Name GitTree -> !Maybe URL -> !Maybe Int -> !Text -> !Text -> GitTree
[gitTreeType] :: GitTree -> !Text
[gitTreeSha] :: GitTree -> !Name GitTree
[gitTreeUrl] :: GitTree -> !Maybe URL
[gitTreeSize] :: GitTree -> !Maybe Int
[gitTreePath] :: GitTree -> !Text
[gitTreeMode] :: GitTree -> !Text
data GitCommit
GitCommit :: !Text -> !URL -> !GitUser -> !GitUser -> !Tree -> !Maybe (Name GitCommit) -> !Vector Tree -> GitCommit
[gitCommitMessage] :: GitCommit -> !Text
[gitCommitUrl] :: GitCommit -> !URL
[gitCommitCommitter] :: GitCommit -> !GitUser
[gitCommitAuthor] :: GitCommit -> !GitUser
[gitCommitTree] :: GitCommit -> !Tree
[gitCommitSha] :: GitCommit -> !Maybe (Name GitCommit)
[gitCommitParents] :: GitCommit -> !Vector Tree
data Blob
Blob :: !URL -> !Text -> !Text -> !Name Blob -> !Int -> Blob
[blobUrl] :: Blob -> !URL
[blobEncoding] :: Blob -> !Text
[blobContent] :: Blob -> !Text
[blobSha] :: Blob -> !Name Blob
[blobSize] :: Blob -> !Int
data Tag
Tag :: !Text -> !URL -> !URL -> !BranchCommit -> Tag
[tagName] :: Tag -> !Text
[tagZipballUrl] :: Tag -> !URL
[tagTarballUrl] :: Tag -> !URL
[tagCommit] :: Tag -> !BranchCommit
data Branch
Branch :: !Text -> !BranchCommit -> Branch
[branchName] :: Branch -> !Text
[branchCommit] :: Branch -> !BranchCommit
data BranchCommit
BranchCommit :: !Text -> !URL -> BranchCommit
[branchCommitSha] :: BranchCommit -> !Text
[branchCommitUrl] :: BranchCommit -> !URL
data Diff
Diff :: !Text -> !Int -> !URL -> !URL -> !Commit -> !Vector Commit -> !Int -> !URL -> !Vector File -> !Int -> !URL -> !URL -> Diff
[diffStatus] :: Diff -> !Text
[diffBehindBy] :: Diff -> !Int
[diffPatchUrl] :: Diff -> !URL
[diffUrl] :: Diff -> !URL
[diffBaseCommit] :: Diff -> !Commit
[diffCommits] :: Diff -> !Vector Commit
[diffTotalCommits] :: Diff -> !Int
[diffHtmlUrl] :: Diff -> !URL
[diffFiles] :: Diff -> !Vector File
[diffAheadBy] :: Diff -> !Int
[diffDiffUrl] :: Diff -> !URL
[diffPermalinkUrl] :: Diff -> !URL
data NewGitReference
NewGitReference :: !Text -> !Text -> NewGitReference
[newGitReferenceRef] :: NewGitReference -> !Text
[newGitReferenceSha] :: NewGitReference -> !Text
data GitReference
GitReference :: !GitObject -> !URL -> !Text -> GitReference
[gitReferenceObject] :: GitReference -> !GitObject
[gitReferenceUrl] :: GitReference -> !URL
[gitReferenceRef] :: GitReference -> !Text
data GitObject
GitObject :: !Text -> !Text -> !URL -> GitObject
[gitObjectType] :: GitObject -> !Text
[gitObjectSha] :: GitObject -> !Text
[gitObjectUrl] :: GitObject -> !URL
data GitUser
GitUser :: !Text -> !Text -> !UTCTime -> GitUser
[gitUserName] :: GitUser -> !Text
[gitUserEmail] :: GitUser -> !Text
[gitUserDate] :: GitUser -> !UTCTime
data File
File :: !Maybe URL -> !Text -> !Maybe URL -> !Int -> !Maybe Text -> !Int -> !Maybe Text -> !Text -> !Int -> File
[fileBlobUrl] :: File -> !Maybe URL
[fileStatus] :: File -> !Text
[fileRawUrl] :: File -> !Maybe URL
[fileAdditions] :: File -> !Int
[fileSha] :: File -> !Maybe Text
[fileChanges] :: File -> !Int
[filePatch] :: File -> !Maybe Text
[fileFilename] :: File -> !Text
[fileDeletions] :: File -> !Int
instance GHC.Generics.Generic GitHub.Data.GitData.Diff
instance GHC.Classes.Ord GitHub.Data.GitData.Diff
instance GHC.Classes.Eq GitHub.Data.GitData.Diff
instance Data.Data.Data GitHub.Data.GitData.Diff
instance GHC.Show.Show GitHub.Data.GitData.Diff
instance GHC.Generics.Generic GitHub.Data.GitData.Commit
instance GHC.Classes.Ord GitHub.Data.GitData.Commit
instance GHC.Classes.Eq GitHub.Data.GitData.Commit
instance Data.Data.Data GitHub.Data.GitData.Commit
instance GHC.Show.Show GitHub.Data.GitData.Commit
instance GHC.Generics.Generic GitHub.Data.GitData.File
instance GHC.Classes.Ord GitHub.Data.GitData.File
instance GHC.Classes.Eq GitHub.Data.GitData.File
instance Data.Data.Data GitHub.Data.GitData.File
instance GHC.Show.Show GitHub.Data.GitData.File
instance GHC.Generics.Generic GitHub.Data.GitData.GitCommit
instance GHC.Classes.Ord GitHub.Data.GitData.GitCommit
instance GHC.Classes.Eq GitHub.Data.GitData.GitCommit
instance Data.Data.Data GitHub.Data.GitData.GitCommit
instance GHC.Show.Show GitHub.Data.GitData.GitCommit
instance GHC.Generics.Generic GitHub.Data.GitData.GitUser
instance GHC.Classes.Ord GitHub.Data.GitData.GitUser
instance GHC.Classes.Eq GitHub.Data.GitData.GitUser
instance Data.Data.Data GitHub.Data.GitData.GitUser
instance GHC.Show.Show GitHub.Data.GitData.GitUser
instance GHC.Generics.Generic GitHub.Data.GitData.GitReference
instance GHC.Classes.Ord GitHub.Data.GitData.GitReference
instance GHC.Classes.Eq GitHub.Data.GitData.GitReference
instance Data.Data.Data GitHub.Data.GitData.GitReference
instance GHC.Show.Show GitHub.Data.GitData.GitReference
instance GHC.Generics.Generic GitHub.Data.GitData.GitObject
instance GHC.Classes.Ord GitHub.Data.GitData.GitObject
instance GHC.Classes.Eq GitHub.Data.GitData.GitObject
instance Data.Data.Data GitHub.Data.GitData.GitObject
instance GHC.Show.Show GitHub.Data.GitData.GitObject
instance GHC.Generics.Generic GitHub.Data.GitData.NewGitReference
instance GHC.Classes.Ord GitHub.Data.GitData.NewGitReference
instance GHC.Classes.Eq GitHub.Data.GitData.NewGitReference
instance Data.Data.Data GitHub.Data.GitData.NewGitReference
instance GHC.Show.Show GitHub.Data.GitData.NewGitReference
instance GHC.Generics.Generic GitHub.Data.GitData.Tag
instance GHC.Classes.Ord GitHub.Data.GitData.Tag
instance GHC.Classes.Eq GitHub.Data.GitData.Tag
instance Data.Data.Data GitHub.Data.GitData.Tag
instance GHC.Show.Show GitHub.Data.GitData.Tag
instance GHC.Generics.Generic GitHub.Data.GitData.Branch
instance GHC.Classes.Ord GitHub.Data.GitData.Branch
instance GHC.Classes.Eq GitHub.Data.GitData.Branch
instance Data.Data.Data GitHub.Data.GitData.Branch
instance GHC.Show.Show GitHub.Data.GitData.Branch
instance GHC.Generics.Generic GitHub.Data.GitData.BranchCommit
instance GHC.Classes.Ord GitHub.Data.GitData.BranchCommit
instance GHC.Classes.Eq GitHub.Data.GitData.BranchCommit
instance Data.Data.Data GitHub.Data.GitData.BranchCommit
instance GHC.Show.Show GitHub.Data.GitData.BranchCommit
instance GHC.Generics.Generic GitHub.Data.GitData.Blob
instance GHC.Classes.Ord GitHub.Data.GitData.Blob
instance GHC.Classes.Eq GitHub.Data.GitData.Blob
instance Data.Data.Data GitHub.Data.GitData.Blob
instance GHC.Show.Show GitHub.Data.GitData.Blob
instance GHC.Generics.Generic GitHub.Data.GitData.Tree
instance GHC.Classes.Ord GitHub.Data.GitData.Tree
instance GHC.Classes.Eq GitHub.Data.GitData.Tree
instance Data.Data.Data GitHub.Data.GitData.Tree
instance GHC.Show.Show GitHub.Data.GitData.Tree
instance GHC.Generics.Generic GitHub.Data.GitData.GitTree
instance GHC.Classes.Ord GitHub.Data.GitData.GitTree
instance GHC.Classes.Eq GitHub.Data.GitData.GitTree
instance Data.Data.Data GitHub.Data.GitData.GitTree
instance GHC.Show.Show GitHub.Data.GitData.GitTree
instance GHC.Generics.Generic GitHub.Data.GitData.Stats
instance GHC.Classes.Ord GitHub.Data.GitData.Stats
instance GHC.Classes.Eq GitHub.Data.GitData.Stats
instance Data.Data.Data GitHub.Data.GitData.Stats
instance GHC.Show.Show GitHub.Data.GitData.Stats
instance Data.Data.Data GitHub.Data.GitData.CommitQueryOption
instance GHC.Generics.Generic GitHub.Data.GitData.CommitQueryOption
instance GHC.Classes.Ord GitHub.Data.GitData.CommitQueryOption
instance GHC.Classes.Eq GitHub.Data.GitData.CommitQueryOption
instance GHC.Show.Show GitHub.Data.GitData.CommitQueryOption
instance Control.DeepSeq.NFData GitHub.Data.GitData.Diff
instance Data.Binary.Class.Binary GitHub.Data.GitData.Diff
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Diff
instance Control.DeepSeq.NFData GitHub.Data.GitData.Commit
instance Data.Binary.Class.Binary GitHub.Data.GitData.Commit
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Commit
instance Control.DeepSeq.NFData GitHub.Data.GitData.File
instance Data.Binary.Class.Binary GitHub.Data.GitData.File
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.File
instance Control.DeepSeq.NFData GitHub.Data.GitData.GitCommit
instance Data.Binary.Class.Binary GitHub.Data.GitData.GitCommit
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.GitCommit
instance Control.DeepSeq.NFData GitHub.Data.GitData.GitUser
instance Data.Binary.Class.Binary GitHub.Data.GitData.GitUser
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.GitUser
instance Control.DeepSeq.NFData GitHub.Data.GitData.GitReference
instance Data.Binary.Class.Binary GitHub.Data.GitData.GitReference
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.GitReference
instance Control.DeepSeq.NFData GitHub.Data.GitData.GitObject
instance Data.Binary.Class.Binary GitHub.Data.GitData.GitObject
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.GitObject
instance Control.DeepSeq.NFData GitHub.Data.GitData.NewGitReference
instance Data.Binary.Class.Binary GitHub.Data.GitData.NewGitReference
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.GitData.NewGitReference
instance Control.DeepSeq.NFData GitHub.Data.GitData.Tag
instance Data.Binary.Class.Binary GitHub.Data.GitData.Tag
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Tag
instance Control.DeepSeq.NFData GitHub.Data.GitData.Branch
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Branch
instance Control.DeepSeq.NFData GitHub.Data.GitData.BranchCommit
instance Data.Binary.Class.Binary GitHub.Data.GitData.BranchCommit
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.BranchCommit
instance Control.DeepSeq.NFData GitHub.Data.GitData.Blob
instance Data.Binary.Class.Binary GitHub.Data.GitData.Blob
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Blob
instance Control.DeepSeq.NFData GitHub.Data.GitData.Tree
instance Data.Binary.Class.Binary GitHub.Data.GitData.Tree
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Tree
instance Control.DeepSeq.NFData GitHub.Data.GitData.GitTree
instance Data.Binary.Class.Binary GitHub.Data.GitData.GitTree
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.GitTree
instance Control.DeepSeq.NFData GitHub.Data.GitData.Stats
instance Data.Binary.Class.Binary GitHub.Data.GitData.Stats
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.GitData.Stats

module GitHub.Data.Statuses
data StatusState
StatusPending :: StatusState
StatusSuccess :: StatusState
StatusError :: StatusState
StatusFailure :: StatusState
data Status
Status :: !UTCTime -> !UTCTime -> !StatusState -> !Maybe URL -> !Maybe Text -> !Id Status -> !URL -> !Maybe Text -> !Maybe SimpleUser -> Status
[statusCreatedAt] :: Status -> !UTCTime
[statusUpdatedAt] :: Status -> !UTCTime
[statusState] :: Status -> !StatusState
[statusTargetUrl] :: Status -> !Maybe URL
[statusDescription] :: Status -> !Maybe Text
[statusId] :: Status -> !Id Status
[statusUrl] :: Status -> !URL
[statusContext] :: Status -> !Maybe Text
[statusCreator] :: Status -> !Maybe SimpleUser
data NewStatus
NewStatus :: !StatusState -> !Maybe URL -> !Maybe Text -> !Maybe Text -> NewStatus
[newStatusState] :: NewStatus -> !StatusState
[newStatusTargetUrl] :: NewStatus -> !Maybe URL
[newStatusDescription] :: NewStatus -> !Maybe Text
[newStatusContext] :: NewStatus -> !Maybe Text
data CombinedStatus
CombinedStatus :: !StatusState -> !Name Commit -> !Int -> !Vector Status -> !RepoRef -> !URL -> !URL -> CombinedStatus
[combinedStatusState] :: CombinedStatus -> !StatusState
[combinedStatusSha] :: CombinedStatus -> !Name Commit
[combinedStatusTotalCount] :: CombinedStatus -> !Int
[combinedStatusStatuses] :: CombinedStatus -> !Vector Status
[combinedStatusRepository] :: CombinedStatus -> !RepoRef
[combinedStatusCommitUrl] :: CombinedStatus -> !URL
[combinedStatusUrl] :: CombinedStatus -> !URL
instance GHC.Generics.Generic GitHub.Data.Statuses.CombinedStatus
instance GHC.Classes.Ord GitHub.Data.Statuses.CombinedStatus
instance GHC.Classes.Eq GitHub.Data.Statuses.CombinedStatus
instance Data.Data.Data GitHub.Data.Statuses.CombinedStatus
instance GHC.Show.Show GitHub.Data.Statuses.CombinedStatus
instance GHC.Generics.Generic GitHub.Data.Statuses.NewStatus
instance GHC.Classes.Ord GitHub.Data.Statuses.NewStatus
instance GHC.Classes.Eq GitHub.Data.Statuses.NewStatus
instance Data.Data.Data GitHub.Data.Statuses.NewStatus
instance GHC.Show.Show GitHub.Data.Statuses.NewStatus
instance GHC.Generics.Generic GitHub.Data.Statuses.Status
instance GHC.Classes.Ord GitHub.Data.Statuses.Status
instance GHC.Classes.Eq GitHub.Data.Statuses.Status
instance Data.Data.Data GitHub.Data.Statuses.Status
instance GHC.Show.Show GitHub.Data.Statuses.Status
instance GHC.Generics.Generic GitHub.Data.Statuses.StatusState
instance GHC.Classes.Ord GitHub.Data.Statuses.StatusState
instance GHC.Classes.Eq GitHub.Data.Statuses.StatusState
instance GHC.Enum.Bounded GitHub.Data.Statuses.StatusState
instance GHC.Enum.Enum GitHub.Data.Statuses.StatusState
instance Data.Data.Data GitHub.Data.Statuses.StatusState
instance GHC.Show.Show GitHub.Data.Statuses.StatusState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Statuses.CombinedStatus
instance Control.DeepSeq.NFData GitHub.Data.Statuses.NewStatus
instance Data.Binary.Class.Binary GitHub.Data.Statuses.NewStatus
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Statuses.NewStatus
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Statuses.Status
instance Control.DeepSeq.NFData GitHub.Data.Statuses.StatusState
instance Data.Binary.Class.Binary GitHub.Data.Statuses.StatusState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Statuses.StatusState
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Statuses.StatusState


module GitHub.Data.Gists
data Gist
Gist :: !SimpleUser -> !URL -> !URL -> !Maybe Text -> !UTCTime -> !Bool -> !Int -> !UTCTime -> !URL -> !Name Gist -> !HashMap Text GistFile -> !URL -> Gist
[gistUser] :: Gist -> !SimpleUser
[gistGitPushUrl] :: Gist -> !URL
[gistUrl] :: Gist -> !URL
[gistDescription] :: Gist -> !Maybe Text
[gistCreatedAt] :: Gist -> !UTCTime
[gistPublic] :: Gist -> !Bool
[gistComments] :: Gist -> !Int
[gistUpdatedAt] :: Gist -> !UTCTime
[gistHtmlUrl] :: Gist -> !URL
[gistId] :: Gist -> !Name Gist
[gistFiles] :: Gist -> !HashMap Text GistFile
[gistGitPullUrl] :: Gist -> !URL
data GistFile
GistFile :: !Text -> !URL -> !Int -> !Maybe Language -> !Text -> !Maybe Text -> GistFile
[gistFileType] :: GistFile -> !Text
[gistFileRawUrl] :: GistFile -> !URL
[gistFileSize] :: GistFile -> !Int
[gistFileLanguage] :: GistFile -> !Maybe Language
[gistFileFilename] :: GistFile -> !Text
[gistFileContent] :: GistFile -> !Maybe Text
data GistComment
GistComment :: !SimpleUser -> !URL -> !UTCTime -> !Text -> !UTCTime -> !Id GistComment -> GistComment
[gistCommentUser] :: GistComment -> !SimpleUser
[gistCommentUrl] :: GistComment -> !URL
[gistCommentCreatedAt] :: GistComment -> !UTCTime
[gistCommentBody] :: GistComment -> !Text
[gistCommentUpdatedAt] :: GistComment -> !UTCTime
[gistCommentId] :: GistComment -> !Id GistComment
instance GHC.Generics.Generic GitHub.Data.Gists.GistComment
instance GHC.Classes.Ord GitHub.Data.Gists.GistComment
instance GHC.Classes.Eq GitHub.Data.Gists.GistComment
instance Data.Data.Data GitHub.Data.Gists.GistComment
instance GHC.Show.Show GitHub.Data.Gists.GistComment
instance GHC.Generics.Generic GitHub.Data.Gists.Gist
instance GHC.Classes.Eq GitHub.Data.Gists.Gist
instance Data.Data.Data GitHub.Data.Gists.Gist
instance GHC.Show.Show GitHub.Data.Gists.Gist
instance GHC.Generics.Generic GitHub.Data.Gists.GistFile
instance GHC.Classes.Eq GitHub.Data.Gists.GistFile
instance Data.Data.Data GitHub.Data.Gists.GistFile
instance GHC.Show.Show GitHub.Data.Gists.GistFile
instance Control.DeepSeq.NFData GitHub.Data.Gists.GistComment
instance Data.Binary.Class.Binary GitHub.Data.Gists.GistComment
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Gists.GistComment
instance Control.DeepSeq.NFData GitHub.Data.Gists.Gist
instance Data.Binary.Class.Binary GitHub.Data.Gists.Gist
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Gists.Gist
instance Control.DeepSeq.NFData GitHub.Data.Gists.GistFile
instance Data.Binary.Class.Binary GitHub.Data.Gists.GistFile
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Gists.GistFile


module GitHub.Data.Events

-- | Events.
--   
--   <i>TODO:</i>
--   
--   <ul>
--   <li>missing repo, org, payload, id</li>
--   </ul>
data Event
Event :: !SimpleUser -> !UTCTime -> !Bool -> Event
[eventActor] :: Event -> !SimpleUser
[eventCreatedAt] :: Event -> !UTCTime
[eventPublic] :: Event -> !Bool
instance GHC.Generics.Generic GitHub.Data.Events.Event
instance GHC.Classes.Ord GitHub.Data.Events.Event
instance GHC.Classes.Eq GitHub.Data.Events.Event
instance Data.Data.Data GitHub.Data.Events.Event
instance GHC.Show.Show GitHub.Data.Events.Event
instance Control.DeepSeq.NFData GitHub.Data.Events.Event
instance Data.Binary.Class.Binary GitHub.Data.Events.Event
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Events.Event

module GitHub.Data.Deployments
data DeploymentQueryOption
DeploymentQuerySha :: !Text -> DeploymentQueryOption
DeploymentQueryRef :: !Text -> DeploymentQueryOption
DeploymentQueryTask :: !Text -> DeploymentQueryOption
DeploymentQueryEnvironment :: !Text -> DeploymentQueryOption
renderDeploymentQueryOption :: DeploymentQueryOption -> (ByteString, ByteString)
data Deployment a
Deployment :: !URL -> !Id (Deployment a) -> !Name (Deployment a) -> !Text -> !Text -> !Maybe a -> !Text -> !Text -> !SimpleUser -> !UTCTime -> !UTCTime -> !URL -> !URL -> Deployment a
[deploymentUrl] :: Deployment a -> !URL
[deploymentId] :: Deployment a -> !Id (Deployment a)
[deploymentSha] :: Deployment a -> !Name (Deployment a)
[deploymentRef] :: Deployment a -> !Text
[deploymentTask] :: Deployment a -> !Text
[deploymentPayload] :: Deployment a -> !Maybe a
[deploymentEnvironment] :: Deployment a -> !Text
[deploymentDescription] :: Deployment a -> !Text
[deploymentCreator] :: Deployment a -> !SimpleUser
[deploymentCreatedAt] :: Deployment a -> !UTCTime
[deploymentUpdatedAt] :: Deployment a -> !UTCTime
[deploymentStatusesUrl] :: Deployment a -> !URL
[deploymentRepositoryUrl] :: Deployment a -> !URL
data CreateDeployment a
CreateDeployment :: !Text -> !Maybe Text -> !Maybe Bool -> !Maybe (Vector Text) -> !Maybe a -> !Maybe Text -> !Maybe Text -> CreateDeployment a

-- | Required. The ref to deploy. This can be a branch, tag, or SHA.
[createDeploymentRef] :: CreateDeployment a -> !Text

-- | Specifies a task to execute (e.g., deploy or deploy:migrations).
--   Default: deploy
[createDeploymentTask] :: CreateDeployment a -> !Maybe Text

-- | Attempts to automatically merge the default branch into the requested
--   ref, if it is behind the default branch. Default: true
[createDeploymentAutoMerge] :: CreateDeployment a -> !Maybe Bool

-- | The status contexts to verify against commit status checks. If this
--   parameter is omitted, then all unique contexts will be verified before
--   a deployment is created. To bypass checking entirely pass an empty
--   array. Defaults to all unique contexts.
[createDeploymentRequiredContexts] :: CreateDeployment a -> !Maybe (Vector Text)

-- | JSON payload with extra information about the deployment. Default: ""
[createDeploymentPayload] :: CreateDeployment a -> !Maybe a

-- | Name for the target deployment environment (e.g., production, staging,
--   qa). Default: production
[createDeploymentEnvironment] :: CreateDeployment a -> !Maybe Text

-- | Short description of the deployment. Default: ""
[createDeploymentDescription] :: CreateDeployment a -> !Maybe Text
data DeploymentStatus
DeploymentStatus :: !URL -> !Id DeploymentStatus -> !DeploymentStatusState -> !SimpleUser -> !Text -> !URL -> !UTCTime -> !UTCTime -> !URL -> !URL -> DeploymentStatus
[deploymentStatusUrl] :: DeploymentStatus -> !URL
[deploymentStatusId] :: DeploymentStatus -> !Id DeploymentStatus
[deploymentStatusState] :: DeploymentStatus -> !DeploymentStatusState
[deploymentStatusCreator] :: DeploymentStatus -> !SimpleUser
[deploymentStatusDescription] :: DeploymentStatus -> !Text
[deploymentStatusTargetUrl] :: DeploymentStatus -> !URL
[deploymentStatusCreatedAt] :: DeploymentStatus -> !UTCTime
[deploymentStatusUpdatedAt] :: DeploymentStatus -> !UTCTime
[deploymentStatusDeploymentUrl] :: DeploymentStatus -> !URL
[deploymentStatusRepositoryUrl] :: DeploymentStatus -> !URL
data DeploymentStatusState
DeploymentStatusError :: DeploymentStatusState
DeploymentStatusFailure :: DeploymentStatusState
DeploymentStatusPending :: DeploymentStatusState
DeploymentStatusSuccess :: DeploymentStatusState
DeploymentStatusInactive :: DeploymentStatusState
data CreateDeploymentStatus
CreateDeploymentStatus :: !DeploymentStatusState -> !Maybe Text -> !Maybe Text -> CreateDeploymentStatus

-- | Required. The state of the status. Can be one of error, failure,
--   pending, or success.
[createDeploymentStatusState] :: CreateDeploymentStatus -> !DeploymentStatusState

-- | The target URL to associate with this status. This URL should contain
--   output to keep the user updated while the task is running or serve as
--   historical information for what happened in the deployment. Default:
--   ""
[createDeploymentStatusTargetUrl] :: CreateDeploymentStatus -> !Maybe Text

-- | A short description of the status. Maximum length of 140 characters.
--   Default: ""
[createDeploymentStatusDescription] :: CreateDeploymentStatus -> !Maybe Text
instance GHC.Generics.Generic GitHub.Data.Deployments.CreateDeploymentStatus
instance GHC.Classes.Ord GitHub.Data.Deployments.CreateDeploymentStatus
instance GHC.Classes.Eq GitHub.Data.Deployments.CreateDeploymentStatus
instance Data.Data.Data GitHub.Data.Deployments.CreateDeploymentStatus
instance GHC.Show.Show GitHub.Data.Deployments.CreateDeploymentStatus
instance GHC.Generics.Generic GitHub.Data.Deployments.DeploymentStatus
instance GHC.Classes.Ord GitHub.Data.Deployments.DeploymentStatus
instance GHC.Classes.Eq GitHub.Data.Deployments.DeploymentStatus
instance Data.Data.Data GitHub.Data.Deployments.DeploymentStatus
instance GHC.Show.Show GitHub.Data.Deployments.DeploymentStatus
instance GHC.Generics.Generic GitHub.Data.Deployments.DeploymentStatusState
instance GHC.Classes.Ord GitHub.Data.Deployments.DeploymentStatusState
instance GHC.Classes.Eq GitHub.Data.Deployments.DeploymentStatusState
instance Data.Data.Data GitHub.Data.Deployments.DeploymentStatusState
instance GHC.Show.Show GitHub.Data.Deployments.DeploymentStatusState
instance GHC.Generics.Generic (GitHub.Data.Deployments.CreateDeployment a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (GitHub.Data.Deployments.CreateDeployment a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (GitHub.Data.Deployments.CreateDeployment a)
instance Data.Data.Data a => Data.Data.Data (GitHub.Data.Deployments.CreateDeployment a)
instance GHC.Show.Show a => GHC.Show.Show (GitHub.Data.Deployments.CreateDeployment a)
instance GHC.Generics.Generic (GitHub.Data.Deployments.Deployment a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (GitHub.Data.Deployments.Deployment a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (GitHub.Data.Deployments.Deployment a)
instance Data.Data.Data a => Data.Data.Data (GitHub.Data.Deployments.Deployment a)
instance GHC.Show.Show a => GHC.Show.Show (GitHub.Data.Deployments.Deployment a)
instance GHC.Generics.Generic GitHub.Data.Deployments.DeploymentQueryOption
instance GHC.Classes.Ord GitHub.Data.Deployments.DeploymentQueryOption
instance GHC.Classes.Eq GitHub.Data.Deployments.DeploymentQueryOption
instance Data.Data.Data GitHub.Data.Deployments.DeploymentQueryOption
instance GHC.Show.Show GitHub.Data.Deployments.DeploymentQueryOption
instance Control.DeepSeq.NFData GitHub.Data.Deployments.CreateDeploymentStatus
instance Data.Binary.Class.Binary GitHub.Data.Deployments.CreateDeploymentStatus
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Deployments.CreateDeploymentStatus
instance Control.DeepSeq.NFData GitHub.Data.Deployments.DeploymentStatus
instance Data.Binary.Class.Binary GitHub.Data.Deployments.DeploymentStatus
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Deployments.DeploymentStatus
instance Control.DeepSeq.NFData GitHub.Data.Deployments.DeploymentStatusState
instance Data.Binary.Class.Binary GitHub.Data.Deployments.DeploymentStatusState
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Deployments.DeploymentStatusState
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Deployments.DeploymentStatusState
instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (GitHub.Data.Deployments.CreateDeployment a)
instance Data.Binary.Class.Binary a => Data.Binary.Class.Binary (GitHub.Data.Deployments.CreateDeployment a)
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (GitHub.Data.Deployments.CreateDeployment a)
instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (GitHub.Data.Deployments.Deployment a)
instance Data.Binary.Class.Binary a => Data.Binary.Class.Binary (GitHub.Data.Deployments.Deployment a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (GitHub.Data.Deployments.Deployment a)
instance Control.DeepSeq.NFData GitHub.Data.Deployments.DeploymentQueryOption
instance Data.Binary.Class.Binary GitHub.Data.Deployments.DeploymentQueryOption


module GitHub.Data.Content
data Content
ContentFile :: !ContentFileData -> Content
ContentDirectory :: !Vector ContentItem -> Content
data ContentFileData
ContentFileData :: !ContentInfo -> !Text -> !Int -> !Text -> ContentFileData
[contentFileInfo] :: ContentFileData -> !ContentInfo
[contentFileEncoding] :: ContentFileData -> !Text
[contentFileSize] :: ContentFileData -> !Int
[contentFileContent] :: ContentFileData -> !Text

-- | An item in a directory listing.
data ContentItem
ContentItem :: !ContentItemType -> !ContentInfo -> ContentItem
[contentItemType] :: ContentItem -> !ContentItemType
[contentItemInfo] :: ContentItem -> !ContentInfo
data ContentItemType
ItemFile :: ContentItemType
ItemDir :: ContentItemType

-- | Information common to both kinds of Content: files and directories.
data ContentInfo
ContentInfo :: !Text -> !Text -> !Text -> !URL -> !URL -> !URL -> ContentInfo
[contentName] :: ContentInfo -> !Text
[contentPath] :: ContentInfo -> !Text
[contentSha] :: ContentInfo -> !Text
[contentUrl] :: ContentInfo -> !URL
[contentGitUrl] :: ContentInfo -> !URL
[contentHtmlUrl] :: ContentInfo -> !URL
data ContentResultInfo
ContentResultInfo :: !ContentInfo -> !Int -> ContentResultInfo
[contentResultInfo] :: ContentResultInfo -> !ContentInfo
[contentResultSize] :: ContentResultInfo -> !Int
data ContentResult
ContentResult :: !ContentResultInfo -> !GitCommit -> ContentResult
[contentResultContent] :: ContentResult -> !ContentResultInfo
[contentResultCommit] :: ContentResult -> !GitCommit
data Author
Author :: !Text -> !Text -> Author
[authorName] :: Author -> !Text
[authorEmail] :: Author -> !Text
data CreateFile
CreateFile :: !Text -> !Text -> !Text -> !Maybe Text -> !Maybe Author -> !Maybe Author -> CreateFile
[createFilePath] :: CreateFile -> !Text
[createFileMessage] :: CreateFile -> !Text
[createFileContent] :: CreateFile -> !Text
[createFileBranch] :: CreateFile -> !Maybe Text
[createFileAuthor] :: CreateFile -> !Maybe Author
[createFileCommitter] :: CreateFile -> !Maybe Author
data UpdateFile
UpdateFile :: !Text -> !Text -> !Text -> !Text -> !Maybe Text -> !Maybe Author -> !Maybe Author -> UpdateFile
[updateFilePath] :: UpdateFile -> !Text
[updateFileMessage] :: UpdateFile -> !Text
[updateFileContent] :: UpdateFile -> !Text
[updateFileSHA] :: UpdateFile -> !Text
[updateFileBranch] :: UpdateFile -> !Maybe Text
[updateFileAuthor] :: UpdateFile -> !Maybe Author
[updateFileCommitter] :: UpdateFile -> !Maybe Author
data DeleteFile
DeleteFile :: !Text -> !Text -> !Text -> !Maybe Text -> !Maybe Author -> !Maybe Author -> DeleteFile
[deleteFilePath] :: DeleteFile -> !Text
[deleteFileMessage] :: DeleteFile -> !Text
[deleteFileSHA] :: DeleteFile -> !Text
[deleteFileBranch] :: DeleteFile -> !Maybe Text
[deleteFileAuthor] :: DeleteFile -> !Maybe Author
[deleteFileCommitter] :: DeleteFile -> !Maybe Author
(.=?) :: ToJSON v => Text -> Maybe v -> [Pair]
instance GHC.Generics.Generic GitHub.Data.Content.DeleteFile
instance Data.Data.Data GitHub.Data.Content.DeleteFile
instance GHC.Show.Show GitHub.Data.Content.DeleteFile
instance GHC.Classes.Ord GitHub.Data.Content.DeleteFile
instance GHC.Classes.Eq GitHub.Data.Content.DeleteFile
instance GHC.Generics.Generic GitHub.Data.Content.UpdateFile
instance Data.Data.Data GitHub.Data.Content.UpdateFile
instance GHC.Show.Show GitHub.Data.Content.UpdateFile
instance GHC.Classes.Ord GitHub.Data.Content.UpdateFile
instance GHC.Classes.Eq GitHub.Data.Content.UpdateFile
instance GHC.Generics.Generic GitHub.Data.Content.CreateFile
instance Data.Data.Data GitHub.Data.Content.CreateFile
instance GHC.Show.Show GitHub.Data.Content.CreateFile
instance GHC.Classes.Ord GitHub.Data.Content.CreateFile
instance GHC.Classes.Eq GitHub.Data.Content.CreateFile
instance GHC.Generics.Generic GitHub.Data.Content.Author
instance Data.Data.Data GitHub.Data.Content.Author
instance GHC.Show.Show GitHub.Data.Content.Author
instance GHC.Classes.Ord GitHub.Data.Content.Author
instance GHC.Classes.Eq GitHub.Data.Content.Author
instance GHC.Generics.Generic GitHub.Data.Content.ContentResult
instance GHC.Classes.Ord GitHub.Data.Content.ContentResult
instance GHC.Classes.Eq GitHub.Data.Content.ContentResult
instance Data.Data.Data GitHub.Data.Content.ContentResult
instance GHC.Show.Show GitHub.Data.Content.ContentResult
instance GHC.Generics.Generic GitHub.Data.Content.ContentResultInfo
instance GHC.Classes.Ord GitHub.Data.Content.ContentResultInfo
instance GHC.Classes.Eq GitHub.Data.Content.ContentResultInfo
instance Data.Data.Data GitHub.Data.Content.ContentResultInfo
instance GHC.Show.Show GitHub.Data.Content.ContentResultInfo
instance GHC.Generics.Generic GitHub.Data.Content.Content
instance GHC.Classes.Ord GitHub.Data.Content.Content
instance GHC.Classes.Eq GitHub.Data.Content.Content
instance Data.Data.Data GitHub.Data.Content.Content
instance GHC.Show.Show GitHub.Data.Content.Content
instance GHC.Generics.Generic GitHub.Data.Content.ContentFileData
instance GHC.Classes.Ord GitHub.Data.Content.ContentFileData
instance GHC.Classes.Eq GitHub.Data.Content.ContentFileData
instance Data.Data.Data GitHub.Data.Content.ContentFileData
instance GHC.Show.Show GitHub.Data.Content.ContentFileData
instance GHC.Generics.Generic GitHub.Data.Content.ContentItem
instance GHC.Classes.Ord GitHub.Data.Content.ContentItem
instance GHC.Classes.Eq GitHub.Data.Content.ContentItem
instance Data.Data.Data GitHub.Data.Content.ContentItem
instance GHC.Show.Show GitHub.Data.Content.ContentItem
instance GHC.Generics.Generic GitHub.Data.Content.ContentInfo
instance GHC.Classes.Ord GitHub.Data.Content.ContentInfo
instance GHC.Classes.Eq GitHub.Data.Content.ContentInfo
instance Data.Data.Data GitHub.Data.Content.ContentInfo
instance GHC.Show.Show GitHub.Data.Content.ContentInfo
instance GHC.Generics.Generic GitHub.Data.Content.ContentItemType
instance GHC.Classes.Ord GitHub.Data.Content.ContentItemType
instance GHC.Classes.Eq GitHub.Data.Content.ContentItemType
instance Data.Data.Data GitHub.Data.Content.ContentItemType
instance GHC.Show.Show GitHub.Data.Content.ContentItemType
instance Control.DeepSeq.NFData GitHub.Data.Content.DeleteFile
instance Data.Binary.Class.Binary GitHub.Data.Content.DeleteFile
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Content.DeleteFile
instance Control.DeepSeq.NFData GitHub.Data.Content.UpdateFile
instance Data.Binary.Class.Binary GitHub.Data.Content.UpdateFile
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Content.UpdateFile
instance Control.DeepSeq.NFData GitHub.Data.Content.CreateFile
instance Data.Binary.Class.Binary GitHub.Data.Content.CreateFile
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Content.CreateFile
instance Control.DeepSeq.NFData GitHub.Data.Content.Author
instance Data.Binary.Class.Binary GitHub.Data.Content.Author
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Content.Author
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentResult
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentResult
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentResult
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentResultInfo
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentResultInfo
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentResultInfo
instance Control.DeepSeq.NFData GitHub.Data.Content.Content
instance Data.Binary.Class.Binary GitHub.Data.Content.Content
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.Content
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentFileData
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentFileData
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentFileData
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentItem
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentItem
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentItem
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentInfo
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentInfo
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentInfo
instance Control.DeepSeq.NFData GitHub.Data.Content.ContentItemType
instance Data.Binary.Class.Binary GitHub.Data.Content.ContentItemType
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Content.ContentItemType


module GitHub.Data.Comments
data Comment
Comment :: !Maybe Int -> !Maybe Int -> !Text -> !Maybe Text -> !UTCTime -> !Maybe URL -> !URL -> !Maybe UTCTime -> !Maybe Text -> !SimpleUser -> !Id Comment -> Comment
[commentPosition] :: Comment -> !Maybe Int
[commentLine] :: Comment -> !Maybe Int
[commentBody] :: Comment -> !Text
[commentCommitId] :: Comment -> !Maybe Text
[commentUpdatedAt] :: Comment -> !UTCTime
[commentHtmlUrl] :: Comment -> !Maybe URL
[commentUrl] :: Comment -> !URL
[commentCreatedAt] :: Comment -> !Maybe UTCTime
[commentPath] :: Comment -> !Maybe Text
[commentUser] :: Comment -> !SimpleUser
[commentId] :: Comment -> !Id Comment
data NewComment
NewComment :: !Text -> NewComment
[newCommentBody] :: NewComment -> !Text
data EditComment
EditComment :: !Text -> EditComment
[editCommentBody] :: EditComment -> !Text
data NewPullComment
NewPullComment :: !Text -> !Text -> !Int -> !Text -> NewPullComment
[newPullCommentCommit] :: NewPullComment -> !Text
[newPullCommentPath] :: NewPullComment -> !Text
[newPullCommentPosition] :: NewPullComment -> !Int
[newPullCommentBody] :: NewPullComment -> !Text
instance GHC.Generics.Generic GitHub.Data.Comments.NewPullComment
instance GHC.Classes.Ord GitHub.Data.Comments.NewPullComment
instance GHC.Classes.Eq GitHub.Data.Comments.NewPullComment
instance Data.Data.Data GitHub.Data.Comments.NewPullComment
instance GHC.Show.Show GitHub.Data.Comments.NewPullComment
instance GHC.Generics.Generic GitHub.Data.Comments.EditComment
instance GHC.Classes.Ord GitHub.Data.Comments.EditComment
instance GHC.Classes.Eq GitHub.Data.Comments.EditComment
instance Data.Data.Data GitHub.Data.Comments.EditComment
instance GHC.Show.Show GitHub.Data.Comments.EditComment
instance GHC.Generics.Generic GitHub.Data.Comments.NewComment
instance GHC.Classes.Ord GitHub.Data.Comments.NewComment
instance GHC.Classes.Eq GitHub.Data.Comments.NewComment
instance Data.Data.Data GitHub.Data.Comments.NewComment
instance GHC.Show.Show GitHub.Data.Comments.NewComment
instance GHC.Generics.Generic GitHub.Data.Comments.Comment
instance GHC.Classes.Ord GitHub.Data.Comments.Comment
instance GHC.Classes.Eq GitHub.Data.Comments.Comment
instance Data.Data.Data GitHub.Data.Comments.Comment
instance GHC.Show.Show GitHub.Data.Comments.Comment
instance Control.DeepSeq.NFData GitHub.Data.Comments.NewPullComment
instance Data.Binary.Class.Binary GitHub.Data.Comments.NewPullComment
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Comments.NewPullComment
instance Control.DeepSeq.NFData GitHub.Data.Comments.EditComment
instance Data.Binary.Class.Binary GitHub.Data.Comments.EditComment
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Comments.EditComment
instance Control.DeepSeq.NFData GitHub.Data.Comments.NewComment
instance Data.Binary.Class.Binary GitHub.Data.Comments.NewComment
instance Data.Aeson.Types.ToJSON.ToJSON GitHub.Data.Comments.NewComment
instance Control.DeepSeq.NFData GitHub.Data.Comments.Comment
instance Data.Binary.Class.Binary GitHub.Data.Comments.Comment
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Comments.Comment


module GitHub.Data.Activities
data RepoStarred
RepoStarred :: !UTCTime -> !Repo -> RepoStarred
[repoStarredStarredAt] :: RepoStarred -> !UTCTime
[repoStarredRepo] :: RepoStarred -> !Repo
data Subject
Subject :: !Text -> !URL -> !Maybe URL -> !Text -> Subject
[subjectTitle] :: Subject -> !Text
[subjectURL] :: Subject -> !URL
[subjectLatestCommentURL] :: Subject -> !Maybe URL
[subjectType] :: Subject -> !Text
data NotificationReason
AssignReason :: NotificationReason
AuthorReason :: NotificationReason
CommentReason :: NotificationReason
InvitationReason :: NotificationReason
ManualReason :: NotificationReason
MentionReason :: NotificationReason
ReviewRequestedReason :: NotificationReason
StateChangeReason :: NotificationReason
SubscribedReason :: NotificationReason
TeamMentionReason :: NotificationReason
data Notification
Notification :: !Id Notification -> !RepoRef -> !Subject -> !NotificationReason -> !Bool -> !Maybe UTCTime -> !Maybe UTCTime -> !URL -> Notification
[notificationId] :: Notification -> !Id Notification
[notificationRepo] :: Notification -> !RepoRef
[notificationSubject] :: Notification -> !Subject
[notificationReason] :: Notification -> !NotificationReason
[notificationUnread] :: Notification -> !Bool
[notificationUpdatedAt] :: Notification -> !Maybe UTCTime
[notificationLastReadAt] :: Notification -> !Maybe UTCTime
[notificationUrl] :: Notification -> !URL
instance GHC.Generics.Generic GitHub.Data.Activities.Notification
instance GHC.Classes.Ord GitHub.Data.Activities.Notification
instance GHC.Classes.Eq GitHub.Data.Activities.Notification
instance Data.Data.Data GitHub.Data.Activities.Notification
instance GHC.Show.Show GitHub.Data.Activities.Notification
instance GHC.Generics.Generic GitHub.Data.Activities.NotificationReason
instance GHC.Classes.Ord GitHub.Data.Activities.NotificationReason
instance GHC.Classes.Eq GitHub.Data.Activities.NotificationReason
instance GHC.Enum.Bounded GitHub.Data.Activities.NotificationReason
instance GHC.Enum.Enum GitHub.Data.Activities.NotificationReason
instance Data.Data.Data GitHub.Data.Activities.NotificationReason
instance GHC.Show.Show GitHub.Data.Activities.NotificationReason
instance GHC.Generics.Generic GitHub.Data.Activities.Subject
instance GHC.Classes.Ord GitHub.Data.Activities.Subject
instance GHC.Classes.Eq GitHub.Data.Activities.Subject
instance Data.Data.Data GitHub.Data.Activities.Subject
instance GHC.Show.Show GitHub.Data.Activities.Subject
instance GHC.Generics.Generic GitHub.Data.Activities.RepoStarred
instance GHC.Classes.Ord GitHub.Data.Activities.RepoStarred
instance GHC.Classes.Eq GitHub.Data.Activities.RepoStarred
instance Data.Data.Data GitHub.Data.Activities.RepoStarred
instance GHC.Show.Show GitHub.Data.Activities.RepoStarred
instance Control.DeepSeq.NFData GitHub.Data.Activities.Notification
instance Data.Binary.Class.Binary GitHub.Data.Activities.Notification
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Activities.Notification
instance Control.DeepSeq.NFData GitHub.Data.Activities.NotificationReason
instance Data.Binary.Class.Binary GitHub.Data.Activities.NotificationReason
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Activities.NotificationReason
instance Control.DeepSeq.NFData GitHub.Data.Activities.Subject
instance Data.Binary.Class.Binary GitHub.Data.Activities.Subject
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Activities.Subject
instance Control.DeepSeq.NFData GitHub.Data.Activities.RepoStarred
instance Data.Binary.Class.Binary GitHub.Data.Activities.RepoStarred
instance Data.Aeson.Types.FromJSON.FromJSON GitHub.Data.Activities.RepoStarred


module GitHub.Auth

-- | The Github auth data type
data Auth

-- | Username and password
BasicAuth :: ByteString -> ByteString -> Auth

-- | OAuth token
OAuth :: Token -> Auth

-- | Custom endpoint and OAuth token
EnterpriseOAuth :: Text -> Token -> Auth

-- | A type class for different authentication methods
class AuthMethod a

-- | Custom API endpoint without trailing slash
endpoint :: AuthMethod a => a -> Maybe Text

-- | A function which sets authorisation on an HTTP request
setAuthRequest :: AuthMethod a => a -> Request -> Request
instance GHC.Generics.Generic GitHub.Auth.Auth
instance GHC.Classes.Ord GitHub.Auth.Auth
instance GHC.Classes.Eq GitHub.Auth.Auth
instance Data.Data.Data GitHub.Auth.Auth
instance GHC.Show.Show GitHub.Auth.Auth
instance GitHub.Auth.AuthMethod GitHub.Auth.Auth
instance Control.DeepSeq.NFData GitHub.Auth.Auth
instance Data.Binary.Class.Binary GitHub.Auth.Auth
instance Data.Hashable.Class.Hashable GitHub.Auth.Auth


-- | This module re-exports the <tt>GitHub.Data.</tt> and
--   <a>GitHub.Auth</a> submodules.
module GitHub.Data
data Name entity

-- | Smart constructor for <a>Name</a>
mkName :: proxy entity -> Text -> Name entity
untagName :: Name entity -> Text
mkOwnerName :: Text -> Name Owner
mkUserName :: Text -> Name User
mkTeamName :: Text -> Name Team
mkOrganizationName :: Text -> Name Organization
mkRepoName :: Text -> Name Repo
mkCommitName :: Text -> Name Commit
fromUserName :: Name User -> Name Owner
fromOrganizationName :: Name Organization -> Name Owner

-- | Numeric identifier.
data Id entity

-- | Smart constructor for <a>Id</a>.
mkId :: proxy entity -> Int -> Id entity
untagId :: Id entity -> Int
mkOwnerId :: Int -> Id Owner
mkUserId :: Int -> Id User
mkTeamId :: Int -> Id Team
mkOrganizationId :: Int -> Id Organization
mkRepoId :: Int -> Id Repo
fromUserId :: Id User -> Id Owner
fromOrganizationId :: Id Organization -> Id Owner
newtype IssueNumber
IssueNumber :: Int -> IssueNumber


-- | The repo invitations API as described on
--   <a>https://developer.github.com/v3/repos/invitations/</a>.
module GitHub.Endpoints.Repos.Invitations

-- | List open invitations of a repository See
--   <a>https://developer.github.com/v3/repos/invitations/#list-invitations-for-a-repository</a>
listInvitationsOnR :: Name Owner -> Name Repo -> FetchCount -> GenRequest 'MtJSON k (Vector RepoInvitation)

-- | List a user's repository invitations See
--   <a>https://developer.github.com/v3/repos/invitations/#list-a-users-repository-invitations</a>
listInvitationsForR :: FetchCount -> Request k (Vector RepoInvitation)

-- | Accept a repository invitation See
--   <a>https://developer.github.com/v3/repos/invitations/#accept-a-repository-invitation</a>
acceptInvitationFromR :: Id RepoInvitation -> GenRequest 'MtUnit 'RW ()


-- | The deployments API, as described at
--   <a>https://developer.github.com/v3/repos/deployments/</a>
module GitHub.Endpoints.Repos.Deployments

-- | List deployments. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployments</a>
deploymentsWithOptionsForR :: FromJSON a => Name Owner -> Name Repo -> FetchCount -> [DeploymentQueryOption] -> Request 'RA (Vector (Deployment a))

-- | Create a deployment. See
--   <a>https://developer.github.com/v3/repos/deployments/#create-a-deployment</a>
createDeploymentR :: (ToJSON a, FromJSON a) => Name Owner -> Name Repo -> CreateDeployment a -> Request 'RW (Deployment a)

-- | List deployment statuses. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployment-statuses</a>
deploymentStatusesForR :: Name Owner -> Name Repo -> Id (Deployment a) -> FetchCount -> Request 'RA (Vector DeploymentStatus)

-- | Create a deployment status. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployment-statuses</a>
createDeploymentStatusR :: Name Owner -> Name Repo -> Id (Deployment a) -> CreateDeploymentStatus -> Request 'RW DeploymentStatus


-- | The events API as described on
--   <a>https://developer.github.com/v3/activity/events/</a>.
module GitHub.Endpoints.Activity.Events

-- | List repository events. See
--   <a>https://developer.github.com/v3/activity/events/#list-repository-events</a>
repositoryEventsR :: Name Owner -> Name Repo -> FetchCount -> Request 'RO (Vector Event)

-- | List user public events. See
--   <a>https://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user</a>
userEventsR :: Name User -> FetchCount -> Request 'RO (Vector Event)


-- | This module provides data types and helper methods, which makes
--   possible to build alternative API request intepreters in addition to
--   provided <a>IO</a> functions.
--   
--   Simple example using <tt>operational</tt> package. See
--   <tt>samples/Operational/Operational.hs</tt>
--   
--   <pre>
--   type GithubMonad a = Program (GH.Request 'False) a
--   
--   -- | Intepret GithubMonad value into IO
--   runMonad :: Manager -&gt; GH.Auth -&gt; GithubMonad a -&gt; ExceptT GH.Error IO a
--   runMonad mgr auth m = case view m of
--      Return a   -&gt; return a
--      req :&gt;&gt;= k -&gt; do
--          b &lt;- ExceptT $ GH.executeRequestWithMgr mgr auth req
--          runMonad mgr auth (k b)
--   
--   -- | Lift request into Monad
--   githubRequest :: GH.Request 'False a -&gt; GithubMonad a
--   githubRequest = singleton
--   </pre>
module GitHub.Request

-- | Most requests ask for <tt>JSON</tt>.
type Request = GenRequest 'MtJSON

-- | Github request data type.
--   
--   <ul>
--   <li><tt>rw</tt> describes whether authentication is required. It's
--   required for non-<tt>GET</tt> requests.</li>
--   <li><tt>mt</tt> describes the media type, i.e. how the response should
--   be interpreted.</li>
--   <li><tt>a</tt> is the result type</li>
--   </ul>
--   
--   <i>Note:</i> <a>Request</a> is not <a>Functor</a> on purpose.
data GenRequest (mt :: MediaType *) (rw :: RW) a
[Query] :: Paths -> QueryString -> GenRequest mt rw a
[PagedQuery] :: Paths -> QueryString -> FetchCount -> GenRequest mt rw (Vector a)

-- | Command
[Command] :: CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a

-- | Http method of requests with body.
data CommandMethod
Post :: CommandMethod
Patch :: CommandMethod
Put :: CommandMethod
Delete :: CommandMethod
toMethod :: CommandMethod -> Method
type Paths = [Text]

-- | Request query string
type QueryString = [(ByteString, Maybe ByteString)]

-- | Execute <a>Request</a> in <a>IO</a>
executeRequest :: (AuthMethod am, ParseResponse mt a) => am -> GenRequest mt rw a -> IO (Either Error a)

-- | Like <a>executeRequest</a> but with provided <a>Manager</a>.
executeRequestWithMgr :: (AuthMethod am, ParseResponse mt a) => Manager -> am -> GenRequest mt rw a -> IO (Either Error a)

-- | Like <a>executeRequest</a> but without authentication.
executeRequest' :: ParseResponse mt a => GenRequest mt 'RO a -> IO (Either Error a)

-- | Like <a>executeRequestWithMgr</a> but without authentication.
executeRequestWithMgr' :: ParseResponse mt a => Manager -> GenRequest mt 'RO a -> IO (Either Error a)

-- | Helper for picking between <a>executeRequest</a> and
--   <a>executeRequest'</a>.
--   
--   The use is discouraged.
executeRequestMaybe :: (AuthMethod am, ParseResponse mt a) => Maybe am -> GenRequest mt 'RO a -> IO (Either Error a)

-- | Partial function to drop authentication need.
unsafeDropAuthRequirements :: GenRequest mt rw' a -> GenRequest mt rw a
class Accept (mt :: MediaType *)
contentType :: Accept mt => Tagged mt ByteString
modifyRequest :: Accept mt => Tagged mt (Request -> Request)
class Accept mt => ParseResponse (mt :: MediaType *) a
parseResponse :: (ParseResponse mt a, MonadError Error m) => Request -> Response ByteString -> Tagged mt (m a)

-- | Create <tt>http-client</tt> <a>Request</a>.
--   
--   <ul>
--   <li>for <a>PagedQuery</a>, the initial request is created.</li>
--   <li>for <a>Status</a>, the <a>Request</a> for underlying
--   <a>Request</a> is created, status checking is modifying
--   accordingly.</li>
--   </ul>
makeHttpRequest :: forall am mt rw a m. (AuthMethod am, MonadThrow m, Accept mt) => Maybe am -> GenRequest mt rw a -> m Request

-- | Helper for handling of <tt>RequestStatus</tt>.
--   
--   <pre>
--   parseStatus :: <a>StatusMap</a> a -&gt; <a>Status</a> -&gt; <a>Either</a> <a>Error</a> a
--   </pre>
parseStatus :: MonadError Error m => StatusMap a -> Status -> m a
type StatusMap a = [(Int, a)]

-- | Query <tt>Link</tt> header with <tt>rel=next</tt> from the request
--   headers.
getNextUrl :: Response a -> Maybe URI

-- | Helper for making paginated requests. Responses, <tt>a</tt> are
--   combined monoidally.
--   
--   <pre>
--   performPagedRequest :: (<a>FromJSON</a> a, <a>Semigroup</a> a)
--                       =&gt; (<a>Request</a> -&gt; <a>ExceptT</a> <a>Error</a> <a>IO</a> (<a>Response</a> <a>ByteString</a>))
--                       -&gt; (a -&gt; <a>Bool</a>)
--                       -&gt; <a>Request</a>
--                       -&gt; <a>ExceptT</a> <a>Error</a> <a>IO</a> a
--   </pre>
performPagedRequest :: forall a m mt. (ParseResponse mt a, Semigroup a, MonadCatch m, MonadError Error m) => (Request -> m (Response ByteString)) -> (a -> Bool) -> Request -> Tagged mt (m a)

-- | Parse API response.
--   
--   <pre>
--   parseResponse :: <a>FromJSON</a> a =&gt; <a>Response</a> <a>ByteString</a> -&gt; <a>Either</a> <a>Error</a> a
--   </pre>
parseResponseJSON :: (FromJSON a, MonadError Error m) => Response ByteString -> m a
class PreviewAccept p
previewContentType :: PreviewAccept p => Tagged ('MtPreview p) ByteString
previewModifyRequest :: PreviewAccept p => Tagged ('MtPreview p) (Request -> Request)
class PreviewAccept p => PreviewParseResponse p a
previewParseResponse :: (PreviewParseResponse p a, MonadError Error m) => Request -> Response ByteString -> Tagged ('MtPreview p) (m a)
instance GitHub.Request.HasStatusMap a => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtStatus a
instance GitHub.Request.HasStatusMap GHC.Types.Bool
instance GitHub.Request.HasStatusMap GitHub.Data.PullRequests.MergeResult
instance GitHub.Request.PreviewParseResponse p a => GitHub.Request.ParseResponse ('GitHub.Data.Request.MtPreview p) a
instance GitHub.Request.PreviewAccept p => GitHub.Request.Accept ('GitHub.Data.Request.MtPreview p)
instance Data.Aeson.Types.FromJSON.FromJSON a => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtJSON a
instance Data.Aeson.Types.FromJSON.FromJSON a => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtStar a
instance (a GHC.Types.~ Data.ByteString.Lazy.Internal.ByteString) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtRaw a
instance (a GHC.Types.~ Data.ByteString.Lazy.Internal.ByteString) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtDiff a
instance (a GHC.Types.~ Data.ByteString.Lazy.Internal.ByteString) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtPatch a
instance (a GHC.Types.~ Data.ByteString.Lazy.Internal.ByteString) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtSha a
instance (b GHC.Types.~ Network.URI.URI) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtRedirect b
instance (a GHC.Types.~ ()) => GitHub.Request.ParseResponse 'GitHub.Data.Request.MtUnit a
instance GitHub.Request.Accept 'GitHub.Data.Request.MtJSON
instance GitHub.Request.Accept 'GitHub.Data.Request.MtStar
instance GitHub.Request.Accept 'GitHub.Data.Request.MtRaw
instance GitHub.Request.Accept 'GitHub.Data.Request.MtDiff
instance GitHub.Request.Accept 'GitHub.Data.Request.MtPatch
instance GitHub.Request.Accept 'GitHub.Data.Request.MtSha
instance GitHub.Request.Accept 'GitHub.Data.Request.MtRedirect
instance GitHub.Request.Accept 'GitHub.Data.Request.MtStatus
instance GitHub.Request.Accept 'GitHub.Data.Request.MtUnit


-- | The public keys API, as described at
--   <a>https://developer.github.com/v3/users/keys/</a>
module GitHub.Endpoints.Users.PublicSSHKeys

-- | Querying the authenticated users' public SSH keys
publicSSHKeys' :: Auth -> IO (Either Error (Vector PublicSSHKey))

-- | Querying the authenticated users' public SSH keys See
--   <a>https://developer.github.com/v3/users/keys/#list-your-public-keys</a>
publicSSHKeysR :: Request 'RA (Vector PublicSSHKey)

-- | Querying public SSH keys.
publicSSHKeysFor' :: Name Owner -> IO (Either Error (Vector PublicSSHKeyBasic))

-- | Querying public SSH keys. See
--   <a>https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user</a>
publicSSHKeysForR :: Name Owner -> FetchCount -> Request 'RO (Vector PublicSSHKeyBasic)

-- | Querying a public SSH key
publicSSHKey' :: Auth -> Id PublicSSHKey -> IO (Either Error PublicSSHKey)

-- | Querying a public SSH key. See
--   <a>https://developer.github.com/v3/users/keys/#get-a-single-public-key</a>
publicSSHKeyR :: Id PublicSSHKey -> Request 'RA PublicSSHKey

-- | Create a public SSH key
createUserPublicSSHKey' :: Auth -> NewPublicSSHKey -> IO (Either Error PublicSSHKey)

-- | Create a public SSH key. See
--   <a>https://developer.github.com/v3/users/keys/#create-a-public-key</a>.
createUserPublicSSHKeyR :: NewPublicSSHKey -> Request 'RW PublicSSHKey
deleteUserPublicSSHKey' :: Auth -> Id PublicSSHKey -> IO (Either Error ())

-- | Delete a public SSH key. See
--   <a>https://developer.github.com/v3/users/keys/#delete-a-public-key</a>
deleteUserPublicSSHKeyR :: Id PublicSSHKey -> GenRequest 'MtUnit 'RW ()


-- | The user followers API as described on
--   <a>http://developer.github.com/v3/users/followers/</a>.
module GitHub.Endpoints.Users.Followers

-- | All the users following the given user.
--   
--   <pre>
--   usersFollowing "mike-burns"
--   </pre>
usersFollowing :: Name User -> IO (Either Error (Vector SimpleUser))

-- | All the users that the given user follows.
--   
--   <pre>
--   usersFollowedBy "mike-burns"
--   </pre>
usersFollowedBy :: Name User -> IO (Either Error (Vector SimpleUser))

-- | List followers of a user. See
--   <a>https://developer.github.com/v3/users/followers/#list-followers-of-a-user</a>
usersFollowingR :: Name User -> FetchCount -> Request k (Vector SimpleUser)

-- | List users followed by another user. See
--   <a>https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user</a>
usersFollowedByR :: Name User -> FetchCount -> Request k (Vector SimpleUser)


-- | The user emails API as described on
--   <a>http://developer.github.com/v3/users/emails/</a>.
module GitHub.Endpoints.Users.Emails

-- | List email addresses for the authenticated user.
--   
--   <pre>
--   currentUserEmails' (OAuth "token")
--   </pre>
currentUserEmails' :: Auth -> IO (Either Error (Vector Email))

-- | List email addresses. See
--   <a>https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user</a>
currentUserEmailsR :: FetchCount -> Request 'RA (Vector Email)

-- | List public email addresses for the authenticated user.
--   
--   <pre>
--   currentUserPublicEmails' (OAuth "token")
--   </pre>
currentUserPublicEmails' :: Auth -> IO (Either Error (Vector Email))

-- | List public email addresses. See
--   <a>https://developer.github.com/v3/users/emails/#list-public-email-addresses-for-a-user</a>
currentUserPublicEmailsR :: FetchCount -> Request 'RA (Vector Email)


-- | The Github Users API, as described at
--   <a>http://developer.github.com/v3/users/</a>.
module GitHub.Endpoints.Users

-- | The information for a single user, by login name.
--   
--   <pre>
--   userInfoFor "mike-burns"
--   </pre>
userInfoFor :: Name User -> IO (Either Error User)

-- | The information for a single user, by login name. With
--   authentification
--   
--   <pre>
--   userInfoFor' (Just $ BasicAuth "github-username" "github-password") "mike-burns"
--   </pre>
userInfoFor' :: Maybe Auth -> Name User -> IO (Either Error User)

-- | Query a single user. See
--   <a>https://developer.github.com/v3/users/#get-a-single-user</a>
userInfoForR :: Name User -> Request k User

-- | Query a single user or an organization. See
--   <a>https://developer.github.com/v3/users/#get-a-single-user</a>
ownerInfoForR :: Name Owner -> Request k Owner

-- | Retrieve information about the user associated with the supplied
--   authentication.
--   
--   <pre>
--   userInfoCurrent' (OAuth "...")
--   </pre>
userInfoCurrent' :: Auth -> IO (Either Error User)

-- | Query the authenticated user. See
--   <a>https://developer.github.com/v3/users/#get-the-authenticated-user</a>
userInfoCurrentR :: Request 'RA User


-- | The Github Search API, as described at
--   <a>http://developer.github.com/v3/search/</a>.
module GitHub.Endpoints.Search

-- | Perform a repository search. With authentication.
--   
--   <pre>
--   searchRepos' (Just $ BasicAuth "github-username" "github-password') "a in%3Aname language%3Ahaskell created%3A&gt;2013-10-01&amp;per_page=100"
--   </pre>
searchRepos' :: Maybe Auth -> Text -> IO (Either Error (SearchResult Repo))

-- | Perform a repository search. Without authentication.
--   
--   <pre>
--   searchRepos "q=a in%3Aname language%3Ahaskell created%3A&gt;2013-10-01&amp;per_page=100"
--   </pre>
searchRepos :: Text -> IO (Either Error (SearchResult Repo))

-- | Search repositories. See
--   <a>https://developer.github.com/v3/search/#search-repositories</a>
searchReposR :: Text -> Request k (SearchResult Repo)

-- | Perform a code search. With authentication.
--   
--   <pre>
--   searchCode' (Just $ BasicAuth "github-username" "github-password') "a in%3Aname language%3Ahaskell created%3A&gt;2013-10-01&amp;per_page=100"
--   </pre>
searchCode' :: Maybe Auth -> Text -> IO (Either Error (SearchResult Code))

-- | Perform a code search. Without authentication.
--   
--   <pre>
--   searchCode "q=addClass+in:file+language:js+repo:jquery/jquery"
--   </pre>
searchCode :: Text -> IO (Either Error (SearchResult Code))

-- | Search code. See
--   <a>https://developer.github.com/v3/search/#search-code</a>
searchCodeR :: Text -> Request k (SearchResult Code)

-- | Perform an issue search. With authentication.
--   
--   <pre>
--   searchIssues' (Just $ BasicAuth "github-username" "github-password') "a repo%3Aphadej%2Fgithub&amp;per_page=100"
--   </pre>
searchIssues' :: Maybe Auth -> Text -> IO (Either Error (SearchResult Issue))

-- | Perform an issue search. Without authentication.
--   
--   <pre>
--   searchIssues "q=a repo%3Aphadej%2Fgithub&amp;per_page=100"
--   </pre>
searchIssues :: Text -> IO (Either Error (SearchResult Issue))

-- | Search issues. See
--   <a>https://developer.github.com/v3/search/#search-issues</a>
searchIssuesR :: Text -> Request k (SearchResult Issue)


-- | The webhooks API, as described at
--   <a>https://developer.github.com/v3/repos/hooks/</a>
--   <a>https://developer.github.com/webhooks</a>
module GitHub.Endpoints.Repos.Webhooks
webhooksFor' :: Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector RepoWebhook))

-- | List hooks. See
--   <a>https://developer.github.com/v3/repos/hooks/#list-hooks</a>
webhooksForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector RepoWebhook)
webhookFor' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error RepoWebhook)

-- | Query single hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#get-single-hook</a>
webhookForR :: Name Owner -> Name Repo -> Id RepoWebhook -> Request k RepoWebhook
createRepoWebhook' :: Auth -> Name Owner -> Name Repo -> NewRepoWebhook -> IO (Either Error RepoWebhook)

-- | Create a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#create-a-hook</a>
createRepoWebhookR :: Name Owner -> Name Repo -> NewRepoWebhook -> Request 'RW RepoWebhook
editRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> EditRepoWebhook -> IO (Either Error RepoWebhook)

-- | Edit a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#edit-a-hook</a>
editRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> EditRepoWebhook -> Request 'RW RepoWebhook
testPushRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error Bool)

-- | Test a push hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#test-a-push-hook</a>
testPushRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
pingRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error Bool)

-- | Ping a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#ping-a-hook</a>
pingRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
deleteRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error ())

-- | Delete a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#delete-a-hook</a>
deleteRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtUnit 'RW ()


-- | The repo statuses API as described on
--   <a>https://developer.github.com/v3/repos/statuses/</a>.
module GitHub.Endpoints.Repos.Statuses

-- | Create a new status
--   
--   <pre>
--   createStatus (BasicAuth user password) "thoughtbot" "paperclip"
--     "41f685f6e01396936bb8cd98e7cca517e2c7d96b"
--     (NewStatus StatusSuccess Nothing "Looks good!" Nothing)
--   </pre>
createStatus :: Auth -> Name Owner -> Name Repo -> Name Commit -> NewStatus -> IO (Either Error Status)

-- | Create a new status See
--   <a>https://developer.github.com/v3/repos/statuses/#create-a-status</a>
createStatusR :: Name Owner -> Name Repo -> Name Commit -> NewStatus -> Request 'RW Status

-- | All statuses for a commit
--   
--   <pre>
--   statusesFor (BasicAuth user password) "thoughtbot" "paperclip"
--     "41f685f6e01396936bb8cd98e7cca517e2c7d96b"
--   </pre>
statusesFor :: Auth -> Name Owner -> Name Repo -> Name Commit -> IO (Either Error (Vector Status))

-- | All statuses for a commit See
--   <a>https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref</a>
statusesForR :: Name Owner -> Name Repo -> Name Commit -> FetchCount -> Request 'RW (Vector Status)

-- | The combined status for a specific commit
--   
--   <pre>
--   statusFor (BasicAuth user password) "thoughtbot" "paperclip"
--     "41f685f6e01396936bb8cd98e7cca517e2c7d96b"
--   </pre>
statusFor :: Auth -> Name Owner -> Name Repo -> Name Commit -> IO (Either Error CombinedStatus)

-- | The combined status for a specific commit See
--   <a>https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref</a>
statusForR :: Name Owner -> Name Repo -> Name Commit -> Request 'RW CombinedStatus

module GitHub.Endpoints.Repos.Releases

-- | All releases for the given repo.
--   
--   <pre>
--   releases "calleerlandsson" "pick"
--   </pre>
releases :: Name Owner -> Name Repo -> IO (Either Error (Vector Release))

-- | All releases for the given repo with authentication.
--   
--   <pre>
--   releases' (Just $ BasicAuth "github-username" "github-password") "calleerlandsson" "pick"
--   </pre>
releases' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Release))

-- | List releases for a repository. See
--   <a>https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository</a>
releasesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Release)

-- | Query a single release.
--   
--   <pre>
--   release "calleerlandsson" "pick"
--   </pre>
release :: Name Owner -> Name Repo -> Id Release -> IO (Either Error Release)

-- | Query a single release with authentication.
--   
--   <pre>
--   release' (Just $ BasicAuth "github-username" "github-password") "calleerlandsson" "pick"
--   </pre>
release' :: Maybe Auth -> Name Owner -> Name Repo -> Id Release -> IO (Either Error Release)

-- | Get a single release. See
--   <a>https://developer.github.com/v3/repos/releases/#get-a-single-release</a>
releaseR :: Name Owner -> Name Repo -> Id Release -> Request k Release

-- | Query latest release.
--   
--   <pre>
--   latestRelease "calleerlandsson" "pick"
--   </pre>
latestRelease :: Name Owner -> Name Repo -> IO (Either Error Release)

-- | Query latest release with authentication.
--   
--   <pre>
--   latestRelease' (Just $ BasicAuth "github-username" "github-password") "calleerlandsson" "pick"
--   </pre>
latestRelease' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error Release)

-- | Get the latest release. See
--   <a>https://developer.github.com/v3/repos/releases/#get-the-latest-release</a>
latestReleaseR :: Name Owner -> Name Repo -> Request k Release

-- | Query release by tag name.
--   
--   <pre>
--   releaseByTagName "calleerlandsson" "pick"
--   </pre>
releaseByTagName :: Name Owner -> Name Repo -> Text -> IO (Either Error Release)

-- | Query release by tag name with authentication.
--   
--   <pre>
--   releaseByTagName' (Just $ BasicAuth "github-username" "github-password") "calleerlandsson" "pick"
--   </pre>
releaseByTagName' :: Maybe Auth -> Name Owner -> Name Repo -> Text -> IO (Either Error Release)

-- | Get a release by tag name See
--   <a>https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name</a>
releaseByTagNameR :: Name Owner -> Name Repo -> Text -> Request k Release


-- | Hot forking action, as described at
--   <a>http://developer.github.com/v3/repos/forks/</a>.
module GitHub.Endpoints.Repos.Forks

-- | All the repos that are forked off the given repo.
--   
--   <pre>
--   forksFor "thoughtbot" "paperclip"
--   </pre>
forksFor :: Name Owner -> Name Repo -> IO (Either Error (Vector Repo))

-- | All the repos that are forked off the given repo. | With
--   authentication
--   
--   <pre>
--   forksFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
forksFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Repo))

-- | List forks. See
--   <a>https://developer.github.com/v3/repos/forks/#list-forks</a>
forksForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Repo)


-- | The deploy keys API, as described at
--   <a>https://developer.github.com/v3/repos/keys</a>
module GitHub.Endpoints.Repos.DeployKeys

-- | Querying deploy keys.
deployKeysFor' :: Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector RepoDeployKey))

-- | Querying deploy keys. See
--   <a>https://developer.github.com/v3/repos/keys/#list-deploy-keys</a>
deployKeysForR :: Name Owner -> Name Repo -> FetchCount -> Request 'RA (Vector RepoDeployKey)

-- | Querying a deploy key
deployKeyFor' :: Auth -> Name Owner -> Name Repo -> Id RepoDeployKey -> IO (Either Error RepoDeployKey)

-- | Querying a deploy key. See
--   <a>https://developer.github.com/v3/repos/keys/#get-a-deploy-key</a>
deployKeyForR :: Name Owner -> Name Repo -> Id RepoDeployKey -> Request 'RA RepoDeployKey

-- | Create a deploy key
createRepoDeployKey' :: Auth -> Name Owner -> Name Repo -> NewRepoDeployKey -> IO (Either Error RepoDeployKey)

-- | Create a deploy key. See
--   <a>https://developer.github.com/v3/repos/keys/#add-a-new-deploy-key</a>.
createRepoDeployKeyR :: Name Owner -> Name Repo -> NewRepoDeployKey -> Request 'RW RepoDeployKey
deleteRepoDeployKey' :: Auth -> Name Owner -> Name Repo -> Id RepoDeployKey -> IO (Either Error ())

-- | Delete a deploy key. See
--   <a>https://developer.github.com/v3/repos/keys/#remove-a-deploy-key</a>
deleteRepoDeployKeyR :: Name Owner -> Name Repo -> Id RepoDeployKey -> GenRequest 'MtUnit 'RW ()


-- | The Github Repo Contents API, as documented at
--   <a>https://developer.github.com/v3/repos/contents/</a>
module GitHub.Endpoints.Repos.Contents

-- | The contents of a file or directory in a repo, given the repo owner,
--   name, and path to the file
--   
--   <pre>
--   contentsFor "thoughtbot" "paperclip" "README.md"
--   </pre>
contentsFor :: Name Owner -> Name Repo -> Text -> Maybe Text -> IO (Either Error Content)

-- | The contents of a file or directory in a repo, given the repo owner,
--   name, and path to the file With Authentication
--   
--   <pre>
--   contentsFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "README.md" Nothing
--   </pre>
contentsFor' :: Maybe Auth -> Name Owner -> Name Repo -> Text -> Maybe Text -> IO (Either Error Content)
contentsForR :: Name Owner -> Name Repo -> Text -> Maybe Text -> Request k Content

-- | The contents of a README file in a repo, given the repo owner and name
--   
--   <pre>
--   readmeFor "thoughtbot" "paperclip"
--   </pre>
readmeFor :: Name Owner -> Name Repo -> IO (Either Error Content)

-- | The contents of a README file in a repo, given the repo owner and name
--   With Authentication
--   
--   <pre>
--   readmeFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
readmeFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error Content)
readmeForR :: Name Owner -> Name Repo -> Request k Content

-- | The archive of a repo, given the repo owner, name, and archive type
--   
--   <pre>
--   archiveFor "thoughtbot" "paperclip" ArchiveFormatTarball Nothing
--   </pre>
archiveFor :: Name Owner -> Name Repo -> ArchiveFormat -> Maybe Text -> IO (Either Error URI)

-- | The archive of a repo, given the repo owner, name, and archive type
--   With Authentication
--   
--   <pre>
--   archiveFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" ArchiveFormatTarball Nothing
--   </pre>
archiveFor' :: Maybe Auth -> Name Owner -> Name Repo -> ArchiveFormat -> Maybe Text -> IO (Either Error URI)

-- | Get archive link. See
--   <a>https://developer.github.com/v3/repos/contents/#get-archive-link</a>
archiveForR :: Name Owner -> Name Repo -> ArchiveFormat -> Maybe Text -> GenRequest 'MtRedirect rw URI

-- | Create a file.
createFile :: Auth -> Name Owner -> Name Repo -> CreateFile -> IO (Either Error ContentResult)

-- | Create a file. See
--   <a>https://developer.github.com/v3/repos/contents/#create-a-file</a>
createFileR :: Name Owner -> Name Repo -> CreateFile -> Request 'RW ContentResult

-- | Update a file.
updateFile :: Auth -> Name Owner -> Name Repo -> UpdateFile -> IO (Either Error ContentResult)

-- | Update a file. See
--   <a>https://developer.github.com/v3/repos/contents/#update-a-file</a>
updateFileR :: Name Owner -> Name Repo -> UpdateFile -> Request 'RW ContentResult

-- | Delete a file.
deleteFile :: Auth -> Name Owner -> Name Repo -> DeleteFile -> IO (Either Error ())

-- | Delete a file. See
--   <a>https://developer.github.com/v3/repos/contents/#delete-a-file</a>
deleteFileR :: Name Owner -> Name Repo -> DeleteFile -> GenRequest 'MtUnit 'RW ()


-- | The repo commits API as described on
--   <a>http://developer.github.com/v3/repos/commits/</a>.
module GitHub.Endpoints.Repos.Commits

-- | The options for querying commits.
data CommitQueryOption
CommitQuerySha :: !Text -> CommitQueryOption
CommitQueryPath :: !Text -> CommitQueryOption
CommitQueryAuthor :: !Text -> CommitQueryOption
CommitQuerySince :: !UTCTime -> CommitQueryOption
CommitQueryUntil :: !UTCTime -> CommitQueryOption

-- | The commit history for a repo.
--   
--   <pre>
--   commitsFor "mike-burns" "github"
--   </pre>
commitsFor :: Name Owner -> Name Repo -> IO (Either Error (Vector Commit))

-- | The commit history for a repo. With authentication.
--   
--   <pre>
--   commitsFor' (Just $ BasicAuth "github-username" "github-password") "mike-burns" "github"
--   </pre>
commitsFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Commit))

-- | List commits on a repository. See
--   <a>https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository</a>
commitsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Commit)
commitsWithOptionsFor :: Name Owner -> Name Repo -> [CommitQueryOption] -> IO (Either Error (Vector Commit))

-- | The commit history for a repo, with commits filtered to satisfy a list
--   of query options. With authentication.
--   
--   <pre>
--   commitsWithOptionsFor' (Just $ BasicAuth "github-username" "github-password") "mike-burns" "github" [CommitQueryAuthor "djeik"]
--   </pre>
commitsWithOptionsFor' :: Maybe Auth -> Name Owner -> Name Repo -> [CommitQueryOption] -> IO (Either Error (Vector Commit))

-- | List commits on a repository. See
--   <a>https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository</a>
commitsWithOptionsForR :: Name Owner -> Name Repo -> FetchCount -> [CommitQueryOption] -> Request k (Vector Commit)

-- | Details on a specific SHA1 for a repo.
--   
--   <pre>
--   commit "mike-burns" "github" "9d1a9a361266c3c890b1108ad2fdf52f824b1b81"
--   </pre>
commit :: Name Owner -> Name Repo -> Name Commit -> IO (Either Error Commit)

-- | Details on a specific SHA1 for a repo. With authentication.
--   
--   <pre>
--   commit (Just $ BasicAuth "github-username" "github-password") "mike-burns" "github" "9d1a9a361266c3c890b1108ad2fdf52f824b1b81"
--   </pre>
commit' :: Maybe Auth -> Name Owner -> Name Repo -> Name Commit -> IO (Either Error Commit)

-- | Query a single commit. See
--   <a>https://developer.github.com/v3/repos/commits/#get-a-single-commit</a>
commitR :: Name Owner -> Name Repo -> Name Commit -> Request k Commit

-- | The diff between two treeishes on a repo.
--   
--   <pre>
--   diff "thoughtbot" "paperclip" "41f685f6e01396936bb8cd98e7cca517e2c7d96b" "HEAD"
--   </pre>
diff :: Name Owner -> Name Repo -> Name Commit -> Name Commit -> IO (Either Error Diff)

-- | The diff between two treeishes on a repo.
--   
--   <pre>
--   diff "thoughtbot" "paperclip" "41f685f6e01396936bb8cd98e7cca517e2c7d96b" "HEAD"
--   </pre>
diff' :: Maybe Auth -> Name Owner -> Name Repo -> Name Commit -> Name Commit -> IO (Either Error Diff)

-- | Compare two commits. See
--   <a>https://developer.github.com/v3/repos/commits/#compare-two-commits</a>
diffR :: Name Owner -> Name Repo -> Name Commit -> Name Commit -> Request k Diff


-- | The repo commits API as described on
--   <a>http://developer.github.com/v3/repos/comments/</a>.
module GitHub.Endpoints.Repos.Comments

-- | All the comments on a Github repo.
--   
--   <pre>
--   commentsFor "thoughtbot" "paperclip"
--   </pre>
commentsFor :: Name Owner -> Name Repo -> IO (Either Error (Vector Comment))

-- | All the comments on a Github repo. With authentication.
--   
--   <pre>
--   commentsFor "thoughtbot" "paperclip"
--   </pre>
commentsFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Comment))

-- | List commit comments for a repository. See
--   <a>https://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository</a>
commentsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Comment)

-- | Just the comments on a specific SHA for a given Github repo.
--   
--   <pre>
--   commitCommentsFor "thoughtbot" "paperclip" "41f685f6e01396936bb8cd98e7cca517e2c7d96b"
--   </pre>
commitCommentsFor :: Name Owner -> Name Repo -> Name Commit -> IO (Either Error (Vector Comment))

-- | Just the comments on a specific SHA for a given Github repo. With
--   authentication.
--   
--   <pre>
--   commitCommentsFor "thoughtbot" "paperclip" "41f685f6e01396936bb8cd98e7cca517e2c7d96b"
--   </pre>
commitCommentsFor' :: Maybe Auth -> Name Owner -> Name Repo -> Name Commit -> IO (Either Error (Vector Comment))

-- | List comments for a single commit. See
--   <a>https://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit</a>
commitCommentsForR :: Name Owner -> Name Repo -> Name Commit -> FetchCount -> Request k (Vector Comment)

-- | A comment, by its ID, relative to the Github repo.
--   
--   <pre>
--   commitCommentFor "thoughtbot" "paperclip" "669575"
--   </pre>
commitCommentFor :: Name Owner -> Name Repo -> Id Comment -> IO (Either Error Comment)

-- | A comment, by its ID, relative to the Github repo.
--   
--   <pre>
--   commitCommentFor "thoughtbot" "paperclip" "669575"
--   </pre>
commitCommentFor' :: Maybe Auth -> Name Owner -> Name Repo -> Id Comment -> IO (Either Error Comment)

-- | Query a single commit comment. See
--   <a>https://developer.github.com/v3/repos/comments/#get-a-single-commit-comment</a>
commitCommentForR :: Name Owner -> Name Repo -> Id Comment -> Request k Comment


-- | The repo collaborators API as described on
--   <a>http://developer.github.com/v3/repos/collaborators/</a>.
module GitHub.Endpoints.Repos.Collaborators

-- | All the users who have collaborated on a repo.
--   
--   <pre>
--   collaboratorsOn "thoughtbot" "paperclip"
--   </pre>
collaboratorsOn :: Name Owner -> Name Repo -> IO (Either Error (Vector SimpleUser))

-- | All the users who have collaborated on a repo. With authentication.
collaboratorsOn' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector SimpleUser))

-- | List collaborators. See
--   <a>https://developer.github.com/v3/repos/collaborators/#list-collaborators</a>
collaboratorsOnR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | Whether the user is collaborating on a repo. Takes the user in
--   question, the user who owns the repo, and the repo name.
--   
--   <pre>
--   isCollaboratorOn Nothing "mike-burns" "thoughtbot" "paperclip"
--   isCollaboratorOn Nothing "johnson" "thoughtbot" "paperclip"
--   </pre>
isCollaboratorOn :: Maybe Auth -> Name Owner -> Name Repo -> Name User -> IO (Either Error Bool)

-- | Check if a user is a collaborator. See
--   <a>https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator</a>
isCollaboratorOnR :: Name Owner -> Name Repo -> Name User -> GenRequest 'MtStatus rw Bool
addCollaborator :: Auth -> Name Owner -> Name Repo -> Name User -> IO (Either Error (Maybe RepoInvitation))

-- | Invite a user as a collaborator. See
--   <a>https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator</a>
addCollaboratorR :: Name Owner -> Name Repo -> Name User -> GenRequest 'MtJSON 'RW (Maybe RepoInvitation)


-- | The Github Repos API, as documented at
--   <a>http://developer.github.com/v3/repos/</a>
module GitHub.Endpoints.Repos

-- | List your repositories.
currentUserRepos :: Auth -> RepoPublicity -> IO (Either Error (Vector Repo))

-- | List your repositories. See
--   <a>https://developer.github.com/v3/repos/#list-your-repositories</a>
currentUserReposR :: RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | The repos for a user, by their login. Can be restricted to just repos
--   they own, are a member of, or publicize. Private repos will return
--   empty list.
--   
--   <pre>
--   userRepos "mike-burns" All
--   </pre>
userRepos :: Name Owner -> RepoPublicity -> IO (Either Error (Vector Repo))

-- | The repos for a user, by their login. With authentication.
--   
--   <pre>
--   userRepos' (Just $ BasicAuth "github-username" "github-password") "mike-burns" All
--   </pre>
userRepos' :: Maybe Auth -> Name Owner -> RepoPublicity -> IO (Either Error (Vector Repo))

-- | List user repositories. See
--   <a>https://developer.github.com/v3/repos/#list-user-repositories</a>
userReposR :: Name Owner -> RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | The repos for an organization, by the organization name.
--   
--   <pre>
--   organizationRepos "thoughtbot"
--   </pre>
organizationRepos :: Name Organization -> IO (Either Error (Vector Repo))

-- | The repos for an organization, by the organization name. With
--   authentication.
--   
--   <pre>
--   organizationRepos (Just $ BasicAuth "github-username" "github-password") "thoughtbot" All
--   </pre>
organizationRepos' :: Maybe Auth -> Name Organization -> RepoPublicity -> IO (Either Error (Vector Repo))

-- | List organization repositories. See
--   <a>https://developer.github.com/v3/repos/#list-organization-repositories</a>
organizationReposR :: Name Organization -> RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | Details on a specific repo, given the owner and repo name.
--   
--   <pre>
--   repository "mike-burns" "github"
--   </pre>
repository :: Name Owner -> Name Repo -> IO (Either Error Repo)

-- | Details on a specific repo, given the owner and repo name. With
--   authentication.
--   
--   <pre>
--   repository' (Just $ BasicAuth "github-username" "github-password") "mike-burns" "github"
--   </pre>
repository' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error Repo)

-- | Query single repository. See
--   <a>https://developer.github.com/v3/repos/#get</a>
repositoryR :: Name Owner -> Name Repo -> Request k Repo

-- | The contributors to a repo, given the owner and repo name.
--   
--   <pre>
--   contributors "thoughtbot" "paperclip"
--   </pre>
contributors :: Name Owner -> Name Repo -> IO (Either Error (Vector Contributor))

-- | The contributors to a repo, given the owner and repo name. With
--   authentication.
--   
--   <pre>
--   contributors' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
contributors' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Contributor))

-- | List contributors. See
--   <a>https://developer.github.com/v3/repos/#list-contributors</a>
contributorsR :: Name Owner -> Name Repo -> Bool -> FetchCount -> Request k (Vector Contributor)

-- | The contributors to a repo, including anonymous contributors (such as
--   deleted users or git commits with unknown email addresses), given the
--   owner and repo name.
--   
--   <pre>
--   contributorsWithAnonymous "thoughtbot" "paperclip"
--   </pre>
contributorsWithAnonymous :: Name Owner -> Name Repo -> IO (Either Error (Vector Contributor))

-- | The contributors to a repo, including anonymous contributors (such as
--   deleted users or git commits with unknown email addresses), given the
--   owner and repo name. With authentication.
--   
--   <pre>
--   contributorsWithAnonymous' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
contributorsWithAnonymous' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Contributor))

-- | The programming languages used in a repo along with the number of
--   characters written in that language. Takes the repo owner and name.
--   
--   <pre>
--   languagesFor "mike-burns" "ohlaunch"
--   </pre>
languagesFor :: Name Owner -> Name Repo -> IO (Either Error Languages)

-- | The programming languages used in a repo along with the number of
--   characters written in that language. Takes the repo owner and name.
--   With authentication.
--   
--   <pre>
--   languagesFor' (Just $ BasicAuth "github-username" "github-password") "mike-burns" "ohlaunch"
--   </pre>
languagesFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error Languages)

-- | List languages. See
--   <a>https://developer.github.com/v3/repos/#list-languages</a>
languagesForR :: Name Owner -> Name Repo -> Request k Languages

-- | The git tags on a repo, given the repo owner and name.
--   
--   <pre>
--   tagsFor "thoughtbot" "paperclip"
--   </pre>
tagsFor :: Name Owner -> Name Repo -> IO (Either Error (Vector Tag))

-- | The git tags on a repo, given the repo owner and name. With
--   authentication.
--   
--   <pre>
--   tagsFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
tagsFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Tag))

-- | List tags. See <a>https://developer.github.com/v3/repos/#list-tags</a>
tagsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Tag)

-- | The git branches on a repo, given the repo owner and name.
--   
--   <pre>
--   branchesFor "thoughtbot" "paperclip"
--   </pre>
branchesFor :: Name Owner -> Name Repo -> IO (Either Error (Vector Branch))

-- | The git branches on a repo, given the repo owner and name. With
--   authentication.
--   
--   <pre>
--   branchesFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
branchesFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Branch))

-- | List branches. See
--   <a>https://developer.github.com/v3/repos/#list-branches</a>
branchesForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Branch)

-- | Create a new repository.
--   
--   <pre>
--   createRepo' (BasicAuth (user, password)) (newRepo "some_repo") {newRepoHasIssues = Just False}
--   </pre>
createRepo' :: Auth -> NewRepo -> IO (Either Error Repo)

-- | Create a new repository. See
--   <a>https://developer.github.com/v3/repos/#create</a>
createRepoR :: NewRepo -> Request 'RW Repo

-- | Create a new repository for an organization.
--   
--   <pre>
--   createOrganizationRepo (BasicAuth (user, password)) "thoughtbot" (newRepo "some_repo") {newRepoHasIssues = Just False}
--   </pre>
createOrganizationRepo' :: Auth -> Name Organization -> NewRepo -> IO (Either Error Repo)

-- | Create a new repository for an organization. See
--   <a>https://developer.github.com/v3/repos/#create</a>
createOrganizationRepoR :: Name Organization -> NewRepo -> Request 'RW Repo

-- | Fork an existing repository.
forkExistingRepo' :: Auth -> Name Owner -> Name Repo -> Maybe (Name Owner) -> IO (Either Error Repo)

-- | Fork an existing repository. See
--   <a>https://developer.github.com/v3/repos/forks/#create-a-fork</a>
--   TODO: The third paramater (an optional Organisation) is not used yet.
forkExistingRepoR :: Name Owner -> Name Repo -> Maybe (Name Owner) -> Request 'RW Repo

-- | Edit an existing repository.
--   
--   <pre>
--   editRepo (BasicAuth (user, password)) "some_user" "some_repo" def {editDescription = Just "some description"}
--   </pre>
editRepo :: Auth -> Name Owner -> Name Repo -> EditRepo -> IO (Either Error Repo)

-- | Edit an existing repository. See
--   <a>https://developer.github.com/v3/repos/#edit</a>
editRepoR :: Name Owner -> Name Repo -> EditRepo -> Request 'RW Repo

-- | Delete an existing repository.
--   
--   <pre>
--   deleteRepo (BasicAuth (user, password)) "thoughtbot" "some_repo"
--   </pre>
deleteRepo :: Auth -> Name Owner -> Name Repo -> IO (Either Error ())

-- | Delete a repository,. See
--   <a>https://developer.github.com/v3/repos/#delete-a-repository</a>
deleteRepoR :: Name Owner -> Name Repo -> GenRequest 'MtUnit 'RW ()


-- | The Github RateLimit API, as described at
--   <a>http://developer.github.com/v3/rate_limit/</a>.
module GitHub.Endpoints.RateLimit

-- | Get your current rate limit status.
--   <a>https://developer.github.com/v3/rate_limit/#get-your-current-rate-limit-status</a>
rateLimitR :: Request k RateLimit

-- | Get your current rate limit status (Note: Accessing this endpoint does
--   not count against your rate limit.) Without authentication.
rateLimit :: IO (Either Error RateLimit)

-- | Get your current rate limit status (Note: Accessing this endpoint does
--   not count against your rate limit.) With authentication.
rateLimit' :: Maybe Auth -> IO (Either Error RateLimit)


-- | The reviews API as described on
--   <a>http://developer.github.com/v3/pulls/reviews/</a>.
module GitHub.Endpoints.PullRequests.Reviews

-- | List reviews for a pull request. See
--   <a>https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request</a>
pullRequestReviewsR :: Name Owner -> Name Repo -> Id PullRequest -> FetchCount -> Request k (Vector Review)

-- | All reviews for a pull request given the repo owner, repo name and the
--   pull request id.
--   
--   <pre>
--   pullRequestReviews "thoughtbot" "paperclip" (Id 101)
--   </pre>
pullRequestReviews :: Name Owner -> Name Repo -> Id PullRequest -> IO (Either Error (Vector Review))

-- | All reviews for a pull request given the repo owner, repo name and the
--   pull request id. With authentication.
--   
--   <pre>
--   pullRequestReviews' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 101)
--   </pre>
pullRequestReviews' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> IO (Either Error (Vector Review))

-- | Query a single pull request review. see
--   <a>https://developer.github.com/v3/pulls/reviews/#get-a-single-review</a>
pullRequestReviewR :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> Request k Review

-- | A detailed review on a pull request given the repo owner, repo name,
--   pull request id and review id.
--   
--   <pre>
--   pullRequestReview "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReview :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error Review)

-- | A detailed review on a pull request given the repo owner, repo name,
--   pull request id and review id. With authentication.
--   
--   <pre>
--   pullRequestReview' (Just $ BasicAuth "github-username" "github-password")
--   "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReview' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error Review)

-- | Query the comments for a single pull request review. see
--   <a>https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review</a>
pullRequestReviewCommentsR :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> Request k [ReviewComment]

-- | All comments for a review on a pull request given the repo owner, repo
--   name, pull request id and review id.
--   
--   <pre>
--   pullRequestReviewComments "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReviewCommentsIO :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error [ReviewComment])

-- | All comments for a review on a pull request given the repo owner, repo
--   name, pull request id and review id. With authentication.
--   
--   <pre>
--   pullRequestReviewComments' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReviewCommentsIO' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error [ReviewComment])


-- | The pull request review comments API as described at
--   <a>http://developer.github.com/v3/pulls/comments/</a>.
module GitHub.Endpoints.PullRequests.Comments

-- | All the comments on a pull request with the given ID.
--   
--   <pre>
--   pullRequestComments "thoughtbot" "factory_girl" (Id 256)
--   </pre>
pullRequestCommentsIO :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector Comment))

-- | List comments on a pull request. See
--   <a>https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request</a>
pullRequestCommentsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector Comment)

-- | One comment on a pull request, by the comment's ID.
--   
--   <pre>
--   pullRequestComment "thoughtbot" "factory_girl" (Id 301819)
--   </pre>
pullRequestComment :: Name Owner -> Name Repo -> Id Comment -> IO (Either Error Comment)

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/pulls/comments/#get-a-single-comment</a>
pullRequestCommentR :: Name Owner -> Name Repo -> Id Comment -> Request k Comment

-- | Create a new comment.
--   
--   <pre>
--   createPullComment (BasicAuth "github-username" "github-password") user repo issue commit path position
--    "some words"
--   </pre>
createPullComment :: Auth -> Name Owner -> Name Repo -> IssueNumber -> Text -> Text -> Int -> Text -> IO (Either Error Comment)

-- | Create a comment.
--   
--   See
--   <a>https://developer.github.com/v3/pulls/comments/#create-a-comment</a>
createPullCommentR :: Name Owner -> Name Repo -> IssueNumber -> Text -> Text -> Int -> Text -> Request 'RW Comment


-- | The pull requests API as documented at
--   <a>http://developer.github.com/v3/pulls/</a>.
module GitHub.Endpoints.PullRequests

-- | All open pull requests for the repo, by owner and repo name.
--   
--   <pre>
--   pullRequestsFor "rails" "rails"
--   </pre>
pullRequestsFor :: Name Owner -> Name Repo -> IO (Either Error (Vector SimplePullRequest))

-- | All open pull requests for the repo, by owner and repo name.
--   
--   <pre>
--   pullRequestsFor "rails" "rails"
--   </pre>
pullRequestsFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector SimplePullRequest))

-- | List pull requests. See
--   <a>https://developer.github.com/v3/pulls/#list-pull-requests</a>
pullRequestsForR :: Name Owner -> Name Repo -> PullRequestMod -> FetchCount -> Request k (Vector SimplePullRequest)

-- | A detailed pull request, which has much more information. This takes
--   the repo owner and name along with the number assigned to the pull
--   request. With authentification.
--   
--   <pre>
--   pullRequest' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 562
--   </pre>
pullRequest' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error PullRequest)

-- | A detailed pull request, which has much more information. This takes
--   the repo owner and name along with the number assigned to the pull
--   request.
--   
--   <pre>
--   pullRequest "thoughtbot" "paperclip" 562
--   </pre>
pullRequest :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error PullRequest)

-- | Query a single pull request. See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Request k PullRequest

-- | Obtain the diff of a pull request See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestDiff' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)

-- | Obtain the diff of a pull request See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestDiff :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)

-- | Query a single pull request to obtain the diff See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestDiffR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtDiff rw ByteString

-- | Obtain the patch of a pull request
--   
--   See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestPatch' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)

-- | Obtain the patch of a pull request See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestPatch :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)

-- | Query a single pull request to obtain the patch See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestPatchR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtPatch rw ByteString
createPullRequest :: Auth -> Name Owner -> Name Repo -> CreatePullRequest -> IO (Either Error PullRequest)

-- | Create a pull request. See
--   <a>https://developer.github.com/v3/pulls/#create-a-pull-request</a>
createPullRequestR :: Name Owner -> Name Repo -> CreatePullRequest -> Request 'RW PullRequest

-- | Update a pull request
updatePullRequest :: Auth -> Name Owner -> Name Repo -> IssueNumber -> EditPullRequest -> IO (Either Error PullRequest)

-- | Update a pull request. See
--   <a>https://developer.github.com/v3/pulls/#update-a-pull-request</a>
updatePullRequestR :: Name Owner -> Name Repo -> IssueNumber -> EditPullRequest -> Request 'RW PullRequest

-- | All the commits on a pull request, given the repo owner, repo name,
--   and the number of the pull request. With authentification.
--   
--   <pre>
--   pullRequestCommits' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 688
--   </pre>
pullRequestCommits' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector Commit))

-- | All the commits on a pull request, given the repo owner, repo name,
--   and the number of the pull request.
--   
--   <pre>
--   pullRequestCommits "thoughtbot" "paperclip" 688
--   </pre>
pullRequestCommitsIO :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector Commit))

-- | List commits on a pull request. See
--   <a>https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request</a>
pullRequestCommitsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector Commit)

-- | The individual files that a pull request patches. Takes the repo owner
--   and name, plus the number assigned to the pull request. With
--   authentification.
--   
--   <pre>
--   pullRequestFiles' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 688
--   </pre>
pullRequestFiles' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector File))

-- | The individual files that a pull request patches. Takes the repo owner
--   and name, plus the number assigned to the pull request.
--   
--   <pre>
--   pullRequestFiles "thoughtbot" "paperclip" 688
--   </pre>
pullRequestFiles :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector File))

-- | List pull requests files. See
--   <a>https://developer.github.com/v3/pulls/#list-pull-requests-files</a>
pullRequestFilesR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector File)

-- | Check if pull request has been merged.
isPullRequestMerged :: Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error Bool)

-- | Query if a pull request has been merged. See
--   <a>https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged</a>
isPullRequestMergedR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtStatus rw Bool

-- | Merge a pull request.
mergePullRequest :: Auth -> Name Owner -> Name Repo -> IssueNumber -> Maybe Text -> IO (Either Error MergeResult)

-- | Merge a pull request (Merge Button).
--   <a>https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button</a>
mergePullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Maybe Text -> GenRequest 'MtStatus 'RW MergeResult


-- | The Owner teams API as described on
--   <a>http://developer.github.com/v3/orgs/teams/</a>.
module GitHub.Endpoints.Organizations.Teams

-- | List the public teams of an Owner.
--   
--   <pre>
--   teamsOf "thoughtbot"
--   </pre>
teamsOf :: Name Organization -> IO (Either Error (Vector SimpleTeam))

-- | List teams. List the teams of an Owner. When authenticated, lists
--   private teams visible to the authenticated user. When unauthenticated,
--   lists only public teams for an Owner.
--   
--   <pre>
--   teamsOf' (Just $ OAuth "token") "thoughtbot"
--   </pre>
teamsOf' :: Maybe Auth -> Name Organization -> IO (Either Error (Vector SimpleTeam))

-- | List teams. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-teams</a>
teamsOfR :: Name Organization -> FetchCount -> Request k (Vector SimpleTeam)

-- | The information for a single team, by team id.
--   
--   <pre>
--   teamInfoFor' (Just $ OAuth "token") 1010101
--   </pre>
teamInfoFor :: Id Team -> IO (Either Error Team)

-- | The information for a single team, by team id. With authentication
--   
--   <pre>
--   teamInfoFor' (Just $ OAuth "token") 1010101
--   </pre>
teamInfoFor' :: Maybe Auth -> Id Team -> IO (Either Error Team)

-- | Query team. See
--   <a>https://developer.github.com/v3/orgs/teams/#get-team</a>
teamInfoForR :: Id Team -> Request k Team

-- | Create a team under an Owner
--   
--   <pre>
--   createTeamFor' (OAuth "token") "Owner" (CreateTeam "newteamname" "some description" [] PermssionPull)
--   </pre>
createTeamFor' :: Auth -> Name Organization -> CreateTeam -> IO (Either Error Team)

-- | Create team. See
--   <a>https://developer.github.com/v3/orgs/teams/#create-team</a>
createTeamForR :: Name Organization -> CreateTeam -> Request 'RW Team

-- | Edit a team, by id.
--   
--   <pre>
--   editTeamFor'
--   </pre>
editTeam' :: Auth -> Id Team -> EditTeam -> IO (Either Error Team)

-- | Edit team. See
--   <a>https://developer.github.com/v3/orgs/teams/#edit-team</a>
editTeamR :: Id Team -> EditTeam -> Request 'RW Team

-- | Delete a team, by id.
--   
--   <pre>
--   deleteTeam' (OAuth "token") 1010101
--   </pre>
deleteTeam' :: Auth -> Id Team -> IO (Either Error ())

-- | Delete team.
--   
--   See <a>https://developer.github.com/v3/orgs/teams/#delete-team</a>
deleteTeamR :: Id Team -> GenRequest 'MtUnit 'RW ()

-- | List team members.
--   
--   See
--   <a>https://developer.github.com/v3/orgs/teams/#list-team-members</a>
listTeamMembersR :: Id Team -> TeamMemberRole -> FetchCount -> Request 'RA (Vector SimpleUser)

-- | Retrieve repositories for a team.
--   
--   <pre>
--   listTeamRepos (GitHub.mkTeamId team_id)
--   </pre>
listTeamRepos :: Id Team -> IO (Either Error (Vector Repo))

-- | The repositories of a single team, by team id. With authentication
--   
--   <pre>
--   listTeamRepos' (Just $ GitHub.OAuth token) (GitHub.mkTeamId team_id)
--   </pre>
listTeamRepos' :: Maybe Auth -> Id Team -> IO (Either Error (Vector Repo))

-- | Query team repositories. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-team-repos</a>
listTeamReposR :: Id Team -> FetchCount -> Request k (Vector Repo)

-- | Add a repository to a team or update the permission on the repository.
--   
--   <pre>
--   addOrUpdateTeamRepo' (OAuth "token") 1010101 "mburns" (Just PermissionPull)
--   </pre>
addOrUpdateTeamRepo' :: Auth -> Id Team -> Name Organization -> Name Repo -> Permission -> IO (Either Error ())

-- | Add or update a team repository. See
--   <a>https://developer.github.com/v3/orgs/teams/#add-or-update-team-repository</a>
addOrUpdateTeamRepoR :: Id Team -> Name Organization -> Name Repo -> Permission -> GenRequest 'MtUnit 'RW ()

-- | Retrieve team mebership information for a user.
--   
--   <pre>
--   teamMembershipInfoFor 1010101 "mburns"
--   </pre>
teamMembershipInfoFor :: Id Team -> Name Owner -> IO (Either Error TeamMembership)

-- | Retrieve team mebership information for a user. With authentication
--   
--   <pre>
--   teamMembershipInfoFor' (Just $ OAuth "token") 1010101 "mburns"
--   </pre>
teamMembershipInfoFor' :: Maybe Auth -> Id Team -> Name Owner -> IO (Either Error TeamMembership)

-- | Query team membership. See
--   &lt;<a>https://developer.github.com/v3/orgs/teams/#get-team-membership</a>
teamMembershipInfoForR :: Id Team -> Name Owner -> Request k TeamMembership

-- | Add (or invite) a member to a team.
--   
--   <pre>
--   addTeamMembershipFor' (OAuth "token") 1010101 "mburns" RoleMember
--   </pre>
addTeamMembershipFor' :: Auth -> Id Team -> Name Owner -> Role -> IO (Either Error TeamMembership)

-- | Add team membership. See
--   <a>https://developer.github.com/v3/orgs/teams/#add-team-membership</a>
addTeamMembershipForR :: Id Team -> Name Owner -> Role -> Request 'RW TeamMembership

-- | Delete a member of a team.
--   
--   <pre>
--   deleteTeamMembershipFor' (OAuth "token") 1010101 "mburns"
--   </pre>
deleteTeamMembershipFor' :: Auth -> Id Team -> Name Owner -> IO (Either Error ())

-- | Remove team membership. See
--   <a>https://developer.github.com/v3/orgs/teams/#remove-team-membership</a>
deleteTeamMembershipForR :: Id Team -> Name Owner -> GenRequest 'MtUnit 'RW ()

-- | List teams for current authenticated user
--   
--   <pre>
--   listTeamsCurrent' (OAuth "token")
--   </pre>
listTeamsCurrent' :: Auth -> IO (Either Error (Vector Team))

-- | List user teams. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-user-teams</a>
listTeamsCurrentR :: FetchCount -> Request 'RA (Vector Team)


-- | The organization members API as described on
--   <a>http://developer.github.com/v3/orgs/members/</a>.
module GitHub.Endpoints.Organizations.Members

-- | All the users who are members of the specified organization, | without
--   authentication.
--   
--   <pre>
--   membersOf "thoughtbot"
--   </pre>
membersOf :: Name Organization -> IO (Either Error (Vector SimpleUser))

-- | All the users who are members of the specified organization, | with or
--   without authentication.
--   
--   <pre>
--   membersOf' (Just $ OAuth "token") "thoughtbot"
--   </pre>
membersOf' :: Maybe Auth -> Name Organization -> IO (Either Error (Vector SimpleUser))

-- | All the users who are members of the specified organization.
--   
--   See <a>https://developer.github.com/v3/orgs/members/#members-list</a>
membersOfR :: Name Organization -> FetchCount -> Request k (Vector SimpleUser)

-- | <a>membersOfR</a> with filters.
--   
--   See <a>https://developer.github.com/v3/orgs/members/#members-list</a>
membersOfWithR :: Name Organization -> OrgMemberFilter -> OrgMemberRole -> FetchCount -> Request k (Vector SimpleUser)

-- | Check if a user is a member of an organization, | without
--   authentication.
--   
--   <pre>
--   isMemberOf "phadej" "haskell-infra"
--   </pre>
isMemberOf :: Name User -> Name Organization -> IO (Either Error Bool)

-- | Check if a user is a member of an organization, | with or without
--   authentication.
--   
--   <pre>
--   isMemberOf' (Just $ OAuth "token") "phadej" "haskell-infra"
--   </pre>
isMemberOf' :: Maybe Auth -> Name User -> Name Organization -> IO (Either Error Bool)

-- | Check if a user is a member of an organization.
--   
--   See
--   <a>https://developer.github.com/v3/orgs/members/#check-membership</a>
isMemberOfR :: Name User -> Name Organization -> GenRequest 'MtStatus rw Bool

-- | List pending organization invitations
--   
--   See
--   <a>https://developer.github.com/v3/orgs/members/#list-pending-organization-invitations</a>
orgInvitationsR :: Name Organization -> FetchCount -> Request 'RA (Vector Invitation)


-- | The orgs API as described on
--   <a>http://developer.github.com/v3/orgs/</a>.
module GitHub.Endpoints.Organizations

-- | List user organizations. The public organizations for a user, given
--   the user's login.
--   
--   <pre>
--   publicOrganizationsFor "mike-burns"
--   </pre>
publicOrganizationsFor :: Name User -> IO (Either Error (Vector SimpleOrganization))

-- | The public organizations for a user, given the user's login, with
--   authorization
--   
--   <pre>
--   publicOrganizationsFor' (Just $ BasicAuth "github-username" "github-password") "mike-burns"
--   </pre>
publicOrganizationsFor' :: Maybe Auth -> Name User -> IO (Either Error (Vector SimpleOrganization))

-- | List public user organizations. See
--   <a>https://developer.github.com/v3/orgs/#list-user-organizations</a>
publicOrganizationsForR :: Name User -> FetchCount -> Request k (Vector SimpleOrganization)

-- | Query an organization. Details on a public organization. Takes the
--   organization's login.
--   
--   <pre>
--   publicOrganization "thoughtbot"
--   </pre>
publicOrganization :: Name Organization -> IO (Either Error Organization)

-- | Details on a public organization. Takes the organization's login.
--   
--   <pre>
--   publicOrganization' (Just $ BasicAuth "github-username" "github-password") "thoughtbot"
--   </pre>
publicOrganization' :: Maybe Auth -> Name Organization -> IO (Either Error Organization)

-- | Query an organization. See
--   <a>https://developer.github.com/v3/orgs/#get-an-organization</a>
publicOrganizationR :: Name Organization -> Request k Organization

-- | List all user organizations. See
--   <a>https://developer.github.com/v3/orgs/#list-your-organizations</a>
organizationsR :: FetchCount -> Request k (Vector SimpleOrganization)


-- | The milestones API as described on
--   <a>http://developer.github.com/v3/issues/milestones/</a>.
module GitHub.Endpoints.Issues.Milestones

-- | All milestones in the repo.
--   
--   <pre>
--   milestones "thoughtbot" "paperclip"
--   </pre>
milestones :: Name Owner -> Name Repo -> IO (Either Error (Vector Milestone))

-- | All milestones in the repo, using authentication.
--   
--   <pre>
--   milestones' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
milestones' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector Milestone))

-- | List milestones for a repository. See
--   <a>https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository</a>
milestonesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Milestone)

-- | Details on a specific milestone, given it's milestone number.
--   
--   <pre>
--   milestone "thoughtbot" "paperclip" (Id 2)
--   </pre>
milestone :: Name Owner -> Name Repo -> Id Milestone -> IO (Either Error Milestone)

-- | Query a single milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#get-a-single-milestone</a>
milestoneR :: Name Owner -> Name Repo -> Id Milestone -> Request k Milestone
createMilestone :: Auth -> Name Owner -> Name Repo -> NewMilestone -> IO (Either Error Milestone)

-- | Create a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#create-a-milestone</a>
createMilestoneR :: Name Owner -> Name Repo -> NewMilestone -> Request 'RW Milestone
updateMilestone :: Auth -> Name Owner -> Name Repo -> Id Milestone -> UpdateMilestone -> IO (Either Error Milestone)

-- | Update a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#update-a-milestone</a>
updateMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> UpdateMilestone -> Request 'RW Milestone
deleteMilestone :: Auth -> Name Owner -> Name Repo -> Id Milestone -> IO (Either Error ())

-- | Delete a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#delete-a-milestone</a>
deleteMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> GenRequest 'MtUnit 'RW ()


-- | The API for dealing with labels on Github issues as described on
--   <a>http://developer.github.com/v3/issues/labels/</a>.
module GitHub.Endpoints.Issues.Labels

-- | All the labels available to use on any issue in the repo.
--   
--   <pre>
--   labelsOnRepo "thoughtbot" "paperclip"
--   </pre>
labelsOnRepo :: Name Owner -> Name Repo -> IO (Either Error (Vector IssueLabel))

-- | All the labels available to use on any issue in the repo using
--   authentication.
--   
--   <pre>
--   labelsOnRepo' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
labelsOnRepo' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector IssueLabel))

-- | List all labels for this repository. See
--   <a>https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository</a>
labelsOnRepoR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector IssueLabel)

-- | A label by name.
--   
--   <pre>
--   label "thoughtbot" "paperclip" "bug"
--   </pre>
label :: Name Owner -> Name Repo -> Name IssueLabel -> IO (Either Error IssueLabel)

-- | A label by name using authentication.
--   
--   <pre>
--   label' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "bug"
--   </pre>
label' :: Maybe Auth -> Name Owner -> Name Repo -> Name IssueLabel -> IO (Either Error IssueLabel)

-- | Query a single label. See
--   <a>https://developer.github.com/v3/issues/labels/#get-a-single-label</a>
labelR :: Name Owner -> Name Repo -> Name IssueLabel -> Request k IssueLabel

-- | Create a label
--   
--   <pre>
--   createLabel (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "bug" "f29513"
--   </pre>
createLabel :: Auth -> Name Owner -> Name Repo -> Name IssueLabel -> String -> IO (Either Error IssueLabel)

-- | Create a label. See
--   <a>https://developer.github.com/v3/issues/labels/#create-a-label</a>
createLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> String -> Request 'RW IssueLabel

-- | Update a label
--   
--   <pre>
--   updateLabel (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "bug" "new-bug" "ff1111"
--   </pre>
updateLabel :: Auth -> Name Owner -> Name Repo -> Name IssueLabel -> Name IssueLabel -> String -> IO (Either Error IssueLabel)

-- | Update a label. See
--   <a>https://developer.github.com/v3/issues/labels/#update-a-label</a>
updateLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> Name IssueLabel -> String -> Request 'RW IssueLabel

-- | Delete a label
--   
--   <pre>
--   deleteLabel (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "bug"
--   </pre>
deleteLabel :: Auth -> Name Owner -> Name Repo -> Name IssueLabel -> IO (Either Error ())

-- | Delete a label. See
--   <a>https://developer.github.com/v3/issues/labels/#delete-a-label</a>
deleteLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> GenRequest 'MtUnit 'RW ()

-- | The labels on an issue in a repo.
--   
--   <pre>
--   labelsOnIssue "thoughtbot" "paperclip" 585
--   </pre>
labelsOnIssue :: Name Owner -> Name Repo -> Id Issue -> IO (Either Error (Vector IssueLabel))

-- | The labels on an issue in a repo using authentication.
--   
--   <pre>
--   labelsOnIssue' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 585)
--   </pre>
labelsOnIssue' :: Maybe Auth -> Name Owner -> Name Repo -> Id Issue -> IO (Either Error (Vector IssueLabel))

-- | List labels on an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#list-labels-on-an-issue</a>
labelsOnIssueR :: Name Owner -> Name Repo -> Id Issue -> FetchCount -> Request k (Vector IssueLabel)

-- | Add labels to an issue.
--   
--   <pre>
--   addLabelsToIssue (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 585) ["Label1" "Label2"]
--   </pre>
addLabelsToIssue :: Foldable f => Auth -> Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> IO (Either Error (Vector IssueLabel))

-- | Add lables to an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue</a>
addLabelsToIssueR :: Foldable f => Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> Request 'RW (Vector IssueLabel)

-- | Remove a label from an issue.
--   
--   <pre>
--   removeLabelFromIssue (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 585) "bug"
--   </pre>
removeLabelFromIssue :: Auth -> Name Owner -> Name Repo -> Id Issue -> Name IssueLabel -> IO (Either Error ())

-- | Remove a label from an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue</a>
removeLabelFromIssueR :: Name Owner -> Name Repo -> Id Issue -> Name IssueLabel -> GenRequest 'MtUnit 'RW ()

-- | Replace all labels on an issue. Sending an empty list will remove all
--   labels from the issue.
--   
--   <pre>
--   replaceAllLabelsForIssue (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 585) ["Label1" "Label2"]
--   </pre>
replaceAllLabelsForIssue :: Foldable f => Auth -> Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> IO (Either Error (Vector IssueLabel))

-- | Replace all labels on an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue</a>
--   
--   Sending an empty list will remove all labels from the issue.
replaceAllLabelsForIssueR :: Foldable f => Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> Request 'RW (Vector IssueLabel)

-- | Remove all labels from an issue.
--   
--   <pre>
--   removeAllLabelsFromIssue (BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 585)
--   </pre>
removeAllLabelsFromIssue :: Auth -> Name Owner -> Name Repo -> Id Issue -> IO (Either Error ())

-- | Remove all labels from an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue</a>
removeAllLabelsFromIssueR :: Name Owner -> Name Repo -> Id Issue -> GenRequest 'MtUnit 'RW ()

-- | All the labels on a repo's milestone given the milestone ID.
--   
--   <pre>
--   labelsOnMilestone "thoughtbot" "paperclip" (Id 2)
--   </pre>
labelsOnMilestone :: Name Owner -> Name Repo -> Id Milestone -> IO (Either Error (Vector IssueLabel))

-- | All the labels on a repo's milestone given the milestone ID using
--   authentication.
--   
--   <pre>
--   labelsOnMilestone' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 2)
--   </pre>
labelsOnMilestone' :: Maybe Auth -> Name Owner -> Name Repo -> Id Milestone -> IO (Either Error (Vector IssueLabel))

-- | Query labels for every issue in a milestone. See
--   <a>https://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone</a>
labelsOnMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> FetchCount -> Request k (Vector IssueLabel)


-- | The Github issue events API, which is described on
--   <a>http://developer.github.com/v3/issues/events/</a>
module GitHub.Endpoints.Issues.Events

-- | All events that have happened on an issue.
--   
--   <pre>
--   eventsForIssue "thoughtbot" "paperclip" 49
--   </pre>
eventsForIssue :: Name Owner -> Name Repo -> Id Issue -> IO (Either Error (Vector IssueEvent))

-- | All events that have happened on an issue, using authentication.
--   
--   <pre>
--   eventsForIssue' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 49
--   </pre>
eventsForIssue' :: Maybe Auth -> Name Owner -> Name Repo -> Id Issue -> IO (Either Error (Vector IssueEvent))

-- | List events for an issue. See
--   <a>https://developer.github.com/v3/issues/events/#list-events-for-an-issue</a>
eventsForIssueR :: Name Owner -> Name Repo -> Id Issue -> FetchCount -> Request k (Vector IssueEvent)

-- | All the events for all issues in a repo.
--   
--   <pre>
--   eventsForRepo "thoughtbot" "paperclip"
--   </pre>
eventsForRepo :: Name Owner -> Name Repo -> IO (Either Error (Vector IssueEvent))

-- | All the events for all issues in a repo, using authentication.
--   
--   <pre>
--   eventsForRepo' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
eventsForRepo' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector IssueEvent))

-- | List events for a repository. See
--   <a>https://developer.github.com/v3/issues/events/#list-events-for-a-repository</a>
eventsForRepoR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector IssueEvent)

-- | Details on a specific event, by the event's ID.
--   
--   <pre>
--   event "thoughtbot" "paperclip" 5335772
--   </pre>
event :: Name Owner -> Name Repo -> Id IssueEvent -> IO (Either Error IssueEvent)

-- | Details on a specific event, by the event's ID, using authentication.
--   
--   <pre>
--   event' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 5335772
--   </pre>
event' :: Maybe Auth -> Name Owner -> Name Repo -> Id IssueEvent -> IO (Either Error IssueEvent)

-- | Query a single event. See
--   <a>https://developer.github.com/v3/issues/events/#get-a-single-event</a>
eventR :: Name Owner -> Name Repo -> Id IssueEvent -> Request k IssueEvent


-- | The Github issue comments API from
--   <a>http://developer.github.com/v3/issues/comments/</a>.
module GitHub.Endpoints.Issues.Comments

-- | A specific comment, by ID.
--   
--   <pre>
--   comment "thoughtbot" "paperclip" 1468184
--   </pre>
comment :: Name Owner -> Name Repo -> Id Comment -> IO (Either Error IssueComment)

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/issues/comments/#get-a-single-comment</a>
commentR :: Name Owner -> Name Repo -> Id Comment -> Request k IssueComment

-- | All comments on an issue, by the issue's number.
--   
--   <pre>
--   comments "thoughtbot" "paperclip" 635
--   </pre>
comments :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector IssueComment))

-- | List comments on an issue. See
--   <a>https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue</a>
commentsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector IssueComment)

-- | All comments on an issue, by the issue's number, using authentication.
--   
--   <pre>
--   comments' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" 635
--   </pre>
comments' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector IssueComment))

-- | Create a new comment.
--   
--   <pre>
--   createComment (BasicAuth "github-username" "github-password") user repo issue
--    "some words"
--   </pre>
createComment :: Auth -> Name Owner -> Name Repo -> IssueNumber -> Text -> IO (Either Error Comment)

-- | Create a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#create-a-comment</a>
createCommentR :: Name Owner -> Name Repo -> IssueNumber -> Text -> Request 'RW Comment

-- | Delete a comment.
--   
--   <pre>
--   deleteComment (BasicAuth "github-username" "github-password") user repo commentid
--   </pre>
deleteComment :: Auth -> Name Owner -> Name Repo -> Id Comment -> IO (Either Error ())

-- | Delete a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#delete-a-comment</a>
deleteCommentR :: Name Owner -> Name Repo -> Id Comment -> GenRequest 'MtUnit 'RW ()

-- | Edit a comment.
--   
--   <pre>
--   editComment (BasicAuth "github-username" "github-password") user repo commentid
--    "new words"
--   </pre>
editComment :: Auth -> Name Owner -> Name Repo -> Id Comment -> Text -> IO (Either Error Comment)

-- | Edit a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#edit-a-comment</a>
editCommentR :: Name Owner -> Name Repo -> Id Comment -> Text -> Request 'RW Comment


-- | The issues API as described on
--   <a>http://developer.github.com/v3/issues/</a>.
module GitHub.Endpoints.Issues

-- | See <a>https://developer.github.com/v3/issues/#list-issues</a>.
currentUserIssuesR :: IssueMod -> FetchCount -> Request 'RA (Vector Issue)

-- | See <a>https://developer.github.com/v3/issues/#list-issues</a>.
organizationIssuesR :: Name Organization -> IssueMod -> FetchCount -> Request k (Vector Issue)

-- | Details on a specific issue, given the repo owner and name, and the
--   issue number.
--   
--   <pre>
--   issue "thoughtbot" "paperclip" (Id "462")
--   </pre>
issue :: Name Owner -> Name Repo -> Id Issue -> IO (Either Error Issue)

-- | Details on a specific issue, given the repo owner and name, and the
--   issue number.'
--   
--   <pre>
--   issue' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "462"
--   </pre>
issue' :: Maybe Auth -> Name Owner -> Name Repo -> Id Issue -> IO (Either Error Issue)

-- | Query a single issue. See
--   <a>https://developer.github.com/v3/issues/#get-a-single-issue</a>
issueR :: Name Owner -> Name Repo -> Id Issue -> Request k Issue

-- | All issues for a repo (given the repo owner and name), with optional
--   restrictions as described in the <a>IssueRepoMod</a> data type.
--   
--   <pre>
--   issuesForRepo "thoughtbot" "paperclip" [NoMilestone, OnlyClosed, Mentions "jyurek", Ascending]
--   </pre>
issuesForRepo :: Name Owner -> Name Repo -> IssueRepoMod -> IO (Either Error (Vector Issue))

-- | All issues for a repo (given the repo owner and name), with optional
--   restrictions as described in the <a>IssueRepoMod</a> data type.
--   
--   <pre>
--   issuesForRepo' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" [NoMilestone, OnlyClosed, Mentions "jyurek", Ascending]
--   </pre>
issuesForRepo' :: Maybe Auth -> Name Owner -> Name Repo -> IssueRepoMod -> IO (Either Error (Vector Issue))

-- | List issues for a repository. See
--   <a>https://developer.github.com/v3/issues/#list-issues-for-a-repository</a>
issuesForRepoR :: Name Owner -> Name Repo -> IssueRepoMod -> FetchCount -> Request k (Vector Issue)

-- | Create a new issue.
--   
--   <pre>
--   createIssue (BasicAuth "github-username" "github-password") user repo
--    (newIssue "some_repo") {...}
--   </pre>
createIssue :: Auth -> Name Owner -> Name Repo -> NewIssue -> IO (Either Error Issue)

-- | Create an issue. See
--   <a>https://developer.github.com/v3/issues/#create-an-issue</a>
createIssueR :: Name Owner -> Name Repo -> NewIssue -> Request 'RW Issue
newIssue :: Text -> NewIssue

-- | Edit an issue.
--   
--   <pre>
--   editIssue (BasicAuth "github-username" "github-password") user repo issue
--    editOfIssue {...}
--   </pre>
editIssue :: Auth -> Name Owner -> Name Repo -> Id Issue -> EditIssue -> IO (Either Error Issue)

-- | Edit an issue. See
--   <a>https://developer.github.com/v3/issues/#edit-an-issue</a>
editIssueR :: Name Owner -> Name Repo -> Id Issue -> EditIssue -> Request 'RW Issue
editOfIssue :: EditIssue


-- | The underlying tree of SHA1s and files that make up a git repo. The
--   API is described on <a>http://developer.github.com/v3/git/trees/</a>.
module GitHub.Endpoints.GitData.Trees

-- | A tree for a SHA1.
--   
--   <pre>
--   tree "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
--   </pre>
tree :: Name Owner -> Name Repo -> Name Tree -> IO (Either Error Tree)

-- | A tree for a SHA1.
--   
--   <pre>
--   tree (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
--   </pre>
tree' :: Maybe Auth -> Name Owner -> Name Repo -> Name Tree -> IO (Either Error Tree)

-- | Query a Tree. See
--   <a>https://developer.github.com/v3/git/trees/#get-a-tree</a>
treeR :: Name Owner -> Name Repo -> Name Tree -> Request k Tree

-- | A recursively-nested tree for a SHA1.
--   
--   <pre>
--   nestedTree "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
--   </pre>
nestedTree :: Name Owner -> Name Repo -> Name Tree -> IO (Either Error Tree)

-- | A recursively-nested tree for a SHA1.
--   
--   <pre>
--   nestedTree' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
--   </pre>
nestedTree' :: Maybe Auth -> Name Owner -> Name Repo -> Name Tree -> IO (Either Error Tree)

-- | Query a Tree Recursively. See
--   <a>https://developer.github.com/v3/git/trees/#get-a-tree-recursively</a>
nestedTreeR :: Name Owner -> Name Repo -> Name Tree -> Request k Tree


-- | The underlying git references on a Github repo, exposed for the world
--   to see. The git internals documentation will also prove handy for
--   understanding these. API documentation at
--   <a>http://developer.github.com/v3/git/refs/</a>.
module GitHub.Endpoints.GitData.References

-- | A single reference by the ref name.
--   
--   <pre>
--   reference "mike-burns" "github" "heads/master"
--   </pre>
reference :: Name Owner -> Name Repo -> Name GitReference -> IO (Either Error GitReference)

-- | A single reference by the ref name.
--   
--   <pre>
--   reference' (Just $ BasicAuth "github-username" "github-password") "mike-burns" "github" "heads/master"
--   </pre>
reference' :: Maybe Auth -> Name Owner -> Name Repo -> Name GitReference -> IO (Either Error GitReference)

-- | Query a reference. See
--   <a>https://developer.github.com/v3/git/refs/#get-a-reference</a>
referenceR :: Name Owner -> Name Repo -> Name GitReference -> Request k GitReference

-- | The history of references for a repo.
--   
--   <pre>
--   references "mike-burns" "github"
--   </pre>
references :: Name Owner -> Name Repo -> IO (Either Error (Vector GitReference))

-- | The history of references for a repo.
--   
--   <pre>
--   references "mike-burns" "github"
--   </pre>
references' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector GitReference))

-- | Query all References. See
--   <a>https://developer.github.com/v3/git/refs/#get-all-references</a>
referencesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector GitReference)

-- | Create a reference.
createReference :: Auth -> Name Owner -> Name Repo -> NewGitReference -> IO (Either Error GitReference)

-- | Create a reference. See
--   <a>https://developer.github.com/v3/git/refs/#create-a-reference</a>
createReferenceR :: Name Owner -> Name Repo -> NewGitReference -> Request 'RW GitReference

-- | Limited references by a namespace.
--   
--   <pre>
--   namespacedReferences "thoughtbot" "paperclip" "tags"
--   </pre>
namespacedReferences :: Name Owner -> Name Repo -> Text -> IO (Either Error [GitReference])


-- | The API for underlying git commits of a Github repo, as described on
--   <a>http://developer.github.com/v3/git/commits/</a>.
module GitHub.Endpoints.GitData.Commits

-- | A single commit, by SHA1.
--   
--   <pre>
--   commit "thoughtbot" "paperclip" "bc5c51d1ece1ee45f94b056a0f5a1674d7e8cba9"
--   </pre>
commit :: Name Owner -> Name Repo -> Name GitCommit -> IO (Either Error GitCommit)

-- | Query a commit. See
--   <a>https://developer.github.com/v3/git/commits/#get-a-commit</a>
gitCommitR :: Name Owner -> Name Repo -> Name GitCommit -> Request k GitCommit


-- | The API for dealing with git blobs from Github repos, as described in
--   <a>http://developer.github.com/v3/git/blobs/</a>.
module GitHub.Endpoints.GitData.Blobs

-- | Query a blob by SHA1.
--   
--   <pre>
--   blob "thoughtbot" "paperclip" "bc5c51d1ece1ee45f94b056a0f5a1674d7e8cba9"
--   </pre>
blob :: Name Owner -> Name Repo -> Name Blob -> IO (Either Error Blob)

-- | Query a blob by SHA1.
--   
--   <pre>
--   blob' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" "bc5c51d1ece1ee45f94b056a0f5a1674d7e8cba9"
--   </pre>
blob' :: Maybe Auth -> Name Owner -> Name Repo -> Name Blob -> IO (Either Error Blob)

-- | Query a blob. See
--   <a>https://developer.github.com/v3/git/blobs/#get-a-blob</a>
blobR :: Name Owner -> Name Repo -> Name Blob -> Request k Blob


-- | The loving comments people have left on Gists, described on
--   <a>http://developer.github.com/v3/gists/comments/</a>.
module GitHub.Endpoints.Gists.Comments

-- | All the comments on a Gist, given the Gist ID.
--   
--   <pre>
--   commentsOn "1174060"
--   </pre>
commentsOn :: Name Gist -> IO (Either Error (Vector GistComment))

-- | List comments on a gist. See
--   <a>https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist</a>
commentsOnR :: Name Gist -> FetchCount -> Request k (Vector GistComment)

-- | A specific comment, by the comment ID.
--   
--   <pre>
--   comment (Id 62449)
--   </pre>
comment :: Id GistComment -> IO (Either Error GistComment)

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/gists/comments/#get-a-single-comment</a>
gistCommentR :: Id GistComment -> Request k GistComment


-- | The gists API as described at
--   <a>http://developer.github.com/v3/gists/</a>.
module GitHub.Endpoints.Gists

-- | The list of all public gists created by the user.
--   
--   <pre>
--   gists "mike-burns"
--   </pre>
gists :: Name Owner -> IO (Either Error (Vector Gist))

-- | The list of all gists created by the user
--   
--   <pre>
--   gists' (Just $ BasicAuth "github-username" "github-password") "mike-burns"
--   </pre>
gists' :: Maybe Auth -> Name Owner -> IO (Either Error (Vector Gist))

-- | List gists. See
--   <a>https://developer.github.com/v3/gists/#list-gists</a>
gistsR :: Name Owner -> FetchCount -> Request k (Vector Gist)

-- | A specific gist, given its id.
--   
--   <pre>
--   gist "225074"
--   </pre>
gist :: Name Gist -> IO (Either Error Gist)

-- | A specific gist, given its id, with authentication credentials
--   
--   <pre>
--   gist' (Just $ BasicAuth "github-username" "github-password") "225074"
--   </pre>
gist' :: Maybe Auth -> Name Gist -> IO (Either Error Gist)

-- | Query a single gist. See
--   <a>https://developer.github.com/v3/gists/#get-a-single-gist</a>
gistR :: Name Gist -> Request k Gist

-- | Star a gist by the authenticated user.
--   
--   <pre>
--   starGist (BasicAuth "github-username" "github-password") "225074"
--   </pre>
starGist :: Auth -> Name Gist -> IO (Either Error ())

-- | Star a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#star-a-gist</a>
starGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()

-- | Unstar a gist by the authenticated user.
--   
--   <pre>
--   unstarGist (BasicAuth "github-username" "github-password") "225074"
--   </pre>
unstarGist :: Auth -> Name Gist -> IO (Either Error ())

-- | Unstar a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#unstar-a-gist</a>
unstarGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()

-- | Delete a gist by the authenticated user.
--   
--   <pre>
--   deleteGist (BasicAuth "github-username" "github-password") "225074"
--   </pre>
deleteGist :: Auth -> Name Gist -> IO (Either Error ())

-- | Delete a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#delete-a-gist</a>
deleteGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()


-- | The repo watching API as described on
--   <a>https://developer.github.com/v3/activity/watching/</a>.
module GitHub.Endpoints.Activity.Watching

-- | The list of users that are watching the specified Github repo.
--   
--   <pre>
--   watchersFor "thoughtbot" "paperclip"
--   </pre>
watchersFor :: Name Owner -> Name Repo -> IO (Either Error (Vector SimpleUser))

-- | The list of users that are watching the specified Github repo. With
--   authentication
--   
--   <pre>
--   watchersFor' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip"
--   </pre>
watchersFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector SimpleUser))

-- | List watchers. See
--   <a>https://developer.github.com/v3/activity/watching/#list-watchers</a>
watchersForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | All the public repos watched by the specified user.
--   
--   <pre>
--   reposWatchedBy "croaky"
--   </pre>
reposWatchedBy :: Name Owner -> IO (Either Error (Vector Repo))

-- | All the public repos watched by the specified user. With
--   authentication
--   
--   <pre>
--   reposWatchedBy' (Just $ BasicAuth "github-username" "github-password") "croaky"
--   </pre>
reposWatchedBy' :: Maybe Auth -> Name Owner -> IO (Either Error (Vector Repo))

-- | List repositories being watched. See
--   <a>https://developer.github.com/v3/activity/watching/#list-repositories-being-watched</a>
reposWatchedByR :: Name Owner -> FetchCount -> Request k (Vector Repo)


-- | The repo starring API as described on
--   <a>https://developer.github.com/v3/activity/starring/</a>.
module GitHub.Endpoints.Activity.Starring

-- | The list of users that have starred the specified Github repo.
--   
--   <pre>
--   userInfoFor' Nothing "mike-burns"
--   </pre>
stargazersFor :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector SimpleUser))

-- | List Stargazers. See
--   <a>https://developer.github.com/v3/activity/starring/#list-stargazers</a>
stargazersForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | All the public repos starred by the specified user.
--   
--   <pre>
--   reposStarredBy Nothing "croaky"
--   </pre>
reposStarredBy :: Maybe Auth -> Name Owner -> IO (Either Error (Vector Repo))

-- | List repositories being starred. See
--   <a>https://developer.github.com/v3/activity/starring/#list-repositories-being-starred</a>
reposStarredByR :: Name Owner -> FetchCount -> Request k (Vector Repo)

-- | All the repos starred by the authenticated user.
myStarred :: Auth -> IO (Either Error (Vector Repo))

-- | All the repos starred by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#list-repositories-being-starred</a>
myStarredR :: FetchCount -> Request 'RA (Vector Repo)

-- | All the repos starred by the authenticated user.
myStarredAcceptStar :: Auth -> IO (Either Error (Vector RepoStarred))

-- | All the repos starred by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#alternative-response-with-star-creation-timestamps-1</a>
myStarredAcceptStarR :: FetchCount -> GenRequest 'MtStar 'RA (Vector RepoStarred)

-- | Star a repo by the authenticated user.
starRepo :: Auth -> Name Owner -> Name Repo -> IO (Either Error ())

-- | Star a repo by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#star-a-repository</a>
starRepoR :: Name Owner -> Name Repo -> GenRequest 'MtUnit 'RW ()

-- | Unstar a repo by the authenticated user.
unstarRepo :: Auth -> Name Owner -> Name Repo -> IO (Either Error ())

-- | Unstar a repo by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#unstar-a-repository</a>
unstarRepoR :: Name Owner -> Name Repo -> GenRequest 'MtUnit 'RW ()


-- | The repo watching API as described on
--   <a>https://developer.github.com/v3/activity/notifications/</a>.
module GitHub.Endpoints.Activity.Notifications
getNotifications :: Auth -> IO (Either Error (Vector Notification))

-- | List your notifications. See
--   <a>https://developer.github.com/v3/activity/notifications/#list-your-notifications</a>
getNotificationsR :: FetchCount -> Request 'RA (Vector Notification)
markNotificationAsRead :: Auth -> Id Notification -> IO (Either Error ())

-- | Mark a thread as read. See
--   <a>https://developer.github.com/v3/activity/notifications/#mark-a-thread-as-read</a>
markNotificationAsReadR :: Id Notification -> GenRequest 'MtUnit 'RW ()
markNotificationsAsRead :: Auth -> IO (Either Error ())

-- | Mark as read. See
--   <a>https://developer.github.com/v3/activity/notifications/#mark-as-read</a>
markAllNotificationsAsReadR :: GenRequest 'MtUnit 'RW ()


-- | This module re-exports all request constructrors and data definitions
--   from this package.
--   
--   See <a>GitHub.Request</a> module for executing <a>Request</a>, or
--   other modules of this package (e.g. <a>GitHub.Endpoints.Users</a>) for
--   already composed versions.
--   
--   The missing endpoints lists show which endpoints we know are missing,
--   there might be more.
module GitHub

-- | List repository events. See
--   <a>https://developer.github.com/v3/activity/events/#list-repository-events</a>
repositoryEventsR :: Name Owner -> Name Repo -> FetchCount -> Request 'RO (Vector Event)

-- | List user public events. See
--   <a>https://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user</a>
userEventsR :: Name User -> FetchCount -> Request 'RO (Vector Event)

-- | List your notifications. See
--   <a>https://developer.github.com/v3/activity/notifications/#list-your-notifications</a>
getNotificationsR :: FetchCount -> Request 'RA (Vector Notification)

-- | Mark a thread as read. See
--   <a>https://developer.github.com/v3/activity/notifications/#mark-a-thread-as-read</a>
markNotificationAsReadR :: Id Notification -> GenRequest 'MtUnit 'RW ()

-- | Mark as read. See
--   <a>https://developer.github.com/v3/activity/notifications/#mark-as-read</a>
markAllNotificationsAsReadR :: GenRequest 'MtUnit 'RW ()

-- | List Stargazers. See
--   <a>https://developer.github.com/v3/activity/starring/#list-stargazers</a>
stargazersForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | List repositories being starred. See
--   <a>https://developer.github.com/v3/activity/starring/#list-repositories-being-starred</a>
reposStarredByR :: Name Owner -> FetchCount -> Request k (Vector Repo)

-- | All the repos starred by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#list-repositories-being-starred</a>
myStarredR :: FetchCount -> Request 'RA (Vector Repo)

-- | All the repos starred by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#alternative-response-with-star-creation-timestamps-1</a>
myStarredAcceptStarR :: FetchCount -> GenRequest 'MtStar 'RA (Vector RepoStarred)

-- | Star a repo by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#star-a-repository</a>
starRepoR :: Name Owner -> Name Repo -> GenRequest 'MtUnit 'RW ()

-- | Unstar a repo by the authenticated user. See
--   <a>https://developer.github.com/v3/activity/starring/#unstar-a-repository</a>
unstarRepoR :: Name Owner -> Name Repo -> GenRequest 'MtUnit 'RW ()

-- | List watchers. See
--   <a>https://developer.github.com/v3/activity/watching/#list-watchers</a>
watchersForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | List repositories being watched. See
--   <a>https://developer.github.com/v3/activity/watching/#list-repositories-being-watched</a>
reposWatchedByR :: Name Owner -> FetchCount -> Request k (Vector Repo)

-- | List gists. See
--   <a>https://developer.github.com/v3/gists/#list-gists</a>
gistsR :: Name Owner -> FetchCount -> Request k (Vector Gist)

-- | Query a single gist. See
--   <a>https://developer.github.com/v3/gists/#get-a-single-gist</a>
gistR :: Name Gist -> Request k Gist

-- | Star a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#star-a-gist</a>
starGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()

-- | Unstar a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#unstar-a-gist</a>
unstarGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()

-- | Delete a gist by the authenticated user. See
--   <a>https://developer.github.com/v3/gists/#delete-a-gist</a>
deleteGistR :: Name Gist -> GenRequest 'MtUnit 'RW ()

-- | List comments on a gist. See
--   <a>https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist</a>
commentsOnR :: Name Gist -> FetchCount -> Request k (Vector GistComment)

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/gists/comments/#get-a-single-comment</a>
gistCommentR :: Id GistComment -> Request k GistComment

-- | Query a blob. See
--   <a>https://developer.github.com/v3/git/blobs/#get-a-blob</a>
blobR :: Name Owner -> Name Repo -> Name Blob -> Request k Blob

-- | Query a commit. See
--   <a>https://developer.github.com/v3/git/commits/#get-a-commit</a>
gitCommitR :: Name Owner -> Name Repo -> Name GitCommit -> Request k GitCommit

-- | Query a reference. See
--   <a>https://developer.github.com/v3/git/refs/#get-a-reference</a>
referenceR :: Name Owner -> Name Repo -> Name GitReference -> Request k GitReference

-- | Query all References. See
--   <a>https://developer.github.com/v3/git/refs/#get-all-references</a>
referencesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector GitReference)

-- | Create a reference. See
--   <a>https://developer.github.com/v3/git/refs/#create-a-reference</a>
createReferenceR :: Name Owner -> Name Repo -> NewGitReference -> Request 'RW GitReference

-- | Query a Tree. See
--   <a>https://developer.github.com/v3/git/trees/#get-a-tree</a>
treeR :: Name Owner -> Name Repo -> Name Tree -> Request k Tree

-- | Query a Tree Recursively. See
--   <a>https://developer.github.com/v3/git/trees/#get-a-tree-recursively</a>
nestedTreeR :: Name Owner -> Name Repo -> Name Tree -> Request k Tree

-- | See <a>https://developer.github.com/v3/issues/#list-issues</a>.
currentUserIssuesR :: IssueMod -> FetchCount -> Request 'RA (Vector Issue)

-- | See <a>https://developer.github.com/v3/issues/#list-issues</a>.
organizationIssuesR :: Name Organization -> IssueMod -> FetchCount -> Request k (Vector Issue)

-- | Query a single issue. See
--   <a>https://developer.github.com/v3/issues/#get-a-single-issue</a>
issueR :: Name Owner -> Name Repo -> Id Issue -> Request k Issue

-- | List issues for a repository. See
--   <a>https://developer.github.com/v3/issues/#list-issues-for-a-repository</a>
issuesForRepoR :: Name Owner -> Name Repo -> IssueRepoMod -> FetchCount -> Request k (Vector Issue)

-- | Create an issue. See
--   <a>https://developer.github.com/v3/issues/#create-an-issue</a>
createIssueR :: Name Owner -> Name Repo -> NewIssue -> Request 'RW Issue

-- | Edit an issue. See
--   <a>https://developer.github.com/v3/issues/#edit-an-issue</a>
editIssueR :: Name Owner -> Name Repo -> Id Issue -> EditIssue -> Request 'RW Issue

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/issues/comments/#get-a-single-comment</a>
commentR :: Name Owner -> Name Repo -> Id Comment -> Request k IssueComment

-- | List comments on an issue. See
--   <a>https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue</a>
commentsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector IssueComment)

-- | Create a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#create-a-comment</a>
createCommentR :: Name Owner -> Name Repo -> IssueNumber -> Text -> Request 'RW Comment

-- | Delete a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#delete-a-comment</a>
deleteCommentR :: Name Owner -> Name Repo -> Id Comment -> GenRequest 'MtUnit 'RW ()

-- | Edit a comment. See
--   <a>https://developer.github.com/v3/issues/comments/#edit-a-comment</a>
editCommentR :: Name Owner -> Name Repo -> Id Comment -> Text -> Request 'RW Comment

-- | List events for an issue. See
--   <a>https://developer.github.com/v3/issues/events/#list-events-for-an-issue</a>
eventsForIssueR :: Name Owner -> Name Repo -> Id Issue -> FetchCount -> Request k (Vector IssueEvent)

-- | List events for a repository. See
--   <a>https://developer.github.com/v3/issues/events/#list-events-for-a-repository</a>
eventsForRepoR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector IssueEvent)

-- | Query a single event. See
--   <a>https://developer.github.com/v3/issues/events/#get-a-single-event</a>
eventR :: Name Owner -> Name Repo -> Id IssueEvent -> Request k IssueEvent

-- | List all labels for this repository. See
--   <a>https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository</a>
labelsOnRepoR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector IssueLabel)

-- | Query a single label. See
--   <a>https://developer.github.com/v3/issues/labels/#get-a-single-label</a>
labelR :: Name Owner -> Name Repo -> Name IssueLabel -> Request k IssueLabel

-- | Create a label. See
--   <a>https://developer.github.com/v3/issues/labels/#create-a-label</a>
createLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> String -> Request 'RW IssueLabel

-- | Update a label. See
--   <a>https://developer.github.com/v3/issues/labels/#update-a-label</a>
updateLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> Name IssueLabel -> String -> Request 'RW IssueLabel

-- | Delete a label. See
--   <a>https://developer.github.com/v3/issues/labels/#delete-a-label</a>
deleteLabelR :: Name Owner -> Name Repo -> Name IssueLabel -> GenRequest 'MtUnit 'RW ()

-- | List labels on an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#list-labels-on-an-issue</a>
labelsOnIssueR :: Name Owner -> Name Repo -> Id Issue -> FetchCount -> Request k (Vector IssueLabel)

-- | Add lables to an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue</a>
addLabelsToIssueR :: Foldable f => Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> Request 'RW (Vector IssueLabel)

-- | Remove a label from an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue</a>
removeLabelFromIssueR :: Name Owner -> Name Repo -> Id Issue -> Name IssueLabel -> GenRequest 'MtUnit 'RW ()

-- | Replace all labels on an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue</a>
--   
--   Sending an empty list will remove all labels from the issue.
replaceAllLabelsForIssueR :: Foldable f => Name Owner -> Name Repo -> Id Issue -> f (Name IssueLabel) -> Request 'RW (Vector IssueLabel)

-- | Remove all labels from an issue. See
--   <a>https://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue</a>
removeAllLabelsFromIssueR :: Name Owner -> Name Repo -> Id Issue -> GenRequest 'MtUnit 'RW ()

-- | Query labels for every issue in a milestone. See
--   <a>https://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone</a>
labelsOnMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> FetchCount -> Request k (Vector IssueLabel)

-- | List milestones for a repository. See
--   <a>https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository</a>
milestonesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Milestone)

-- | Query a single milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#get-a-single-milestone</a>
milestoneR :: Name Owner -> Name Repo -> Id Milestone -> Request k Milestone
createMilestone :: Auth -> Name Owner -> Name Repo -> NewMilestone -> IO (Either Error Milestone)

-- | Create a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#create-a-milestone</a>
createMilestoneR :: Name Owner -> Name Repo -> NewMilestone -> Request 'RW Milestone
updateMilestone :: Auth -> Name Owner -> Name Repo -> Id Milestone -> UpdateMilestone -> IO (Either Error Milestone)

-- | Update a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#update-a-milestone</a>
updateMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> UpdateMilestone -> Request 'RW Milestone
deleteMilestone :: Auth -> Name Owner -> Name Repo -> Id Milestone -> IO (Either Error ())

-- | Delete a milestone. See
--   <a>https://developer.github.com/v3/issues/milestones/#delete-a-milestone</a>
deleteMilestoneR :: Name Owner -> Name Repo -> Id Milestone -> GenRequest 'MtUnit 'RW ()

-- | List public user organizations. See
--   <a>https://developer.github.com/v3/orgs/#list-user-organizations</a>
publicOrganizationsForR :: Name User -> FetchCount -> Request k (Vector SimpleOrganization)

-- | Query an organization. See
--   <a>https://developer.github.com/v3/orgs/#get-an-organization</a>
publicOrganizationR :: Name Organization -> Request k Organization

-- | List all user organizations. See
--   <a>https://developer.github.com/v3/orgs/#list-your-organizations</a>
organizationsR :: FetchCount -> Request k (Vector SimpleOrganization)

-- | All the users who are members of the specified organization.
--   
--   See <a>https://developer.github.com/v3/orgs/members/#members-list</a>
membersOfR :: Name Organization -> FetchCount -> Request k (Vector SimpleUser)

-- | <a>membersOfR</a> with filters.
--   
--   See <a>https://developer.github.com/v3/orgs/members/#members-list</a>
membersOfWithR :: Name Organization -> OrgMemberFilter -> OrgMemberRole -> FetchCount -> Request k (Vector SimpleUser)

-- | Check if a user is a member of an organization.
--   
--   See
--   <a>https://developer.github.com/v3/orgs/members/#check-membership</a>
isMemberOfR :: Name User -> Name Organization -> GenRequest 'MtStatus rw Bool

-- | List pending organization invitations
--   
--   See
--   <a>https://developer.github.com/v3/orgs/members/#list-pending-organization-invitations</a>
orgInvitationsR :: Name Organization -> FetchCount -> Request 'RA (Vector Invitation)

-- | List teams. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-teams</a>
teamsOfR :: Name Organization -> FetchCount -> Request k (Vector SimpleTeam)

-- | Query team. See
--   <a>https://developer.github.com/v3/orgs/teams/#get-team</a>
teamInfoForR :: Id Team -> Request k Team

-- | Create team. See
--   <a>https://developer.github.com/v3/orgs/teams/#create-team</a>
createTeamForR :: Name Organization -> CreateTeam -> Request 'RW Team

-- | Edit team. See
--   <a>https://developer.github.com/v3/orgs/teams/#edit-team</a>
editTeamR :: Id Team -> EditTeam -> Request 'RW Team

-- | Delete team.
--   
--   See <a>https://developer.github.com/v3/orgs/teams/#delete-team</a>
deleteTeamR :: Id Team -> GenRequest 'MtUnit 'RW ()

-- | List team members.
--   
--   See
--   <a>https://developer.github.com/v3/orgs/teams/#list-team-members</a>
listTeamMembersR :: Id Team -> TeamMemberRole -> FetchCount -> Request 'RA (Vector SimpleUser)

-- | Query team repositories. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-team-repos</a>
listTeamReposR :: Id Team -> FetchCount -> Request k (Vector Repo)

-- | Query team membership. See
--   &lt;<a>https://developer.github.com/v3/orgs/teams/#get-team-membership</a>
teamMembershipInfoForR :: Id Team -> Name Owner -> Request k TeamMembership

-- | Add team membership. See
--   <a>https://developer.github.com/v3/orgs/teams/#add-team-membership</a>
addTeamMembershipForR :: Id Team -> Name Owner -> Role -> Request 'RW TeamMembership

-- | Remove team membership. See
--   <a>https://developer.github.com/v3/orgs/teams/#remove-team-membership</a>
deleteTeamMembershipForR :: Id Team -> Name Owner -> GenRequest 'MtUnit 'RW ()

-- | List user teams. See
--   <a>https://developer.github.com/v3/orgs/teams/#list-user-teams</a>
listTeamsCurrentR :: FetchCount -> Request 'RA (Vector Team)

-- | List pull requests. See
--   <a>https://developer.github.com/v3/pulls/#list-pull-requests</a>
pullRequestsForR :: Name Owner -> Name Repo -> PullRequestMod -> FetchCount -> Request k (Vector SimplePullRequest)

-- | Query a single pull request. See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Request k PullRequest

-- | Query a single pull request to obtain the patch See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestPatchR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtPatch rw ByteString

-- | Query a single pull request to obtain the diff See
--   <a>https://developer.github.com/v3/pulls/#get-a-single-pull-request</a>
pullRequestDiffR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtDiff rw ByteString

-- | Create a pull request. See
--   <a>https://developer.github.com/v3/pulls/#create-a-pull-request</a>
createPullRequestR :: Name Owner -> Name Repo -> CreatePullRequest -> Request 'RW PullRequest

-- | Update a pull request. See
--   <a>https://developer.github.com/v3/pulls/#update-a-pull-request</a>
updatePullRequestR :: Name Owner -> Name Repo -> IssueNumber -> EditPullRequest -> Request 'RW PullRequest

-- | List commits on a pull request. See
--   <a>https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request</a>
pullRequestCommitsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector Commit)

-- | List pull requests files. See
--   <a>https://developer.github.com/v3/pulls/#list-pull-requests-files</a>
pullRequestFilesR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector File)

-- | Query if a pull request has been merged. See
--   <a>https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged</a>
isPullRequestMergedR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtStatus rw Bool

-- | Merge a pull request (Merge Button).
--   <a>https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button</a>
mergePullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Maybe Text -> GenRequest 'MtStatus 'RW MergeResult

-- | List comments on a pull request. See
--   <a>https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request</a>
pullRequestCommentsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector Comment)

-- | Query a single comment. See
--   <a>https://developer.github.com/v3/pulls/comments/#get-a-single-comment</a>
pullRequestCommentR :: Name Owner -> Name Repo -> Id Comment -> Request k Comment

-- | Create a comment.
--   
--   See
--   <a>https://developer.github.com/v3/pulls/comments/#create-a-comment</a>
createPullCommentR :: Name Owner -> Name Repo -> IssueNumber -> Text -> Text -> Int -> Text -> Request 'RW Comment

-- | List reviews for a pull request. See
--   <a>https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request</a>
pullRequestReviewsR :: Name Owner -> Name Repo -> Id PullRequest -> FetchCount -> Request k (Vector Review)

-- | All reviews for a pull request given the repo owner, repo name and the
--   pull request id.
--   
--   <pre>
--   pullRequestReviews "thoughtbot" "paperclip" (Id 101)
--   </pre>
pullRequestReviews :: Name Owner -> Name Repo -> Id PullRequest -> IO (Either Error (Vector Review))

-- | All reviews for a pull request given the repo owner, repo name and the
--   pull request id. With authentication.
--   
--   <pre>
--   pullRequestReviews' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "paperclip" (Id 101)
--   </pre>
pullRequestReviews' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> IO (Either Error (Vector Review))

-- | Query a single pull request review. see
--   <a>https://developer.github.com/v3/pulls/reviews/#get-a-single-review</a>
pullRequestReviewR :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> Request k Review

-- | A detailed review on a pull request given the repo owner, repo name,
--   pull request id and review id.
--   
--   <pre>
--   pullRequestReview "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReview :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error Review)

-- | A detailed review on a pull request given the repo owner, repo name,
--   pull request id and review id. With authentication.
--   
--   <pre>
--   pullRequestReview' (Just $ BasicAuth "github-username" "github-password")
--   "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReview' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error Review)

-- | Query the comments for a single pull request review. see
--   <a>https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review</a>
pullRequestReviewCommentsR :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> Request k [ReviewComment]

-- | All comments for a review on a pull request given the repo owner, repo
--   name, pull request id and review id.
--   
--   <pre>
--   pullRequestReviewComments "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReviewCommentsIO :: Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error [ReviewComment])

-- | All comments for a review on a pull request given the repo owner, repo
--   name, pull request id and review id. With authentication.
--   
--   <pre>
--   pullRequestReviewComments' (Just $ BasicAuth "github-username" "github-password") "thoughtbot" "factory_girl" (Id 301819) (Id 332)
--   </pre>
pullRequestReviewCommentsIO' :: Maybe Auth -> Name Owner -> Name Repo -> Id PullRequest -> Id Review -> IO (Either Error [ReviewComment])

-- | List your repositories. See
--   <a>https://developer.github.com/v3/repos/#list-your-repositories</a>
currentUserReposR :: RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | List user repositories. See
--   <a>https://developer.github.com/v3/repos/#list-user-repositories</a>
userReposR :: Name Owner -> RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | List organization repositories. See
--   <a>https://developer.github.com/v3/repos/#list-organization-repositories</a>
organizationReposR :: Name Organization -> RepoPublicity -> FetchCount -> Request k (Vector Repo)

-- | Query single repository. See
--   <a>https://developer.github.com/v3/repos/#get</a>
repositoryR :: Name Owner -> Name Repo -> Request k Repo

-- | List contributors. See
--   <a>https://developer.github.com/v3/repos/#list-contributors</a>
contributorsR :: Name Owner -> Name Repo -> Bool -> FetchCount -> Request k (Vector Contributor)

-- | List languages. See
--   <a>https://developer.github.com/v3/repos/#list-languages</a>
languagesForR :: Name Owner -> Name Repo -> Request k Languages

-- | List tags. See <a>https://developer.github.com/v3/repos/#list-tags</a>
tagsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Tag)

-- | List branches. See
--   <a>https://developer.github.com/v3/repos/#list-branches</a>
branchesForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Branch)

-- | List collaborators. See
--   <a>https://developer.github.com/v3/repos/collaborators/#list-collaborators</a>
collaboratorsOnR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector SimpleUser)

-- | Check if a user is a collaborator. See
--   <a>https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator</a>
isCollaboratorOnR :: Name Owner -> Name Repo -> Name User -> GenRequest 'MtStatus rw Bool

-- | Invite a user as a collaborator. See
--   <a>https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator</a>
addCollaboratorR :: Name Owner -> Name Repo -> Name User -> GenRequest 'MtJSON 'RW (Maybe RepoInvitation)

-- | List commit comments for a repository. See
--   <a>https://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository</a>
commentsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Comment)

-- | List comments for a single commit. See
--   <a>https://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit</a>
commitCommentsForR :: Name Owner -> Name Repo -> Name Commit -> FetchCount -> Request k (Vector Comment)

-- | Query a single commit comment. See
--   <a>https://developer.github.com/v3/repos/comments/#get-a-single-commit-comment</a>
commitCommentForR :: Name Owner -> Name Repo -> Id Comment -> Request k Comment

-- | List commits on a repository. See
--   <a>https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository</a>
commitsForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Commit)

-- | List commits on a repository. See
--   <a>https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository</a>
commitsWithOptionsForR :: Name Owner -> Name Repo -> FetchCount -> [CommitQueryOption] -> Request k (Vector Commit)

-- | Query a single commit. See
--   <a>https://developer.github.com/v3/repos/commits/#get-a-single-commit</a>
commitR :: Name Owner -> Name Repo -> Name Commit -> Request k Commit

-- | Compare two commits. See
--   <a>https://developer.github.com/v3/repos/commits/#compare-two-commits</a>
diffR :: Name Owner -> Name Repo -> Name Commit -> Name Commit -> Request k Diff

-- | List deployments. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployments</a>
deploymentsWithOptionsForR :: FromJSON a => Name Owner -> Name Repo -> FetchCount -> [DeploymentQueryOption] -> Request 'RA (Vector (Deployment a))

-- | Create a deployment. See
--   <a>https://developer.github.com/v3/repos/deployments/#create-a-deployment</a>
createDeploymentR :: (ToJSON a, FromJSON a) => Name Owner -> Name Repo -> CreateDeployment a -> Request 'RW (Deployment a)

-- | List deployment statuses. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployment-statuses</a>
deploymentStatusesForR :: Name Owner -> Name Repo -> Id (Deployment a) -> FetchCount -> Request 'RA (Vector DeploymentStatus)

-- | Create a deployment status. See
--   <a>https://developer.github.com/v3/repos/deployments/#list-deployment-statuses</a>
createDeploymentStatusR :: Name Owner -> Name Repo -> Id (Deployment a) -> CreateDeploymentStatus -> Request 'RW DeploymentStatus

-- | List forks. See
--   <a>https://developer.github.com/v3/repos/forks/#list-forks</a>
forksForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Repo)

-- | List hooks. See
--   <a>https://developer.github.com/v3/repos/hooks/#list-hooks</a>
webhooksForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector RepoWebhook)

-- | Query single hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#get-single-hook</a>
webhookForR :: Name Owner -> Name Repo -> Id RepoWebhook -> Request k RepoWebhook

-- | Create a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#create-a-hook</a>
createRepoWebhookR :: Name Owner -> Name Repo -> NewRepoWebhook -> Request 'RW RepoWebhook

-- | Edit a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#edit-a-hook</a>
editRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> EditRepoWebhook -> Request 'RW RepoWebhook

-- | Test a push hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#test-a-push-hook</a>
testPushRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool

-- | Ping a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#ping-a-hook</a>
pingRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool

-- | Delete a hook. See
--   <a>https://developer.github.com/v3/repos/hooks/#delete-a-hook</a>
deleteRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtUnit 'RW ()

-- | List releases for a repository. See
--   <a>https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository</a>
releasesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector Release)

-- | Get a single release. See
--   <a>https://developer.github.com/v3/repos/releases/#get-a-single-release</a>
releaseR :: Name Owner -> Name Repo -> Id Release -> Request k Release

-- | Get the latest release. See
--   <a>https://developer.github.com/v3/repos/releases/#get-the-latest-release</a>
latestReleaseR :: Name Owner -> Name Repo -> Request k Release

-- | Get a release by tag name See
--   <a>https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name</a>
releaseByTagNameR :: Name Owner -> Name Repo -> Text -> Request k Release

-- | List open invitations of a repository See
--   <a>https://developer.github.com/v3/repos/invitations/#list-invitations-for-a-repository</a>
listInvitationsOnR :: Name Owner -> Name Repo -> FetchCount -> GenRequest 'MtJSON k (Vector RepoInvitation)

-- | Accept a repository invitation See
--   <a>https://developer.github.com/v3/repos/invitations/#accept-a-repository-invitation</a>
acceptInvitationFromR :: Id RepoInvitation -> GenRequest 'MtUnit 'RW ()

-- | List a user's repository invitations See
--   <a>https://developer.github.com/v3/repos/invitations/#list-a-users-repository-invitations</a>
listInvitationsForR :: FetchCount -> Request k (Vector RepoInvitation)

-- | Search repositories. See
--   <a>https://developer.github.com/v3/search/#search-repositories</a>
searchReposR :: Text -> Request k (SearchResult Repo)

-- | Search code. See
--   <a>https://developer.github.com/v3/search/#search-code</a>
searchCodeR :: Text -> Request k (SearchResult Code)

-- | Search issues. See
--   <a>https://developer.github.com/v3/search/#search-issues</a>
searchIssuesR :: Text -> Request k (SearchResult Issue)

-- | Query a single user. See
--   <a>https://developer.github.com/v3/users/#get-a-single-user</a>
userInfoForR :: Name User -> Request k User

-- | Query a single user or an organization. See
--   <a>https://developer.github.com/v3/users/#get-a-single-user</a>
ownerInfoForR :: Name Owner -> Request k Owner

-- | Query the authenticated user. See
--   <a>https://developer.github.com/v3/users/#get-the-authenticated-user</a>
userInfoCurrentR :: Request 'RA User

-- | List email addresses. See
--   <a>https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user</a>
currentUserEmailsR :: FetchCount -> Request 'RA (Vector Email)

-- | List public email addresses. See
--   <a>https://developer.github.com/v3/users/emails/#list-public-email-addresses-for-a-user</a>
currentUserPublicEmailsR :: FetchCount -> Request 'RA (Vector Email)

-- | List followers of a user. See
--   <a>https://developer.github.com/v3/users/followers/#list-followers-of-a-user</a>
usersFollowingR :: Name User -> FetchCount -> Request k (Vector SimpleUser)

-- | List users followed by another user. See
--   <a>https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user</a>
usersFollowedByR :: Name User -> FetchCount -> Request k (Vector SimpleUser)

-- | Create a new status See
--   <a>https://developer.github.com/v3/repos/statuses/#create-a-status</a>
createStatusR :: Name Owner -> Name Repo -> Name Commit -> NewStatus -> Request 'RW Status

-- | All statuses for a commit See
--   <a>https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref</a>
statusesForR :: Name Owner -> Name Repo -> Name Commit -> FetchCount -> Request 'RW (Vector Status)

-- | The combined status for a specific commit See
--   <a>https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref</a>
statusForR :: Name Owner -> Name Repo -> Name Commit -> Request 'RW CombinedStatus

-- | Get your current rate limit status.
--   <a>https://developer.github.com/v3/rate_limit/#get-your-current-rate-limit-status</a>
rateLimitR :: Request k RateLimit
