private def mapToRepoOut()

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
  }