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
}