File tree Expand file tree Collapse file tree 3 files changed +15
-6
lines changed
modules/core/src/main/scala/org/scalasteward/core Expand file tree Collapse file tree 3 files changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -36,10 +36,13 @@ final class VersionsCache[F[_]](
3636 parallel : Parallel [F ],
3737 F : MonadThrow [F ]
3838) {
39- def getVersions (dependency : Scope .Dependency , maxAge : Option [FiniteDuration ]): F [List [Version ]] =
39+ def getVersions (
40+ dependency : Scope .Dependency ,
41+ maxAge : Option [FiniteDuration ]
42+ ): F [List [VersionWithFirstSeen ]] =
4043 dependency.resolvers
4144 .parFlatTraverse(getVersionsImpl(dependency.value, _, maxAge.getOrElse(cacheTtl)))
42- .map(_.map(_.version). distinct.sorted) // TODO - remove `.map (_.version)`
45+ .map(_.distinct.sortBy (_.version))
4346
4447 private def getVersionsImpl (
4548 dependency : Dependency ,
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ import io.circe.{Decoder, Encoder}
2222import org .scalasteward .core .repoconfig .PullRequestGroup
2323import org .scalasteward .core .util
2424import org .scalasteward .core .util .Nel
25+ import org .scalasteward .core .coursier .VersionsCache .VersionWithFirstSeen
2526
2627sealed trait Update {
2728
@@ -86,7 +87,7 @@ object Update {
8687
8788 final case class ForArtifactId (
8889 crossDependency : CrossDependency ,
89- newerVersions : Nel [Version ],
90+ newerVersions : Nel [VersionWithFirstSeen ],
9091 newerGroupId : Option [GroupId ] = None ,
9192 newerArtifactId : Option [String ] = None
9293 ) extends Single {
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import cats.syntax.all.*
2020import io .circe .Codec
2121import io .circe .generic .semiauto .*
2222import org .scalasteward .core .data .{GroupId , Update , Version }
23+ import org .scalasteward .core .coursier .VersionsCache .VersionWithFirstSeen
2324
2425final case class UpdatePattern (
2526 groupId : GroupId ,
@@ -32,18 +33,22 @@ final case class UpdatePattern(
3233object UpdatePattern {
3334 final case class MatchResult (
3435 byArtifactId : List [UpdatePattern ],
35- filteredVersions : List [Version ]
36+ filteredVersions : List [VersionWithFirstSeen ]
3637 )
3738
3839 def findMatch (
3940 patterns : List [UpdatePattern ],
4041 update : Update .ForArtifactId ,
41- include : Boolean
42+ include : Boolean ,
43+ versionPredicate : VersionWithFirstSeen => Boolean = _ => true
4244 ): MatchResult = {
4345 val byGroupId = patterns.filter(_.groupId === update.groupId)
4446 val byArtifactId = byGroupId.filter(_.artifactId.forall(_ === update.artifactId.name))
4547 val filteredVersions = update.newerVersions.filter(newVersion =>
46- byArtifactId.exists(_.version.forall(_.matches(newVersion.value))) === include
48+ (byArtifactId.exists(_.version.forall(_.matches(newVersion.value))) && versionPredicate(
49+ newVersion
50+ ))
51+ === include
4752 )
4853 MatchResult (byArtifactId, filteredVersions)
4954 }
You can’t perform that action at this time.
0 commit comments