Commit f0d4111b authored by Clement Bois's avatar Clement Bois
Browse files

Merge branch 'fix/quote-purl-trim' into 'main'

fix: quote purl params before trim

See merge request to-be-continuous/tools/dt-sbom-scanner!18
parents 82bf4ec4 0141fbd0
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
import json
from pathlib import Path
from typing import Optional
from urllib.parse import quote_plus, unquote_plus
from warnings import catch_warnings

from cyclonedx.model.bom import Bom
@@ -61,9 +62,16 @@ def trim_purls(sbom: Bom, limit: int = 0) -> None:

    for component in sbom.components:
        purl = component.purl
        if len(str(purl)) < limit:
        if not purl:
            continue

        purl_orig = str(purl)
        # url encode params if not already
        for key in purl.qualifiers:
            purl.qualifiers[key] = quote_plus(unquote_plus(purl.qualifiers[key]))

        if len(str(purl)) < limit:
            continue

        purl_trunc = purl_orig
        while purl.qualifiers and len(purl_trunc) >= limit: