in modules/core/src/main/scala/org/scalasteward/core/forge/bitbucket/BitbucketApiAlg.scala [55:98]
private def mapToRepoOut(
repo: RepositoryResponse,
maybeParent: Option[RepositoryResponse]
): RepoOut =
RepoOut(
repo.name,
repo.owner,
maybeParent.map(p => mapToRepoOut(p, None)),
repo.httpsCloneUrl,
repo.mainBranch
)
private def getDefaultReviewers(repo: Repo): F[List[Reviewer]] =
client.get[DefaultReviewers](url.defaultReviewers(repo), modify).map(_.values)
override def createPullRequest(repo: Repo, data: NewPullRequestData): F[PullRequestOut] = {
val sourceBranchOwner = if (config.doNotFork) repo.owner else config.login
val defaultReviewers =
if (bitbucketCfg.useDefaultReviewers) getDefaultReviewers(repo)
else F.pure(List.empty[Reviewer])
val create: F[PullRequestOut] =
defaultReviewers
.map(reviewers =>
CreatePullRequestRequest(
data.title,
Branch(data.head),
Repo(sourceBranchOwner, repo.repo, repo.branch),
data.base,
data.body,
reviewers
)
)
.flatMap { payload =>
client.postWithBody(url.pullRequests(repo), payload, modify)
}
for {
_ <- F.whenA(data.assignees.nonEmpty)(warnIfAssigneesAreUsed)
_ <- F.whenA(data.reviewers.nonEmpty)(warnIfReviewersAreUsed)
_ <- F.whenA(data.labels.nonEmpty)(warnIfLabelsAreUsed)
pullRequestOut <- create
} yield pullRequestOut
}