def apply()

in modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestUpdateFilter.scala [57:73]


  def apply(
      group: Option[String] = None,
      artifact: Option[String] = None,
      version: Option[SemVer.Change] = None
  ): Either[String, PullRequestUpdateFilter] =
    if (group.isEmpty && artifact.isEmpty && version.isEmpty)
      Left("At least one predicate should be added to the filter")
    else Right(new PullRequestUpdateFilter(group, artifact, version))

  implicit val pullRequestUpdateDecoder: Decoder[PullRequestUpdateFilter] = { cursor =>
    for {
      group <- cursor.get[Option[String]]("group")
      artifact <- cursor.get[Option[String]]("artifact")
      version <- cursor.get[Option[SemVer.Change]]("version")
      filter <- apply(group, artifact, version).leftMap(DecodingFailure(_, Nil))
    } yield filter
  }