Skip to content

Commit 5301c19

Browse files
michaelmiormzuehlke
authored andcommitted
Add JSON metadata in PRs
1 parent ae6494d commit 5301c19

File tree

3 files changed

+359
-16
lines changed

3 files changed

+359
-16
lines changed

modules/core/src/main/scala/org/scalasteward/core/forge/data/NewPullRequestData.scala

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package org.scalasteward.core.forge.data
1818

1919
import cats.syntax.all._
20+
import io.circe.Json
21+
import io.circe.syntax._
2022
import org.http4s.Uri
2123
import org.scalasteward.core.data._
2224
import org.scalasteward.core.edit.EditAttempt
@@ -112,9 +114,18 @@ object NewPullRequestData {
112114
|<sup>
113115
|${labels.mkString("labels: ", ", ", "")}
114116
|</sup>
115-
|""".stripMargin.trim
117+
|
118+
|<!-- scala-steward = ${metadataJson(update, labels)} -->""".stripMargin.trim
116119
}
117120

121+
def metadataJson(update: Update, labels: List[String]): String =
122+
Json
123+
.obj(
124+
"Update" -> update.asJson,
125+
"Labels" -> Json.fromValues(labels.map(_.asJson))
126+
)
127+
.toString
128+
118129
def renderUpdateInfoUrls(updateInfoUrls: List[UpdateInfoUrl]): Option[String] =
119130
Option.when(updateInfoUrls.nonEmpty) {
120131
updateInfoUrls

modules/core/src/test/scala/org/scalasteward/core/forge/data/NewPullRequestDataTest.scala

Lines changed: 306 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,35 @@ class NewPullRequestDataTest extends FunSuite {
6060
|
6161
|<sup>
6262
|labels: library-update
63-
|</sup>""".stripMargin
63+
|</sup>
64+
|
65+
|<!-- scala-steward = {
66+
| "Update" : {
67+
| "ForArtifactId" : {
68+
| "crossDependency" : [
69+
| {
70+
| "groupId" : "ch.qos.logback",
71+
| "artifactId" : {
72+
| "name" : "logback-classic",
73+
| "maybeCrossName" : null
74+
| },
75+
| "version" : "1.2.0",
76+
| "sbtVersion" : null,
77+
| "scalaVersion" : null,
78+
| "configurations" : null
79+
| }
80+
| ],
81+
| "newerVersions" : [
82+
| "1.2.3"
83+
| ],
84+
| "newerGroupId" : null,
85+
| "newerArtifactId" : null
86+
| }
87+
| },
88+
| "Labels" : [
89+
| "library-update"
90+
| ]
91+
|} -->""".stripMargin
6492

6593
assertEquals(body, expected)
6694
}
@@ -127,7 +155,35 @@ class NewPullRequestDataTest extends FunSuite {
127155
|
128156
|<sup>
129157
|labels: library-update
130-
|</sup>""".stripMargin
158+
|</sup>
159+
|
160+
|<!-- scala-steward = {
161+
| "Update" : {
162+
| "ForArtifactId" : {
163+
| "crossDependency" : [
164+
| {
165+
| "groupId" : "ch.qos.logback",
166+
| "artifactId" : {
167+
| "name" : "logback-classic",
168+
| "maybeCrossName" : null
169+
| },
170+
| "version" : "1.2.0",
171+
| "sbtVersion" : null,
172+
| "scalaVersion" : null,
173+
| "configurations" : null
174+
| }
175+
| ],
176+
| "newerVersions" : [
177+
| "1.2.3"
178+
| ],
179+
| "newerGroupId" : null,
180+
| "newerArtifactId" : null
181+
| }
182+
| },
183+
| "Labels" : [
184+
| "library-update"
185+
| ]
186+
|} -->""".stripMargin
131187

132188
assertEquals(body, expected)
133189
}
@@ -191,7 +247,65 @@ class NewPullRequestDataTest extends FunSuite {
191247
|
192248
|<sup>
193249
|labels: library-update
194-
|</sup>""".stripMargin
250+
|</sup>
251+
|
252+
|<!-- scala-steward = {
253+
| "Update" : {
254+
| "Grouped" : {
255+
| "name" : "my-group",
256+
| "title" : "The PR title",
257+
| "updates" : [
258+
| {
259+
| "ForArtifactId" : {
260+
| "crossDependency" : [
261+
| {
262+
| "groupId" : "ch.qos.logback",
263+
| "artifactId" : {
264+
| "name" : "logback-classic",
265+
| "maybeCrossName" : null
266+
| },
267+
| "version" : "1.2.0",
268+
| "sbtVersion" : null,
269+
| "scalaVersion" : null,
270+
| "configurations" : null
271+
| }
272+
| ],
273+
| "newerVersions" : [
274+
| "1.2.3"
275+
| ],
276+
| "newerGroupId" : null,
277+
| "newerArtifactId" : null
278+
| }
279+
| },
280+
| {
281+
| "ForArtifactId" : {
282+
| "crossDependency" : [
283+
| {
284+
| "groupId" : "com.example",
285+
| "artifactId" : {
286+
| "name" : "foo",
287+
| "maybeCrossName" : null
288+
| },
289+
| "version" : "1.0.0",
290+
| "sbtVersion" : null,
291+
| "scalaVersion" : null,
292+
| "configurations" : null
293+
| }
294+
| ],
295+
| "newerVersions" : [
296+
| "2.0.0"
297+
| ],
298+
| "newerGroupId" : null,
299+
| "newerArtifactId" : null
300+
| }
301+
| }
302+
| ]
303+
| }
304+
| },
305+
| "Labels" : [
306+
| "library-update"
307+
| ]
308+
|} -->""".stripMargin
195309

196310
assertEquals(body, expected)
197311
}
@@ -248,7 +362,35 @@ class NewPullRequestDataTest extends FunSuite {
248362
|
249363
|<sup>
250364
|labels: library-update
251-
|</sup>""".stripMargin
365+
|</sup>
366+
|
367+
|<!-- scala-steward = {
368+
| "Update" : {
369+
| "ForArtifactId" : {
370+
| "crossDependency" : [
371+
| {
372+
| "groupId" : "ch.qos.logback",
373+
| "artifactId" : {
374+
| "name" : "logback-classic",
375+
| "maybeCrossName" : null
376+
| },
377+
| "version" : "1.2.0",
378+
| "sbtVersion" : null,
379+
| "scalaVersion" : null,
380+
| "configurations" : null
381+
| }
382+
| ],
383+
| "newerVersions" : [
384+
| "1.2.3"
385+
| ],
386+
| "newerGroupId" : null,
387+
| "newerArtifactId" : null
388+
| }
389+
| },
390+
| "Labels" : [
391+
| "library-update"
392+
| ]
393+
|} -->""".stripMargin
252394

253395
assertEquals(body, expected)
254396
}
@@ -642,7 +784,38 @@ class NewPullRequestDataTest extends FunSuite {
642784
|
643785
|<sup>
644786
|labels: library-update, early-semver-patch, semver-spec-patch, commit-count:0
645-
|</sup>""".stripMargin
787+
|</sup>
788+
|
789+
|<!-- scala-steward = {
790+
| "Update" : {
791+
| "ForArtifactId" : {
792+
| "crossDependency" : [
793+
| {
794+
| "groupId" : "ch.qos.logback",
795+
| "artifactId" : {
796+
| "name" : "logback-classic",
797+
| "maybeCrossName" : null
798+
| },
799+
| "version" : "1.2.0",
800+
| "sbtVersion" : null,
801+
| "scalaVersion" : null,
802+
| "configurations" : null
803+
| }
804+
| ],
805+
| "newerVersions" : [
806+
| "1.2.3"
807+
| ],
808+
| "newerGroupId" : null,
809+
| "newerArtifactId" : null
810+
| }
811+
| },
812+
| "Labels" : [
813+
| "library-update",
814+
| "early-semver-patch",
815+
| "semver-spec-patch",
816+
| "commit-count:0"
817+
| ]
818+
|} -->""".stripMargin
646819

647820
val expected = NewPullRequestData(
648821
title = "Update logback-classic to 1.2.3",
@@ -731,7 +904,70 @@ class NewPullRequestDataTest extends FunSuite {
731904
|
732905
|<sup>
733906
|labels: library-update, early-semver-patch, semver-spec-patch, early-semver-major, semver-spec-major, commit-count:0
734-
|</sup>""".stripMargin
907+
|</sup>
908+
|
909+
|<!-- scala-steward = {
910+
| "Update" : {
911+
| "Grouped" : {
912+
| "name" : "my-group",
913+
| "title" : null,
914+
| "updates" : [
915+
| {
916+
| "ForArtifactId" : {
917+
| "crossDependency" : [
918+
| {
919+
| "groupId" : "ch.qos.logback",
920+
| "artifactId" : {
921+
| "name" : "logback-classic",
922+
| "maybeCrossName" : null
923+
| },
924+
| "version" : "1.2.0",
925+
| "sbtVersion" : null,
926+
| "scalaVersion" : null,
927+
| "configurations" : null
928+
| }
929+
| ],
930+
| "newerVersions" : [
931+
| "1.2.3"
932+
| ],
933+
| "newerGroupId" : null,
934+
| "newerArtifactId" : null
935+
| }
936+
| },
937+
| {
938+
| "ForArtifactId" : {
939+
| "crossDependency" : [
940+
| {
941+
| "groupId" : "com.example",
942+
| "artifactId" : {
943+
| "name" : "foo",
944+
| "maybeCrossName" : null
945+
| },
946+
| "version" : "1.0.0",
947+
| "sbtVersion" : null,
948+
| "scalaVersion" : null,
949+
| "configurations" : null
950+
| }
951+
| ],
952+
| "newerVersions" : [
953+
| "2.0.0"
954+
| ],
955+
| "newerGroupId" : null,
956+
| "newerArtifactId" : null
957+
| }
958+
| }
959+
| ]
960+
| }
961+
| },
962+
| "Labels" : [
963+
| "library-update",
964+
| "early-semver-patch",
965+
| "semver-spec-patch",
966+
| "early-semver-major",
967+
| "semver-spec-major",
968+
| "commit-count:0"
969+
| ]
970+
|} -->""".stripMargin
735971

736972
val expected = NewPullRequestData(
737973
title = "Update for group my-group",
@@ -803,7 +1039,38 @@ class NewPullRequestDataTest extends FunSuite {
8031039
|
8041040
|<sup>
8051041
|labels: library-update, early-semver-major, semver-spec-minor, commit-count:1
806-
|</sup>""".stripMargin
1042+
|</sup>
1043+
|
1044+
|<!-- scala-steward = {
1045+
| "Update" : {
1046+
| "ForArtifactId" : {
1047+
| "crossDependency" : [
1048+
| {
1049+
| "groupId" : "org.typelevel",
1050+
| "artifactId" : {
1051+
| "name" : "cats-effect",
1052+
| "maybeCrossName" : null
1053+
| },
1054+
| "version" : "2.5.5",
1055+
| "sbtVersion" : null,
1056+
| "scalaVersion" : null,
1057+
| "configurations" : null
1058+
| }
1059+
| ],
1060+
| "newerVersions" : [
1061+
| "3.4.2"
1062+
| ],
1063+
| "newerGroupId" : null,
1064+
| "newerArtifactId" : null
1065+
| }
1066+
| },
1067+
| "Labels" : [
1068+
| "library-update",
1069+
| "early-semver-major",
1070+
| "semver-spec-minor",
1071+
| "commit-count:1"
1072+
| ]
1073+
|} -->""".stripMargin
8071074

8081075
assertEquals(body, expected)
8091076
}
@@ -857,7 +1124,38 @@ class NewPullRequestDataTest extends FunSuite {
8571124
|
8581125
|<sup>
8591126
|labels: library-update, early-semver-major, semver-spec-minor, commit-count:1
860-
|</sup>""".stripMargin
1127+
|</sup>
1128+
|
1129+
|<!-- scala-steward = {
1130+
| "Update" : {
1131+
| "ForArtifactId" : {
1132+
| "crossDependency" : [
1133+
| {
1134+
| "groupId" : "com.lihaoyi",
1135+
| "artifactId" : {
1136+
| "name" : "os-lib",
1137+
| "maybeCrossName" : null
1138+
| },
1139+
| "version" : "0.7.8",
1140+
| "sbtVersion" : null,
1141+
| "scalaVersion" : null,
1142+
| "configurations" : null
1143+
| }
1144+
| ],
1145+
| "newerVersions" : [
1146+
| "0.9.1"
1147+
| ],
1148+
| "newerGroupId" : null,
1149+
| "newerArtifactId" : null
1150+
| }
1151+
| },
1152+
| "Labels" : [
1153+
| "library-update",
1154+
| "early-semver-major",
1155+
| "semver-spec-minor",
1156+
| "commit-count:1"
1157+
| ]
1158+
|} -->""".stripMargin
8611159

8621160
assertEquals(body, expected)
8631161
}

0 commit comments

Comments
 (0)