From 697f1c0e324b6a27571c597965f3955bc3443297 Mon Sep 17 00:00:00 2001 From: Arshan Dabirsiaghi Date: Mon, 7 Oct 2024 14:29:32 -0400 Subject: [PATCH] wip --- .../io/codemodder/RemediationCodemod.java | 19 ++++++++++++++++ .../io/codemodder/RemediationContext.java | 22 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/RemediationCodemod.java create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/RemediationContext.java diff --git a/framework/codemodder-base/src/main/java/io/codemodder/RemediationCodemod.java b/framework/codemodder-base/src/main/java/io/codemodder/RemediationCodemod.java new file mode 100644 index 000000000..cd7cb717e --- /dev/null +++ b/framework/codemodder-base/src/main/java/io/codemodder/RemediationCodemod.java @@ -0,0 +1,19 @@ +package io.codemodder; + +import io.codemodder.codetf.CodeTFReference; +import io.codemodder.codetf.CodeTFResult; + +import java.util.List; + +/** A codemod that is meant to be given a result, find and modify the right files, and return a completed {@link CodeTFResult}. */ +public interface RemediationCodemod { + + /** Run the codemod */ + CodeTFResult run(RemediationContext context); + + /** Codemod ID, like "semgrep:java/xss". */ + String getId(); + + /** References for more reading about this codemod. */ + List getReferences(); +} diff --git a/framework/codemodder-base/src/main/java/io/codemodder/RemediationContext.java b/framework/codemodder-base/src/main/java/io/codemodder/RemediationContext.java new file mode 100644 index 000000000..b1593def7 --- /dev/null +++ b/framework/codemodder-base/src/main/java/io/codemodder/RemediationContext.java @@ -0,0 +1,22 @@ +package io.codemodder; + +import com.contrastsecurity.sarif.SarifSchema210; + +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; + +/** A context that is passed to a {@link RemediationCodemod}. */ +public interface RemediationContext { + + /** The project directory to be analyzed/fixed. */ + CodeDirectory directory(); + + Optional findSarifByVendor(String vendorName); + + List sonarHotspotPaths(); + + List sonarIssuePaths(); + + List contrastAssessPaths(); +}