chore: verify dependency licenses
verify / harness (push) Has been cancelled

This commit is contained in:
QiuSW
2026-08-04 23:32:44 +08:00
parent bad67fa5a8
commit de480ee9bb
8 changed files with 185 additions and 2 deletions
+27
View File
@@ -1,3 +1,5 @@
import groovy.json.JsonSlurper
plugins {
alias(libs.plugins.kotlin.jvm)
}
@@ -25,3 +27,28 @@ tasks.test {
exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
}
}
tasks.register("verifyDependencyLicenses") {
group = "verification"
description = "Ensures every resolved JVM runtime/test artifact has a reviewed license entry."
doLast {
@Suppress("UNCHECKED_CAST")
val manifest = JsonSlurper().parse(rootProject.file("config/dependency-licenses.json")) as Map<String, Any>
@Suppress("UNCHECKED_CAST")
val components = manifest.getValue("components") as List<Map<String, Any>>
val reviewedCoordinates = components.mapNotNull { it["coordinates"] as String? }.toSet()
val resolvedCoordinates = configurations.getByName("testRuntimeClasspath")
.resolvedConfiguration
.resolvedArtifacts
.map { artifact ->
val id = artifact.moduleVersion.id
"${id.group}:${id.name}:${id.version}"
}
.toSet()
val missing = resolvedCoordinates - reviewedCoordinates
check(missing.isEmpty()) {
"Dependencies missing reviewed license entries: ${missing.sorted().joinToString()}"
}
}
}