private def newPullRequestsAllowed()

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)
      }
    }
  }