Skip to content

Commit 4c09db0

Browse files
author
Devon Stewart
committed
Keeping track of branches we have seen so far
1 parent 6798553 commit 4c09db0

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

modules/core/src/main/scala/org/scalasteward/core/nurture/NurtureAlg.scala

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
package org.scalasteward.core.nurture
1818

1919
import cats.Applicative
20-
import cats.effect.BracketThrow
20+
import cats.effect.{BracketThrow, Sync}
21+
import cats.effect.concurrent.Ref
2122
import cats.implicits._
2223
import eu.timepit.refined.types.numeric.NonNegInt
2324
import fs2.Stream
@@ -49,13 +50,15 @@ final class NurtureAlg[F[_]](config: Config)(implicit
4950
vcsRepoAlg: VCSRepoAlg[F],
5051
streamCompiler: Stream.Compiler[F, F],
5152
urlChecker: UrlChecker[F],
52-
F: BracketThrow[F]
53+
F: BracketThrow[F],
54+
FS: Sync[F]
5355
) {
5456
def nurture(data: RepoData, fork: RepoOut, updates: List[Update.Single]): F[Unit] =
5557
for {
5658
_ <- logger.info(s"Nurture ${data.repo.show}")
5759
baseBranch <- cloneAndSync(data.repo, fork)
58-
_ <- updateDependencies(data, fork.repo, baseBranch, updates)
60+
seenBranches <- Ref[F].of(List.empty[Branch])
61+
_ <- updateDependencies(data, fork.repo, baseBranch, updates, seenBranches)
5962
} yield ()
6063

6164
def cloneAndSync(repo: Repo, fork: RepoOut): F[Branch] =
@@ -68,7 +71,8 @@ final class NurtureAlg[F[_]](config: Config)(implicit
6871
data: RepoData,
6972
fork: Repo,
7073
baseBranch: Branch,
71-
updates: List[Update.Single]
74+
updates: List[Update.Single],
75+
seenBranches: Ref[F, List[Branch]]
7276
): F[Unit] =
7377
for {
7478
_ <- F.unit
@@ -82,8 +86,13 @@ final class NurtureAlg[F[_]](config: Config)(implicit
8286
UpdateData(data, fork, update, baseBranch, baseSha1, git.branchFor(update))
8387
processUpdate(updateData).flatMap {
8488
case result @ Created(newPrNumber) =>
85-
closeObsoletePullRequests(updateData, newPrNumber).as[ProcessResult](result)
86-
case result @ _ => F.pure(result)
89+
(for {
90+
_ <- closeObsoletePullRequests(updateData, newPrNumber)
91+
_ <- seenBranches.update(updateData.updateBranch :: _)
92+
} yield ()).as[ProcessResult](result)
93+
case result @ Updated =>
94+
seenBranches.update(updateData.updateBranch :: _).as[ProcessResult](result)
95+
case result @ Ignored => F.pure(result)
8796
}
8897
},
8998
data.config.updates.limit

0 commit comments

Comments
 (0)