Skip to content

Commit 4214187

Browse files
committed
Normalize CodebaseResource extension to avoid oversized values
1 parent 344861a commit 4214187

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

scanpipe/pipes/__init__.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,22 @@
4343

4444
logger = logging.getLogger("scanpipe.pipes")
4545

46+
def normalize_extension(name, extension, max_length=100):
47+
"""
48+
Return a safe file extension or None.
49+
"""
50+
# If there is no name, we cannot infer an extension
51+
if not name:
52+
return None
53+
54+
# Recompute extension from the name (do not trust incoming value)
55+
suffix = Path(name).suffix
56+
if not suffix:
57+
return None
58+
59+
return suffix[:max_length]
60+
61+
4662

4763
def make_codebase_resource(project, location, save=True, **extra_fields):
4864
"""
@@ -93,7 +109,14 @@ def make_codebase_resource(project, location, save=True, **extra_fields):
93109

94110
if extra_fields:
95111
resource_data.update(**extra_fields)
112+
113+
# Normalize extension to avoid oversized non-extension values
114+
resource_data["extension"] = normalize_extension(
115+
resource_data.get("name"),
116+
resource_data.get("extension"),
117+
)
96118

119+
97120
codebase_resource = CodebaseResource(
98121
project=project,
99122
path=relative_path,

0 commit comments

Comments
 (0)