module GitHub.Endpoints.PullRequests (
pullRequestsFor,
pullRequestsFor',
pullRequestsForR,
pullRequest',
pullRequest,
pullRequestR,
pullRequestDiff',
pullRequestDiff,
pullRequestDiffR,
pullRequestPatch',
pullRequestPatch,
pullRequestPatchR,
createPullRequest,
createPullRequestR,
updatePullRequest,
updatePullRequestR,
pullRequestCommits',
pullRequestCommitsIO,
pullRequestCommitsR,
pullRequestFiles',
pullRequestFiles,
pullRequestFilesR,
isPullRequestMerged,
isPullRequestMergedR,
mergePullRequest,
mergePullRequestR,
module GitHub.Data
) where
import GitHub.Data
import GitHub.Internal.Prelude
import GitHub.Request
import Prelude ()
import Data.ByteString.Lazy (ByteString)
pullRequestsFor :: Name Owner -> Name Repo -> IO (Either Error (Vector SimplePullRequest))
pullRequestsFor :: Name Owner
-> Name Repo -> IO (Either Error (Vector SimplePullRequest))
pullRequestsFor user :: Name Owner
user repo :: Name Repo
repo =
GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest))
forall (mt :: MediaType *) a.
ParseResponse mt a =>
GenRequest mt 'RO a -> IO (Either Error a)
executeRequest' (GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest)))
-> GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
forall (k :: RW).
Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> Request k (Vector SimplePullRequest)
pullRequestsForR Name Owner
user Name Repo
repo PullRequestMod
forall a. Monoid a => a
mempty FetchCount
FetchAll
pullRequestsFor' :: Maybe Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector SimplePullRequest))
pullRequestsFor' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IO (Either Error (Vector SimplePullRequest))
pullRequestsFor' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo =
Maybe Auth
-> GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest))
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 SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest)))
-> GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
-> IO (Either Error (Vector SimplePullRequest))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> GenRequest 'MtJSON 'RO (Vector SimplePullRequest)
forall (k :: RW).
Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> Request k (Vector SimplePullRequest)
pullRequestsForR Name Owner
user Name Repo
repo PullRequestMod
forall a. Monoid a => a
mempty FetchCount
FetchAll
pullRequestsForR
:: Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> Request k (Vector SimplePullRequest)
pullRequestsForR :: Name Owner
-> Name Repo
-> PullRequestMod
-> FetchCount
-> Request k (Vector SimplePullRequest)
pullRequestsForR user :: Name Owner
user repo :: Name Repo
repo opts :: PullRequestMod
opts = Paths
-> QueryString
-> FetchCount
-> Request k (Vector SimplePullRequest)
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, "pulls"]
(PullRequestMod -> QueryString
prModToQueryString PullRequestMod
opts)
pullRequestDiff' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestDiff' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error ByteString)
pullRequestDiff' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Maybe Auth
-> GenRequest 'MtDiff 'RO ByteString
-> IO (Either Error ByteString)
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 'MtDiff 'RO ByteString -> IO (Either Error ByteString))
-> GenRequest 'MtDiff 'RO ByteString
-> IO (Either Error ByteString)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtDiff 'RO ByteString
forall (rw :: RW).
Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtDiff rw ByteString
pullRequestDiffR Name Owner
user Name Repo
repo IssueNumber
prid
pullRequestDiff :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestDiff :: Name Owner
-> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestDiff = Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error ByteString)
pullRequestDiff' Maybe Auth
forall a. Maybe a
Nothing
pullRequestDiffR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtDiff rw ByteString
pullRequestDiffR :: Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtDiff rw ByteString
pullRequestDiffR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> GenRequest 'MtDiff rw ByteString
forall (mt :: MediaType *) (rw :: RW) a.
Paths -> QueryString -> GenRequest mt rw 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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid] []
pullRequestPatch' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestPatch' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error ByteString)
pullRequestPatch' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Maybe Auth
-> GenRequest 'MtPatch 'RO ByteString
-> IO (Either Error ByteString)
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 'MtPatch 'RO ByteString
-> IO (Either Error ByteString))
-> GenRequest 'MtPatch 'RO ByteString
-> IO (Either Error ByteString)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtPatch 'RO ByteString
forall (rw :: RW).
Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtPatch rw ByteString
pullRequestPatchR Name Owner
user Name Repo
repo IssueNumber
prid
pullRequestPatch :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestPatch :: Name Owner
-> Name Repo -> IssueNumber -> IO (Either Error ByteString)
pullRequestPatch = Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error ByteString)
pullRequestPatch' Maybe Auth
forall a. Maybe a
Nothing
pullRequestPatchR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtPatch rw ByteString
pullRequestPatchR :: Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtPatch rw ByteString
pullRequestPatchR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> GenRequest 'MtPatch rw ByteString
forall (mt :: MediaType *) (rw :: RW) a.
Paths -> QueryString -> GenRequest mt rw 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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid] []
pullRequest' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error PullRequest)
pullRequest' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error PullRequest)
pullRequest' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Maybe Auth
-> GenRequest 'MtJSON 'RO PullRequest
-> IO (Either Error PullRequest)
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 PullRequest
-> IO (Either Error PullRequest))
-> GenRequest 'MtJSON 'RO PullRequest
-> IO (Either Error PullRequest)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtJSON 'RO PullRequest
forall (k :: RW).
Name Owner -> Name Repo -> IssueNumber -> Request k PullRequest
pullRequestR Name Owner
user Name Repo
repo IssueNumber
prid
pullRequest :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error PullRequest)
pullRequest :: Name Owner
-> Name Repo -> IssueNumber -> IO (Either Error PullRequest)
pullRequest = Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error PullRequest)
pullRequest' Maybe Auth
forall a. Maybe a
Nothing
pullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Request k PullRequest
pullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Request k PullRequest
pullRequestR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> Request k PullRequest
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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid] []
createPullRequest :: Auth
-> Name Owner
-> Name Repo
-> CreatePullRequest
-> IO (Either Error PullRequest)
createPullRequest :: Auth
-> Name Owner
-> Name Repo
-> CreatePullRequest
-> IO (Either Error PullRequest)
createPullRequest auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo cpr :: CreatePullRequest
cpr =
Auth
-> GenRequest 'MtJSON 'RW PullRequest
-> IO (Either Error PullRequest)
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 PullRequest
-> IO (Either Error PullRequest))
-> GenRequest 'MtJSON 'RW PullRequest
-> IO (Either Error PullRequest)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> CreatePullRequest
-> GenRequest 'MtJSON 'RW PullRequest
createPullRequestR Name Owner
user Name Repo
repo CreatePullRequest
cpr
createPullRequestR :: Name Owner
-> Name Repo
-> CreatePullRequest
-> Request 'RW PullRequest
createPullRequestR :: Name Owner
-> Name Repo
-> CreatePullRequest
-> GenRequest 'MtJSON 'RW PullRequest
createPullRequestR user :: Name Owner
user repo :: Name Repo
repo cpr :: CreatePullRequest
cpr =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtJSON 'RW PullRequest
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, "pulls"] (CreatePullRequest -> ByteString
forall a. ToJSON a => a -> ByteString
encode CreatePullRequest
cpr)
updatePullRequest :: Auth -> Name Owner -> Name Repo -> IssueNumber -> EditPullRequest -> IO (Either Error PullRequest)
updatePullRequest :: Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> EditPullRequest
-> IO (Either Error PullRequest)
updatePullRequest auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid epr :: EditPullRequest
epr =
Auth
-> GenRequest 'MtJSON 'RW PullRequest
-> IO (Either Error PullRequest)
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 PullRequest
-> IO (Either Error PullRequest))
-> GenRequest 'MtJSON 'RW PullRequest
-> IO (Either Error PullRequest)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> IssueNumber
-> EditPullRequest
-> GenRequest 'MtJSON 'RW PullRequest
updatePullRequestR Name Owner
user Name Repo
repo IssueNumber
prid EditPullRequest
epr
updatePullRequestR :: Name Owner
-> Name Repo
-> IssueNumber
-> EditPullRequest
-> Request 'RW PullRequest
updatePullRequestR :: Name Owner
-> Name Repo
-> IssueNumber
-> EditPullRequest
-> GenRequest 'MtJSON 'RW PullRequest
updatePullRequestR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid epr :: EditPullRequest
epr =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtJSON 'RW PullRequest
forall a. CommandMethod -> Paths -> ByteString -> Request 'RW a
command CommandMethod
Patch ["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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid] (EditPullRequest -> ByteString
forall a. ToJSON a => a -> ByteString
encode EditPullRequest
epr)
pullRequestCommits' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector Commit))
pullRequestCommits' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error (Vector Commit))
pullRequestCommits' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Maybe Auth
-> GenRequest 'MtJSON 'RO (Vector Commit)
-> IO (Either Error (Vector Commit))
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 Commit)
-> IO (Either Error (Vector Commit)))
-> GenRequest 'MtJSON 'RO (Vector Commit)
-> IO (Either Error (Vector Commit))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> GenRequest 'MtJSON 'RO (Vector Commit)
forall (k :: RW).
Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> Request k (Vector Commit)
pullRequestCommitsR Name Owner
user Name Repo
repo IssueNumber
prid FetchCount
FetchAll
pullRequestCommitsIO :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector Commit))
pullRequestCommitsIO :: Name Owner
-> Name Repo -> IssueNumber -> IO (Either Error (Vector Commit))
pullRequestCommitsIO = Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error (Vector Commit))
pullRequestCommits' Maybe Auth
forall a. Maybe a
Nothing
pullRequestCommitsR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector Commit)
pullRequestCommitsR :: Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> Request k (Vector Commit)
pullRequestCommitsR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> FetchCount -> Request k (Vector Commit)
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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid, "commits"] []
pullRequestFiles' :: Maybe Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector File))
pullRequestFiles' :: Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error (Vector File))
pullRequestFiles' auth :: Maybe Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Maybe Auth
-> GenRequest 'MtJSON 'RO (Vector File)
-> IO (Either Error (Vector File))
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 File)
-> IO (Either Error (Vector File)))
-> GenRequest 'MtJSON 'RO (Vector File)
-> IO (Either Error (Vector File))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> GenRequest 'MtJSON 'RO (Vector File)
forall (k :: RW).
Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> Request k (Vector File)
pullRequestFilesR Name Owner
user Name Repo
repo IssueNumber
prid FetchCount
FetchAll
pullRequestFiles :: Name Owner -> Name Repo -> IssueNumber -> IO (Either Error (Vector File))
pullRequestFiles :: Name Owner
-> Name Repo -> IssueNumber -> IO (Either Error (Vector File))
pullRequestFiles = Maybe Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> IO (Either Error (Vector File))
pullRequestFiles' Maybe Auth
forall a. Maybe a
Nothing
pullRequestFilesR :: Name Owner -> Name Repo -> IssueNumber -> FetchCount -> Request k (Vector File)
pullRequestFilesR :: Name Owner
-> Name Repo
-> IssueNumber
-> FetchCount
-> Request k (Vector File)
pullRequestFilesR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> FetchCount -> Request k (Vector File)
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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid, "files"] []
isPullRequestMerged :: Auth -> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error Bool)
isPullRequestMerged :: Auth
-> Name Owner -> Name Repo -> IssueNumber -> IO (Either Error Bool)
isPullRequestMerged auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Auth -> GenRequest 'MtStatus Any Bool -> IO (Either Error Bool)
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 'MtStatus Any Bool -> IO (Either Error Bool))
-> GenRequest 'MtStatus Any Bool -> IO (Either Error Bool)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtStatus Any Bool
forall (rw :: RW).
Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtStatus rw Bool
isPullRequestMergedR Name Owner
user Name Repo
repo IssueNumber
prid
isPullRequestMergedR :: Name Owner -> Name Repo -> IssueNumber -> GenRequest 'MtStatus rw Bool
isPullRequestMergedR :: Name Owner
-> Name Repo -> IssueNumber -> GenRequest 'MtStatus rw Bool
isPullRequestMergedR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid =
Paths -> QueryString -> GenRequest 'MtStatus rw Bool
forall (mt :: MediaType *) (rw :: RW) a.
Paths -> QueryString -> GenRequest mt rw 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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid, "merge"] []
mergePullRequest :: Auth -> Name Owner -> Name Repo -> IssueNumber -> Maybe Text -> IO (Either Error MergeResult)
mergePullRequest :: Auth
-> Name Owner
-> Name Repo
-> IssueNumber
-> Maybe Text
-> IO (Either Error MergeResult)
mergePullRequest auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid commitMessage :: Maybe Text
commitMessage =
Auth
-> GenRequest 'MtStatus 'RW MergeResult
-> IO (Either Error MergeResult)
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 'MtStatus 'RW MergeResult
-> IO (Either Error MergeResult))
-> GenRequest 'MtStatus 'RW MergeResult
-> IO (Either Error MergeResult)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> IssueNumber
-> Maybe Text
-> GenRequest 'MtStatus 'RW MergeResult
mergePullRequestR Name Owner
user Name Repo
repo IssueNumber
prid Maybe Text
commitMessage
mergePullRequestR :: Name Owner -> Name Repo -> IssueNumber -> Maybe Text -> GenRequest 'MtStatus 'RW MergeResult
mergePullRequestR :: Name Owner
-> Name Repo
-> IssueNumber
-> Maybe Text
-> GenRequest 'MtStatus 'RW MergeResult
mergePullRequestR user :: Name Owner
user repo :: Name Repo
repo prid :: IssueNumber
prid commitMessage :: Maybe Text
commitMessage =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtStatus 'RW MergeResult
forall (mt :: MediaType *) a.
CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a
Command CommandMethod
Put Paths
paths (Value -> ByteString
forall a. ToJSON a => a -> ByteString
encode (Value -> ByteString) -> Value -> ByteString
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Value
buildCommitMessageMap Maybe Text
commitMessage)
where
paths :: Paths
paths = ["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, "pulls", IssueNumber -> Text
forall a. IsPathPart a => a -> Text
toPathPart IssueNumber
prid, "merge"]
buildCommitMessageMap :: Maybe Text -> Value
buildCommitMessageMap :: Maybe Text -> Value
buildCommitMessageMap (Just msg :: Text
msg) = [Pair] -> Value
object ["commit_message" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
msg ]
buildCommitMessageMap Nothing = [Pair] -> Value
object []