in modules/core/src/main/scala/org/scalasteward/core/nurture/NurtureAlg.scala [277:294]
private def shouldBeUpdated(data: UpdateData): F[Boolean] = {
val result = gitAlg.isMerged(data.repo, data.updateBranch, data.baseBranch).flatMap {
case true => (false, "PR has been merged").pure[F]
case false =>
gitAlg.branchAuthors(data.repo, data.updateBranch, data.baseBranch).flatMap { authors =>
if (authors.length >= 2)
(false, s"PR has commits by ${authors.mkString(", ")}").pure[F]
else if (data.repoConfig.updatePullRequestsOrDefault === PullRequestUpdateStrategy.Always)
(true, "PR update strategy is set to always").pure[F]
else
gitAlg.hasConflicts(data.repo, data.updateBranch, data.baseBranch).map {
case true => (true, s"PR has conflicts with ${data.baseBranch.name}")
case false => (false, s"PR has no conflict with ${data.baseBranch.name}")
}
}
}
result.flatMap { case (update, msg) => logger.info(msg).as(update) }
}