@@ -25,6 +25,7 @@ import (
2525 "github.com/anchore/syft/syft/format/syftjson"
2626 "github.com/anchore/syft/syft/sbom"
2727 "github.com/anchore/syft/syft/source"
28+ "github.com/gitpod-io/leeway/pkg/leeway/cache"
2829 "github.com/google/uuid"
2930 log "github.com/sirupsen/logrus"
3031 "golang.org/x/xerrors"
@@ -39,18 +40,6 @@ const (
3940
4041 // EnvvarVulnReportsDir names the environment variable we take the vulnerability reports directory location from
4142 EnvvarVulnReportsDir = "LEEWAY_VULN_REPORTS_DIR"
42-
43- // SBOM file format constants
44- sbomBaseFilename = "sbom"
45-
46- // sbomCycloneDXFileExtension is the extension of the CycloneDX SBOM file we store in the archived build artifacts
47- sbomCycloneDXFileExtension = ".cdx.json"
48-
49- // sbomSPDXFileExtension is the extension of the SPDX SBOM file we store in the archived build artifacts
50- sbomSPDXFileExtension = ".spdx.json"
51-
52- // sbomSyftFileExtension is the extension of the Syft SBOM file we store in the archived build artifacts
53- sbomSyftFileExtension = ".json"
5443)
5544
5645// WorkspaceSBOM configures SBOM generation for a workspace
@@ -362,14 +351,14 @@ func writeSBOMToCache(buildctx *buildContext, p *Package, builddir string) (err
362351 }
363352
364353 // Normalize CycloneDX
365- cycloneDXPath := artifactPath + "." + sbomBaseFilename + sbomCycloneDXFileExtension
354+ cycloneDXPath := artifactPath + "." + cache . SBOMBaseFilename + cache . SBOMCycloneDXFileExtension
366355 if err := normalizeCycloneDX (cycloneDXPath , timestamp ); err != nil {
367356 buildctx .Reporter .PackageBuildLog (p , true ,
368357 []byte (fmt .Sprintf ("Warning: failed to normalize CycloneDX SBOM: %v\n " , err )))
369358 }
370359
371360 // Normalize SPDX
372- spdxPath := artifactPath + "." + sbomBaseFilename + sbomSPDXFileExtension
361+ spdxPath := artifactPath + "." + cache . SBOMBaseFilename + cache . SBOMSPDXFileExtension
373362 if err := normalizeSPDX (spdxPath , timestamp ); err != nil {
374363 buildctx .Reporter .PackageBuildLog (p , true ,
375364 []byte (fmt .Sprintf ("Warning: failed to normalize SPDX SBOM: %v\n " , err )))
@@ -392,21 +381,21 @@ func getSBOMEncoder(format string) (encoder sbom.FormatEncoder, filename string,
392381 if err != nil {
393382 return nil , "" , xerrors .Errorf ("failed to create CycloneDX encoder: %w" , err )
394383 }
395- fileExtension = sbomCycloneDXFileExtension
384+ fileExtension = cache . SBOMCycloneDXFileExtension
396385 case "spdx" :
397386 encoder , err = spdxjson .NewFormatEncoderWithConfig (spdxjson .DefaultEncoderConfig ())
398387 if err != nil {
399388 return nil , "" , xerrors .Errorf ("failed to create SPDX encoder: %w" , err )
400389 }
401- fileExtension = sbomSPDXFileExtension
390+ fileExtension = cache . SBOMSPDXFileExtension
402391 case "syft" :
403392 encoder = syftjson .NewFormatEncoder ()
404- fileExtension = sbomSyftFileExtension
393+ fileExtension = cache . SBOMSyftFileExtension
405394 default :
406395 return nil , "" , xerrors .Errorf ("unsupported SBOM format: %s" , format )
407396 }
408397
409- return encoder , sbomBaseFilename + fileExtension , nil
398+ return encoder , cache . SBOMBaseFilename + fileExtension , nil
410399}
411400
412401// writeFileHandler returns a handler function for AccessSBOMInCachedArchive that writes to a file.
@@ -442,11 +431,11 @@ func ValidateSBOMFormat(format string) (bool, []string) {
442431func GetSBOMFileExtension (format string ) string {
443432 switch format {
444433 case "cyclonedx" :
445- return sbomCycloneDXFileExtension
434+ return cache . SBOMCycloneDXFileExtension
446435 case "spdx" :
447- return sbomSPDXFileExtension
436+ return cache . SBOMSPDXFileExtension
448437 case "syft" :
449- return sbomSyftFileExtension
438+ return cache . SBOMSyftFileExtension
450439 default :
451440 return ".json"
452441 }
@@ -474,7 +463,7 @@ func AccessSBOMInCachedArchive(fn string, format string, handler func(sbomFile i
474463 }
475464
476465 // Try reading from separate SBOM file first (new format)
477- sbomExt := "." + sbomBaseFilename + GetSBOMFileExtension (format )
466+ sbomExt := "." + cache . SBOMBaseFilename + GetSBOMFileExtension (format )
478467 sbomPath := fn + sbomExt
479468
480469 if _ , statErr := os .Stat (sbomPath ); statErr == nil {
@@ -497,7 +486,7 @@ func AccessSBOMInCachedArchive(fn string, format string, handler func(sbomFile i
497486
498487// accessSBOMInTarArchive extracts an SBOM file from inside a tar.gz archive (legacy format).
499488func accessSBOMInTarArchive (fn string , format string , handler func (sbomFile io.Reader ) error ) error {
500- sbomFilename := sbomBaseFilename + GetSBOMFileExtension (format )
489+ sbomFilename := cache . SBOMBaseFilename + GetSBOMFileExtension (format )
501490
502491 f , err := os .Open (fn )
503492 if err != nil {
0 commit comments