@@ -18,13 +18,15 @@ package org.scalasteward.core.data
1818
1919import cats .Order
2020import cats .implicits ._
21+ import io .circe .Decoder
22+ import io .circe .Encoder
23+ import io .circe .Json
2124import io .circe .generic .semiauto ._
25+ import io .circe .syntax ._
2226import org .scalasteward .core .repoconfig .PullRequestGroup
2327import org .scalasteward .core .util
2428import org .scalasteward .core .util .Nel
2529import org .scalasteward .core .util .string .MinLengthString
26- import io .circe .Decoder
27- import io .circe .Encoder
2830
2931sealed trait Update {
3032
@@ -193,7 +195,11 @@ object Update {
193195 // Partially manually implemented so we don't fail reading old caches (those
194196 // still using `Single`/`Group`)
195197
196- implicit val ForArtifactIdEncoder : Encoder [ForArtifactId ] = deriveEncoder
198+ implicit val ForArtifactIdEncoder : Encoder [ForArtifactId ] = {
199+ val derived = deriveEncoder[ForArtifactId ]
200+
201+ derived.mapJson(json => Json .obj(" ForArtifactId" -> json))
202+ }
197203
198204 implicit val ForArtifactIdDecoder : Decoder [ForArtifactId ] = {
199205 val derived = deriveDecoder[ForArtifactId ]
@@ -202,7 +208,11 @@ object Update {
202208 .or(derived.prepare(_.downField(" Single" )))
203209 }
204210
205- implicit val ForGroupIdEncoder : Encoder [ForGroupId ] = deriveEncoder
211+ implicit val ForGroupIdEncoder : Encoder [ForGroupId ] = {
212+ val derived = deriveEncoder[ForGroupId ]
213+
214+ derived.mapJson(json => Json .obj(" ForGroupId" -> json))
215+ }
206216
207217 implicit val ForGroupIdDecoder : Decoder [ForGroupId ] = {
208218 val derived = deriveDecoder[ForGroupId ]
@@ -211,15 +221,23 @@ object Update {
211221 .or(derived.prepare(_.downField(" Group" )))
212222 }
213223
214- implicit val GroupedEncoder : Encoder [Grouped ] = deriveEncoder
224+ implicit val GroupedEncoder : Encoder [Grouped ] = {
225+ val derived = deriveEncoder[Grouped ]
226+
227+ derived.mapJson(json => Json .obj(" Grouped" -> json))
228+ }
215229
216230 implicit val GroupedDecoder : Decoder [Grouped ] =
217231 deriveDecoder[Grouped ].prepare(_.downField(" Grouped" ))
218232
219233 implicit val SingleOrder : Order [Single ] =
220234 Order .by((u : Single ) => (u.crossDependencies, u.newerVersions))
221235
222- implicit val UpdateEncoder : Encoder [Update ] = deriveEncoder
236+ implicit val UpdateEncoder : Encoder [Update ] = {
237+ case update : Grouped => update.asJson
238+ case update : ForArtifactId => update.asJson
239+ case update : ForGroupId => update.asJson
240+ }
223241
224242 implicit val UpdateDecoder : Decoder [Update ] =
225243 ForArtifactIdDecoder
0 commit comments