Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -259,17 +259,17 @@ val generateReleaseStateLastCommit by tasks.registering(GenerateReleaseStateLast
}

val releaseStateData = generateReleaseStateLastCommit.map { it.releaseState.get() }
val addOnsHelpWebsite = file("src/main/addons-help-website.txt")
val addOnsHelpWebsite = file("src/main/addons-help-website.yaml")

val downloadReleasedAddOns by tasks.registering(DownloadReleasedAddOns::class) {
releaseState.set(releaseStateData)
zapVersions.set(latestZapVersions)
allowedAddOns.set(addOnsHelpWebsite)
deniedAddOns.set(addOnsHelpWebsite)
outputDir.set(layout.buildDirectory.dir("releasedAddOns"))
}

val generateWebsitePages by tasks.registering(GenerateWebsitePages::class) {
allowedAddOns.set(addOnsHelpWebsite)
deniedAddOns.set(addOnsHelpWebsite)
addOns.from(downloadReleasedAddOns.map { fileTree(it.outputDir).matching { include("*.zap") } })

helpAddOnRegex.set("^help(?:_[a-zA-Z_]+)?")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public abstract class DownloadReleasedAddOns extends DefaultTask {
public abstract RegularFileProperty getZapVersions();

@InputFile
public abstract RegularFileProperty getAllowedAddOns();
public abstract RegularFileProperty getDeniedAddOns();

@OutputDirectory
public abstract DirectoryProperty getOutputDir();
Expand All @@ -57,13 +57,13 @@ void downloadAddOns() throws Exception {
return;
}

Set<String> allowedAddOns = TaskUtils.readAllowedAddOns(getAllowedAddOns());
Set<String> deniedAddOns = TaskUtils.readDeniedAddOns(getDeniedAddOns());
Path outputDir = getOutputDir().getAsFile().get().toPath();
ZapXmlConfiguration zapVersions =
new ZapXmlConfiguration(getZapVersions().getAsFile().get());
for (ReleaseState.AddOnChange addOn : addOns) {
String addOnId = addOn.getId();
if (!addOn.isNewVersion() || !allowedAddOns.contains(addOnId)) {
if (!addOn.isNewVersion() || deniedAddOns.contains(addOnId)) {
continue;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
public abstract class GenerateWebsitePages extends DefaultTask {

@InputFile
public abstract RegularFileProperty getAllowedAddOns();
public abstract RegularFileProperty getDeniedAddOns();

@InputFiles
public abstract ConfigurableFileCollection getAddOns();
Expand Down Expand Up @@ -88,7 +88,7 @@ public abstract class GenerateWebsitePages extends DefaultTask {

@TaskAction
public void generate() throws IOException {
Set<String> allowedAddOns = TaskUtils.readAllowedAddOns(getAllowedAddOns());
Set<String> deniedAddOns = TaskUtils.readDeniedAddOns(getDeniedAddOns());

Path outputDir = getOutputDir().get().getAsFile().toPath();

Expand All @@ -107,7 +107,7 @@ public void generate() throws IOException {

for (File addOnFile : getAddOns()) {
AddOn addOn = createAddOn(addOnFile.toPath());
if (addOn == null || !allowedAddOns.contains(addOn.getId())) {
if (addOn == null || deniedAddOns.contains(addOn.getId())) {
continue;
}

Expand Down
19 changes: 11 additions & 8 deletions buildSrc/src/main/java/org/zaproxy/gradle/TaskUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,25 @@
*/
package org.zaproxy.gradle;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.codec.digest.DigestUtils;
import org.gradle.api.Task;
import org.gradle.api.file.RegularFileProperty;

final class TaskUtils {

private static final String COMMENT_LINE = "#";

private TaskUtils() {}

private static final String HTTPS_SCHEME = "HTTPS";
Expand Down Expand Up @@ -99,11 +101,12 @@ static String calculateChecksum(Path file, String checksumAlgorithm, String expe
file, expectedChecksum, checksum));
}

static Set<String> readAllowedAddOns(RegularFileProperty fileProperty) throws IOException {
static Set<String> readDeniedAddOns(RegularFileProperty fileProperty) throws IOException {
Path file = fileProperty.getAsFile().get().toPath();
return Files.readAllLines(file, StandardCharsets.UTF_8).stream()
.filter(s -> !s.startsWith(COMMENT_LINE) || !s.isEmpty())
.collect(Collectors.toSet());
Map<String, List<String>> data =
new ObjectMapper(new YAMLFactory())
.readValue(file.toFile(), new TypeReference<>() {});
return new HashSet<>(data.get("denied"));
}

static boolean hasSecureScheme(URL url) {
Expand Down
111 changes: 0 additions & 111 deletions src/main/addons-help-website.txt

This file was deleted.

24 changes: 24 additions & 0 deletions src/main/addons-help-website.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Add-ons excluded from help website generation.
denied:
# ZAP locale/language add-ons
- coreLang
- help_ar_SA
- help_bs_BA
- help_es_ES
- help_fil_PH
- help_fr_FR
- help_id_ID
- help_ja_JP
- help_ms_MY
- help_pt_BR
- help_ru_RU
- help_tr_TR
- help_zh_CN

# 3rd-party add-ons with not known help
- attacksurfacedetector
- fileupload
- jwt
- levoai
- maplocal
- reflect
Loading