From 20adf35581362766a4c9f35e60386c5d5e440a47 Mon Sep 17 00:00:00 2001 From: Monal-Reddy Date: Tue, 27 Jan 2026 19:06:54 +0530 Subject: [PATCH] Normalize CodebaseResource extension to avoid oversized values Signed-off-by: Monal-Reddy --- scanpipe/pipes/__init__.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/scanpipe/pipes/__init__.py b/scanpipe/pipes/__init__.py index 7fd885c36f..ffaf2ced11 100644 --- a/scanpipe/pipes/__init__.py +++ b/scanpipe/pipes/__init__.py @@ -43,6 +43,22 @@ logger = logging.getLogger("scanpipe.pipes") +def normalize_extension(name, extension, max_length=100): + """ + Return a safe file extension or None. + """ + # If there is no name, we cannot infer an extension + if not name: + return None + + # Recompute extension from the name (do not trust incoming value) + suffix = Path(name).suffix + if not suffix: + return None + + return suffix[:max_length] + + def make_codebase_resource(project, location, save=True, **extra_fields): """ @@ -93,7 +109,14 @@ def make_codebase_resource(project, location, save=True, **extra_fields): if extra_fields: resource_data.update(**extra_fields) + + # Normalize extension to avoid oversized non-extension values + resource_data["extension"] = normalize_extension( + resource_data.get("name"), + resource_data.get("extension"), + ) + codebase_resource = CodebaseResource( project=project, path=relative_path,