module GitHub.Endpoints.GitData.References (
reference,
reference',
referenceR,
references,
references',
referencesR,
createReference,
createReferenceR,
namespacedReferences,
module GitHub.Data,
) where
import GitHub.Data
import GitHub.Internal.Prelude
import GitHub.Request
import Prelude ()
reference' :: Maybe Auth -> Name Owner -> Name Repo -> Name GitReference -> IO (Either Error GitReference)
reference' :: Maybe Auth
-> Name Owner
-> Name Repo
-> Name GitReference
-> IO (Either Error GitReference)
reference' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo ref :: Name GitReference
ref =
Maybe Auth
-> GenRequest 'MtJSON 'RO GitReference
-> IO (Either Error GitReference)
forall am (mt :: MediaType *) a.
(AuthMethod am, ParseResponse mt a) =>
Maybe am -> GenRequest mt 'RO a -> IO (Either Error a)
executeRequestMaybe Maybe Auth
auth (GenRequest 'MtJSON 'RO GitReference
-> IO (Either Error GitReference))
-> GenRequest 'MtJSON 'RO GitReference
-> IO (Either Error GitReference)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> Name GitReference
-> GenRequest 'MtJSON 'RO GitReference
forall (k :: RW).
Name Owner
-> Name Repo -> Name GitReference -> Request k GitReference
referenceR Name Owner
user Name Repo
repo Name GitReference
ref
reference :: Name Owner -> Name Repo -> Name GitReference -> IO (Either Error GitReference)
reference :: Name Owner
-> Name Repo -> Name GitReference -> IO (Either Error GitReference)
reference = Maybe Auth
-> Name Owner
-> Name Repo
-> Name GitReference
-> IO (Either Error GitReference)
reference' Maybe Auth
forall a. Maybe a
Nothing
referenceR :: Name Owner -> Name Repo -> Name GitReference -> Request k GitReference
referenceR :: Name Owner
-> Name Repo -> Name GitReference -> Request k GitReference
referenceR user :: Name Owner
user repo :: Name Repo
repo ref :: Name GitReference
ref =
Paths -> QueryString -> Request k GitReference
forall (mt :: RW) a. Paths -> QueryString -> Request mt a
query ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "git", "refs", Name GitReference -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name GitReference
ref] []
references' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector GitReference))
references' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IO (Either Error (Vector GitReference))
references' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo =
Maybe Auth
-> GenRequest 'MtJSON 'RO (Vector GitReference)
-> IO (Either Error (Vector GitReference))
forall am (mt :: MediaType *) a.
(AuthMethod am, ParseResponse mt a) =>
Maybe am -> GenRequest mt 'RO a -> IO (Either Error a)
executeRequestMaybe Maybe Auth
auth (GenRequest 'MtJSON 'RO (Vector GitReference)
-> IO (Either Error (Vector GitReference)))
-> GenRequest 'MtJSON 'RO (Vector GitReference)
-> IO (Either Error (Vector GitReference))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> FetchCount
-> GenRequest 'MtJSON 'RO (Vector GitReference)
forall (k :: RW).
Name Owner
-> Name Repo -> FetchCount -> Request k (Vector GitReference)
referencesR Name Owner
user Name Repo
repo FetchCount
FetchAll
references :: Name Owner -> Name Repo -> IO (Either Error (Vector GitReference))
references :: Name Owner -> Name Repo -> IO (Either Error (Vector GitReference))
references = Maybe Auth
-> Name Owner
-> Name Repo
-> IO (Either Error (Vector GitReference))
references' Maybe Auth
forall a. Maybe a
Nothing
referencesR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector GitReference)
referencesR :: Name Owner
-> Name Repo -> FetchCount -> Request k (Vector GitReference)
referencesR user :: Name Owner
user repo :: Name Repo
repo =
Paths
-> QueryString -> FetchCount -> Request k (Vector GitReference)
forall a (mt :: RW).
FromJSON a =>
Paths -> QueryString -> FetchCount -> Request mt (Vector a)
pagedQuery ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "git", "refs"] []
createReference :: Auth -> Name Owner -> Name Repo -> NewGitReference -> IO (Either Error GitReference)
createReference :: Auth
-> Name Owner
-> Name Repo
-> NewGitReference
-> IO (Either Error GitReference)
createReference auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo newRef :: NewGitReference
newRef =
Auth
-> GenRequest 'MtJSON 'RW GitReference
-> IO (Either Error GitReference)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtJSON 'RW GitReference
-> IO (Either Error GitReference))
-> GenRequest 'MtJSON 'RW GitReference
-> IO (Either Error GitReference)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> NewGitReference
-> GenRequest 'MtJSON 'RW GitReference
createReferenceR Name Owner
user Name Repo
repo NewGitReference
newRef
createReferenceR :: Name Owner -> Name Repo -> NewGitReference -> Request 'RW GitReference
createReferenceR :: Name Owner
-> Name Repo
-> NewGitReference
-> GenRequest 'MtJSON 'RW GitReference
createReferenceR user :: Name Owner
user repo :: Name Repo
repo newRef :: NewGitReference
newRef =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtJSON 'RW GitReference
forall a. CommandMethod -> Paths -> ByteString -> Request 'RW a
command CommandMethod
Post ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo , "git", "refs"] (NewGitReference -> ByteString
forall a. ToJSON a => a -> ByteString
encode NewGitReference
newRef)
namespacedReferences :: Name Owner -> Name Repo -> Text -> IO (Either Error [GitReference])
namespacedReferences :: Name Owner -> Name Repo -> Text -> IO (Either Error [GitReference])
namespacedReferences user :: Name Owner
user repo :: Name Repo
repo namespace :: Text
namespace =
GenRequest 'MtJSON 'RO [GitReference]
-> IO (Either Error [GitReference])
forall (mt :: MediaType *) a.
ParseResponse mt a =>
GenRequest mt 'RO a -> IO (Either Error a)
executeRequest' (GenRequest 'MtJSON 'RO [GitReference]
-> IO (Either Error [GitReference]))
-> GenRequest 'MtJSON 'RO [GitReference]
-> IO (Either Error [GitReference])
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> Text -> GenRequest 'MtJSON 'RO [GitReference]
forall (k :: RW).
Name Owner -> Name Repo -> Text -> Request k [GitReference]
namespacedReferencesR Name Owner
user Name Repo
repo Text
namespace
namespacedReferencesR :: Name Owner -> Name Repo -> Text -> Request k [GitReference]
namespacedReferencesR :: Name Owner -> Name Repo -> Text -> Request k [GitReference]
namespacedReferencesR user :: Name Owner
user repo :: Name Repo
repo namespace :: Text
namespace =
Paths -> QueryString -> Request k [GitReference]
forall (mt :: RW) a. Paths -> QueryString -> Request mt a
query ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "git", "refs", Text
namespace] []