1
+ import org.zaproxy.gradle.addon.AddOnPlugin
1
2
import org.zaproxy.gradle.addon.AddOnStatus
2
- import org.zaproxy.gradle.addon.manifest.tasks.ConvertChangelogToChanges
3
+ import org.zaproxy.gradle.addon.misc.ConvertMarkdownToHtml
4
+ import org.zaproxy.gradle.addon.misc.CreateGitHubRelease
5
+ import org.zaproxy.gradle.addon.misc.ExtractLatestChangesFromChangelog
3
6
4
7
plugins {
5
8
`java- library`
6
9
eclipse
7
- id(" org.zaproxy.add-on" ) version " 0.1 .0"
10
+ id(" org.zaproxy.add-on" ) version " 0.2 .0"
8
11
}
9
12
10
13
eclipse {
@@ -22,23 +25,48 @@ java {
22
25
targetCompatibility = JavaVersion .VERSION_1_8
23
26
}
24
27
25
- val generateManifestChanges by tasks.registering(ConvertChangelogToChanges ::class ) {
26
- changelog.set(file(" CHANGELOG.md" ))
27
- manifestChanges.set(file(" $buildDir /zapAddOn/manifest-changes.html" ))
28
- }
29
-
30
28
zapAddOn {
31
29
addOnName.set(" FuzzDB Web Backdoors" )
32
30
addOnStatus.set(AddOnStatus .RELEASE )
33
31
zapVersion.set(" 2.5.0" )
34
32
33
+ releaseLink.set(" https://github.com/zaproxy/fuzzdb-web-backdoors/compare/v@PREVIOUS_VERSION@...v@CURRENT_VERSION@" )
34
+ unreleasedLink.set(" https://github.com/zaproxy/fuzzdb-web-backdoors/compare/v@CURRENT_VERSION@...HEAD" )
35
+
35
36
manifest {
36
37
author.set(" ZAP Dev Team" )
37
38
url.set(" https://github.com/fuzzdb-project/fuzzdb/" )
38
- changesFile.set(generateManifestChanges.flatMap { it.manifestChanges })
39
+ changesFile.set(tasks.named<ConvertMarkdownToHtml >(" generateManifestChanges" ).flatMap { it.html })
40
+ }
41
+ }
42
+
43
+ System .getenv(" GITHUB_REF" )?.let { ref ->
44
+ if (" refs/tags/" !in ref) {
45
+ return @let
39
46
}
40
47
41
- zapVersions {
42
- downloadUrl.set(" https://github.com/zaproxy/fuzzdb-web-backdoors/releases/download/v$version " )
48
+ tasks.register<CreateGitHubRelease >(" createReleaseFromGitHubRef" ) {
49
+ val targetTag = ref.removePrefix(" refs/tags/" )
50
+ val targetAddOnVersion = targetTag.removePrefix(" v" )
51
+
52
+ authToken.set(System .getenv(" GITHUB_TOKEN" ))
53
+ repo.set(System .getenv(" GITHUB_REPOSITORY" ))
54
+ tag.set(targetTag)
55
+
56
+ title.set(provider { " v${zapAddOn.addOnVersion.get()} " })
57
+ bodyFile.set(tasks.named<ExtractLatestChangesFromChangelog >(" extractLatestChanges" ).flatMap { it.latestChanges })
58
+
59
+ assets {
60
+ register(" add-on" ) {
61
+ file.set(tasks.named<Jar >(AddOnPlugin .JAR_ZAP_ADD_ON_TASK_NAME ).flatMap { it.archiveFile })
62
+ }
63
+ }
64
+
65
+ doFirst {
66
+ val addOnVersion = zapAddOn.addOnVersion.get()
67
+ require(addOnVersion == targetAddOnVersion) {
68
+ " Version of the tag $targetAddOnVersion does not match the version of the add-on $addOnVersion "
69
+ }
70
+ }
43
71
}
44
72
}
0 commit comments