in modules/core/src/main/scala/org/scalasteward/core/update/PruningAlg.scala [161:192]
private def newPullRequestsAllowed(
dependencyOutdated: DependencyOutdated,
now: Timestamp,
repoLastPrCreatedAt: Option[Timestamp],
artifactLastPrCreatedAt: Option[Timestamp],
repoConfig: RepoConfig
): F[Boolean] = {
val (frequencyz: Option[PullRequestFrequency], lastPrCreatedAt: Option[Timestamp]) =
repoConfig.dependencyOverridesOrDefault
.collectFirstSome { groupRepoConfig =>
val matchResult = UpdatePattern
.findMatch(List(groupRepoConfig.dependency), dependencyOutdated.update, include = true)
Option.when(matchResult.byArtifactId.nonEmpty && matchResult.filteredVersions.nonEmpty)(
(groupRepoConfig.pullRequests.frequency, artifactLastPrCreatedAt)
)
}
.getOrElse((repoConfig.pullRequestsOrDefault.frequency, repoLastPrCreatedAt))
val frequency = frequencyz.getOrElse(PullRequestFrequency.Asap)
val dep = dependencyOutdated.crossDependency.head
val ignoring = s"Ignoring outdated dependency ${dep.groupId}:${dep.artifactId.name}"
if (!frequency.onSchedule(now))
logger.info(s"$ignoring according to $frequency").as(false)
else {
lastPrCreatedAt.flatMap(frequency.waitingTime(_, now)) match {
case None => true.pure[F]
case Some(waitingTime) =>
val message = s"$ignoring for ${dateTime.showDuration(waitingTime)}"
logger.info(message).as(false)
}
}
}