From 42af71402e505fc66d5c8f53114459837cd8af35 Mon Sep 17 00:00:00 2001 From: Preslav Date: Tue, 16 Dec 2025 23:15:39 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20Use=20new=20multi-decoder=20in?= =?UTF-8?q?=20the=20sbom=20provider.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Preslav --- providers/sbom.go | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/providers/sbom.go b/providers/sbom.go index d1a51af2bd..7c4ccd709f 100644 --- a/providers/sbom.go +++ b/providers/sbom.go @@ -88,27 +88,10 @@ func (s *sbomProviderService) Connect(req *plugin.ConnectReq, callback plugin.Pr return nil, err } - decoder := []sbom.Decoder{} - - decoder = append(decoder, - sbom.NewCycloneDX(sbom.FormatCycloneDxJSON), - sbom.NewCycloneDX(sbom.FormatCycloneDxXML), - sbom.NewSPDX(sbom.FormatSpdxTagValue), - sbom.NewSPDX(sbom.FormatSpdxJSON), - sbom.New(sbom.FormatJson), - ) - - var sbomReport *sbom.Sbom - found := false - for i := range decoder { - sbomReport, err = decoder[i].Parse(bytes.NewReader(data)) - if err == nil { - found = true - break - } - } - if !found { - return nil, errors.New("unsupported sbom format") + decoder := sbom.DefaultMultiDecoder() + sbomReport, err := decoder.Parse(bytes.NewReader(data)) + if err != nil { + return nil, errors.Wrap(err, "failed to parse sbom file") } // Platform need to be set, otherwise it will panic