in modules/core/src/main/scala/org/scalasteward/core/forge/gitlab/GitLabApiAlg.scala [250:278]
override def updatePullRequest(
number: PullRequestNumber,
repo: Repo,
data: NewPullRequestData
): F[Unit] =
logger.warn("Updating PRs is not yet supported for GitLab")
private def mergePipelineUponSuccess(repo: Repo, mr: MergeRequestOut): F[MergeRequestOut] =
mr match {
case mr if mr.mergeStatus === GitLabMergeStatus.CanBeMerged =>
for {
_ <- logger.info(s"Setting ${mr.webUrl} to merge when pipeline succeeds")
res <-
client
.put[MergeRequestOut](
url.mergeWhenPiplineSucceeds(repo, mr.iid),
modify
)
// it's possible that our status changed from can be merged already,
// so just handle it gracefully and proceed without setting auto merge.
.recoverWith { case UnexpectedResponse(_, _, _, status, _) =>
logger
.warn(s"Unexpected gitlab response setting auto merge: $status")
.as(mr)
}
} yield res
case mr =>
logger.info(s"Unable to automatically merge ${mr.webUrl}").map(_ => mr)
}