private def processUpdate()

in modules/core/src/main/scala/org/scalasteward/core/nurture/NurtureAlg.scala [92:119]


  private def processUpdate(data: UpdateData): F[ProcessResult] =
    for {
      _ <- logger.info(s"Process update ${data.update.show}")
      head = config.tpe.pullRequestHeadFor(data.fork, data.updateBranch)
      pullRequests <- forgeApiAlg.listPullRequests(data.repo, head, data.baseBranch)
      result <- pullRequests.headOption match {
        case Some(pr) if pr.state.isClosed && data.update.isInstanceOf[Update.Single] =>
          logger.info(s"PR ${pr.html_url} is closed") >>
            deleteRemoteBranch(data.repo, data.updateBranch).as(Ignored)
        case Some(pr) if !pr.state.isClosed =>
          logger.info(s"Found PR ${pr.html_url}") >> updatePullRequest(data, pr.number)
        case _ =>
          applyNewUpdate(data).flatTap {
            case Created(newPrNumber) => closeObsoletePullRequests(data, newPrNumber)
            case _                    => F.unit
          }
      }
      _ <- pullRequests.headOption.traverse_ { pr =>
        val prData = PullRequestData[Id](
          pr.html_url,
          data.baseSha1,
          data.update,
          pr.state,
          pr.number,
          data.updateBranch
        )
        pullRequestRepository.createOrUpdate(data.repo, prData)
      }