@@ -23,6 +23,7 @@ import org.gradle.api.DomainObjectCollection
23
23
import org.gradle.api.Project
24
24
import org.gradle.api.plugins.ExtensionAware
25
25
import org.gradle.api.provider.Property
26
+ import org.gradle.api.provider.Provider
26
27
import org.gradle.api.publish.Publication
27
28
import org.gradle.api.publish.PublicationArtifact
28
29
import org.gradle.api.publish.internal.PublicationInternal
@@ -35,6 +36,7 @@ import org.gradle.kotlin.dsl.register
35
36
import org.gradle.kotlin.dsl.the
36
37
import org.gradle.kotlin.dsl.withType
37
38
import org.gradle.plugins.signing.Sign
39
+ import org.gradle.util.GradleVersion
38
40
import kotlin.collections.set
39
41
40
42
abstract class SigstoreSignExtension (private val project : Project ) {
@@ -83,8 +85,17 @@ abstract class SigstoreSignExtension(private val project: Project) {
83
85
this .signatureDirectory.set(signatureDirectory)
84
86
}
85
87
88
+ var removeSignatureProperty = project.providers.gradleProperty(" dev.sigstore.sign.remove.sigstore.json.asc" )
89
+ if (GradleVersion .current() < GradleVersion .version(" 7.4" )) {
90
+ // Since Gradle 7.4 the method does nothing
91
+ // We use reflection here to avoid breakage when Gradle drops the method
92
+ @Suppress(" UNCHECKED_CAST" )
93
+ removeSignatureProperty = Provider ::class .java.getMethod(" forUseAtConfigurationTime" )
94
+ .invoke(removeSignatureProperty) as Provider <String >
95
+ }
96
+
86
97
val removeSigstoreAsc =
87
- project.providers.gradleProperty( " dev.sigstore.sign.remove.sigstore.json.asc " ) .orNull?.toBoolean() != false
98
+ removeSignatureProperty .orNull?.toBoolean() != false
88
99
89
100
val publicationName = publication.name
90
101
0 commit comments