Skip to content

Commit 403c368

Browse files
authored
feat(automation): improve readability of suggesting versions (#1258)
1 parent eeaea5c commit 403c368

File tree

2 files changed

+43
-11
lines changed
  • automation/code-generator/src

2 files changed

+43
-11
lines changed

automation/code-generator/src/main/kotlin/io/github/typesafegithub/workflows/codegenerator/versions/SuggestVersions.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ suspend fun main() {
4242
for ((coords, existingVersions) in actionsMap) {
4343
val available = coords.fetchAvailableVersions(githubAuthorization)
4444
coords.suggestNewerVersion(existingVersions, available)?.let { message ->
45-
val outputForAction = "$message for ${coords.prettyPrint}"
45+
val outputForAction = "# ${coords.prettyPrint}\n$message"
4646
println(outputForAction)
4747
output += "$outputForAction\n"
4848
}
@@ -93,8 +93,18 @@ fun ActionCoords.suggestNewerVersion(
9393
val removedInputs = metadata.inputs.keys - thisMetadata.inputs.keys
9494
val addedOutputs = thisMetadata.outputs.keys - metadata.outputs.keys
9595
val removedOutputs = metadata.outputs.keys - thisMetadata.outputs.keys
96-
"$it (added inputs: $addedInputs, removed inputs: $removedInputs, " +
97-
"added outputs: $addedOutputs, removed outputs: $removedOutputs)"
96+
"""
97+
* $it ([diff](${this.buildGitHubComparisonUrl(maxExisting, it)}))
98+
* added inputs: $addedInputs
99+
* removed inputs: $removedInputs
100+
* added outputs: $addedOutputs
101+
* removed outputs: $removedOutputs
102+
""".trimIndent()
98103
}
99-
return "new version(s) available: $newerMajorVersions".takeIf { newerMajorVersions.isNotEmpty() }
104+
return newerMajorVersions.joinToString("\n").takeIf { newerMajorVersions.isNotEmpty() }
100105
}
106+
107+
private fun ActionCoords.buildGitHubComparisonUrl(
108+
version1: Version,
109+
version2: Version,
110+
): String = "https://github.com/${this.owner}/${this.name}/compare/$version1...$version2#files_bucket"

automation/code-generator/src/test/kotlin/io/github/typesafegithub/workflows/codegenerator/versions/SuggestVersionsTest.kt

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,23 +103,45 @@ class SuggestVersionsTest : FunSpec({
103103
"v1".versions(),
104104
"v1, v1.1.1, v2, v2.0.1, v3, v3.1.1".versions(),
105105
fetchMeta = ActionCoords::fetchMeta,
106-
) shouldBe "new version(s) available: [" +
107-
"v2 (added inputs: [new-input-in-v2], removed inputs: [input-will-be-removed-in-v2], " +
108-
"added outputs: [new-input-in-v2], removed outputs: [outputs-will-be-removed-in-v2]), " +
109-
"v3 (added inputs: [new-input-in-v2], removed inputs: [input-will-be-removed-in-v2], " +
110-
"added outputs: [new-input-in-v2], removed outputs: [outputs-will-be-removed-in-v2])]"
106+
) shouldBe
107+
"""
108+
* v2 ([diff](https://github.com/test-owner/test-name/compare/v1...v2#files_bucket))
109+
* added inputs: [new-input-in-v2]
110+
* removed inputs: [input-will-be-removed-in-v2]
111+
* added outputs: [new-input-in-v2]
112+
* removed outputs: [outputs-will-be-removed-in-v2]
113+
* v3 ([diff](https://github.com/test-owner/test-name/compare/v1...v3#files_bucket))
114+
* added inputs: [new-input-in-v2]
115+
* removed inputs: [input-will-be-removed-in-v2]
116+
* added outputs: [new-input-in-v2]
117+
* removed outputs: [outputs-will-be-removed-in-v2]
118+
""".trimIndent()
111119

112120
testCoords.suggestNewerVersion(
113121
"v2".versions(),
114122
"v1.1.1, v2, v2.0.1, v3, v3.1.1".versions(),
115123
fetchMeta = ActionCoords::fetchMeta,
116-
) shouldBe "new version(s) available: [v3 (added inputs: [], removed inputs: [], added outputs: [], removed outputs: [])]"
124+
) shouldBe
125+
"""
126+
* v3 ([diff](https://github.com/test-owner/test-name/compare/v2...v3#files_bucket))
127+
* added inputs: []
128+
* removed inputs: []
129+
* added outputs: []
130+
* removed outputs: []
131+
""".trimIndent()
117132

118133
testCoords.suggestNewerVersion(
119134
"v9".versions(),
120135
"v12, v12.0.1".versions(),
121136
fetchMeta = ActionCoords::fetchMeta,
122-
) shouldBe "new version(s) available: [v12 (added inputs: [], removed inputs: [], added outputs: [], removed outputs: [])]"
137+
) shouldBe
138+
"""
139+
* v12 ([diff](https://github.com/test-owner/test-name/compare/v9...v12#files_bucket))
140+
* added inputs: []
141+
* removed inputs: []
142+
* added outputs: []
143+
* removed outputs: []
144+
""".trimIndent()
123145
}
124146
}
125147
}

0 commit comments

Comments
 (0)