Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package grype-db for openSUSE:Factory 
checked in at 2025-04-17 16:07:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grype-db (Old)
 and      /work/SRC/openSUSE:Factory/.grype-db.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grype-db"

Thu Apr 17 16:07:55 2025 rev:9 rq:1270066 version:0.33.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/grype-db/grype-db.changes        2025-04-10 
22:01:00.677017229 +0200
+++ /work/SRC/openSUSE:Factory/.grype-db.new.30101/grype-db.changes     
2025-04-20 19:55:46.506406283 +0200
@@ -1,0 +2,9 @@
+Wed Apr 16 15:49:44 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 0.33.0:
+  * Added Features
+    - allow db hydration during build [#558 @westonsteimel]
+  * Additional Changes
+    - Fix processing of github-action entries [#556 @wagoodman]
+
+-------------------------------------------------------------------

Old:
----
  grype-db-0.32.0.obscpio

New:
----
  grype-db-0.33.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ grype-db.spec ++++++
--- /var/tmp/diff_new_pack.7T76V0/_old  2025-04-20 19:55:48.170475947 +0200
+++ /var/tmp/diff_new_pack.7T76V0/_new  2025-04-20 19:55:48.174476114 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           grype-db
-Version:        0.32.0
+Version:        0.33.0
 Release:        0
 Summary:        A vulnerability scanner for container images and filesystems
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.7T76V0/_old  2025-04-20 19:55:48.202477286 +0200
+++ /var/tmp/diff_new_pack.7T76V0/_new  2025-04-20 19:55:48.206477454 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/anchore/grype-db</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.32.0</param>
+    <param name="revision">v0.33.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7T76V0/_old  2025-04-20 19:55:48.230478459 +0200
+++ /var/tmp/diff_new_pack.7T76V0/_new  2025-04-20 19:55:48.234478626 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/anchore/grype-db</param>
-              <param 
name="changesrevision">e1cdd057953847cf092640100b6b106199453865</param></service></servicedata>
+              <param 
name="changesrevision">99143e6451c02525a81ea74677ccef6433d55200</param></service></servicedata>
 (No newline at EOF)
 

++++++ grype-db-0.32.0.obscpio -> grype-db-0.33.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grype-db-0.32.0/cmd/grype-db/cli/commands/build.go 
new/grype-db-0.33.0/cmd/grype-db/cli/commands/build.go
--- old/grype-db-0.32.0/cmd/grype-db/cli/commands/build.go      2025-04-08 
11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/cmd/grype-db/cli/commands/build.go      2025-04-15 
15:40:01.000000000 +0200
@@ -119,6 +119,7 @@
                Timestamp:           earliest,
                IncludeCPEParts:     cfg.IncludeCPEParts,
                InferNVDFixVersions: cfg.InferNVDFixVersions,
+               Hydrate:             cfg.Hydrate,
        })
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grype-db-0.32.0/cmd/grype-db/cli/options/build.go 
new/grype-db-0.33.0/cmd/grype-db/cli/options/build.go
--- old/grype-db-0.32.0/cmd/grype-db/cli/options/build.go       2025-04-08 
11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/cmd/grype-db/cli/options/build.go       2025-04-15 
15:40:01.000000000 +0200
@@ -19,6 +19,7 @@
        // unbound options
        IncludeCPEParts     []string `yaml:"include-cpe-parts" 
json:"include-cpe-parts" mapstructure:"include-cpe-parts"`
        InferNVDFixVersions bool     `yaml:"infer-nvd-fix-versions" 
json:"infer-nvd-fix-versions" mapstructure:"infer-nvd-fix-versions"`
+       Hydrate             bool     `yaml:"hydrate" json:"hydrate" 
mapstructure:"hydrate"`
 }
 
 func DefaultBuild() Build {
@@ -28,6 +29,7 @@
                SchemaVersion:       process.DefaultSchemaVersion,
                IncludeCPEParts:     []string{"a", "h", "o"},
                InferNVDFixVersions: true,
+               Hydrate:             false,
        }
 }
 
@@ -59,6 +61,7 @@
        // set default values for non-bound struct items
        v.SetDefault("build.include-cpe-parts", o.IncludeCPEParts)
        v.SetDefault("build.infer-nvd-fix-versions", o.InferNVDFixVersions)
+       v.SetDefault("build.hydrate", o.Hydrate)
 
        return o.DBLocation.BindFlags(flags, v)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grype-db-0.32.0/pkg/process/build.go 
new/grype-db-0.33.0/pkg/process/build.go
--- old/grype-db-0.32.0/pkg/process/build.go    2025-04-08 11:56:22.000000000 
+0200
+++ new/grype-db-0.33.0/pkg/process/build.go    2025-04-15 15:40:01.000000000 
+0200
@@ -7,6 +7,7 @@
        "time"
 
        "github.com/dustin/go-humanize"
+       "github.com/spf13/afero"
 
        "github.com/anchore/grype-db/internal/log"
        "github.com/anchore/grype-db/pkg/data"
@@ -26,6 +27,7 @@
        Timestamp           time.Time
        IncludeCPEParts     []string
        InferNVDFixVersions bool
+       Hydrate             bool
 }
 
 func Build(cfg BuildConfig) error {
@@ -62,7 +64,17 @@
                return err
        }
 
-       return writer.Close()
+       if err := writer.Close(); err != nil {
+               return err
+       }
+
+       if cfg.Hydrate && cfg.SchemaVersion > 5 {
+               if err := hydrate(cfg); err != nil {
+                       return err
+               }
+       }
+
+       return nil
 }
 
 type providerResults struct {
@@ -176,6 +188,24 @@
 
        return nil
 }
+
+func hydrate(cfg BuildConfig) error {
+       hydrator := grypeDBv6.Hydrater()
+       fs := afero.NewOsFs()
+
+       if err := hydrator(cfg.Directory); err != nil {
+               return fmt.Errorf("failed to hydrate db: %w", err)
+       }
+
+       doc, err := grypeDBv6.WriteImportMetadata(fs, cfg.Directory, "grype db 
build")
+       if err != nil {
+               return fmt.Errorf("failed to write checksums file: %w", err)
+       }
+
+       log.WithFields("digest", doc.Digest).Trace("captured DB digest")
+
+       return nil
+}
 
 func logDropped(droppedElementsByProvider, droppedSchemaElements 
map[string]int) {
        sortedKeys := func(m map[string]int) []string {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grype-db-0.32.0/pkg/process/v5/transformers/github/transform.go 
new/grype-db-0.33.0/pkg/process/v5/transformers/github/transform.go
--- old/grype-db-0.32.0/pkg/process/v5/transformers/github/transform.go 
2025-04-08 11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/pkg/process/v5/transformers/github/transform.go 
2025-04-15 15:40:01.000000000 +0200
@@ -1,6 +1,7 @@
 package github
 
 import (
+       "errors"
        "fmt"
        "strings"
 
@@ -13,6 +14,8 @@
        syftPkg "github.com/anchore/syft/syft/pkg"
 )
 
+var errSkip = fmt.Errorf("skipping advisory")
+
 func buildGrypeNamespace(group string) (namespace.Namespace, error) {
        feedGroupComponents := strings.Split(group, ":")
 
@@ -24,10 +27,13 @@
        syftLanguage := syftPkg.LanguageByName(feedGroupLang)
 
        if syftLanguage == syftPkg.UnknownLanguage {
-               // For now map nuget to dotnet as the language.
-               if feedGroupLang == "nuget" {
+               switch feedGroupLang {
+               case "nuget":
                        syftLanguage = syftPkg.Dotnet
-               } else {
+               case "github-action":
+                       // we don't want to error out on this, but grype at 
this version does not support github-action matching
+                       return nil, errSkip
+               default:
                        return nil, fmt.Errorf("unable to determine grype 
namespace for enterprise namespace=%s", group)
                }
        }
@@ -54,6 +60,9 @@
 
        grypeNamespace, err := 
buildGrypeNamespace(vulnerability.Advisory.Namespace)
        if err != nil {
+               if errors.Is(err, errSkip) {
+                       return nil, nil
+               }
                return nil, err
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grype-db-0.32.0/pkg/process/v5/transformers/github/transform_test.go 
new/grype-db-0.33.0/pkg/process/v5/transformers/github/transform_test.go
--- old/grype-db-0.32.0/pkg/process/v5/transformers/github/transform_test.go    
2025-04-08 11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/pkg/process/v5/transformers/github/transform_test.go    
2025-04-15 15:40:01.000000000 +0200
@@ -22,6 +22,7 @@
        tests := []struct {
                group     string
                namespace namespace.Namespace
+               wantErr   require.ErrorAssertionFunc
        }{
                {
                        group:     "github:python",
@@ -51,12 +52,24 @@
                        group:     "github:rust",
                        namespace: language.NewNamespace("github", 
syftPkg.Rust, ""),
                },
+               {
+                       group: "github:github-action",
+                       wantErr: func(t require.TestingT, err error, i 
...interface{}) {
+                               assert.Error(t, err)
+                               assert.ErrorIs(t, errSkip, err)
+                       },
+               },
        }
 
        for _, test := range tests {
+               if test.wantErr == nil {
+                       test.wantErr = require.NoError
+               }
                ns, err := buildGrypeNamespace(test.group)
-
-               assert.NoError(t, err)
+               test.wantErr(t, err)
+               if err != nil {
+                       return
+               }
                assert.Equal(t, test.namespace, ns)
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grype-db-0.32.0/pkg/process/v6/archive.go 
new/grype-db-0.33.0/pkg/process/v6/archive.go
--- old/grype-db-0.32.0/pkg/process/v6/archive.go       2025-04-08 
11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/pkg/process/v6/archive.go       2025-04-15 
15:40:01.000000000 +0200
@@ -65,8 +65,13 @@
        )
 
        tarPath := filepath.Join(dbDir, tarName)
+       files := []string{v6.VulnerabilityDBFileName}
 
-       if err := populateTar(dbDir, tarName, v6.VulnerabilityDBFileName); err 
!= nil {
+       if _, err := os.Stat(path.Join(dbDir, v6.ImportMetadataFileName)); err 
== nil {
+               files = append(files, v6.ImportMetadataFileName)
+       }
+
+       if err := populateTar(dbDir, tarName, files...); err != nil {
                return err
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grype-db-0.32.0/pkg/process/v6/transformers/github/transform.go 
new/grype-db-0.33.0/pkg/process/v6/transformers/github/transform.go
--- old/grype-db-0.32.0/pkg/process/v6/transformers/github/transform.go 
2025-04-08 11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/pkg/process/v6/transformers/github/transform.go 
2025-04-15 15:40:01.000000000 +0200
@@ -164,6 +164,12 @@
                return pkg.RpmPkg
        case "deb":
                return pkg.DebPkg
+       case "github-action":
+               return pkg.GithubActionPkg
+       }
+       ty := pkg.TypeByName(ecosystem)
+       if ty != pkg.UnknownPkg {
+               return ty
        }
 
        log.Warnf("using unknown ecosystem intead of syft pkg type (this will 
probably cause issues when matching): %q", ecosystem)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grype-db-0.32.0/pkg/process/v6/transformers/github/transform_test.go 
new/grype-db-0.33.0/pkg/process/v6/transformers/github/transform_test.go
--- old/grype-db-0.32.0/pkg/process/v6/transformers/github/transform_test.go    
2025-04-08 11:56:22.000000000 +0200
+++ new/grype-db-0.33.0/pkg/process/v6/transformers/github/transform_test.go    
2025-04-15 15:40:01.000000000 +0200
@@ -13,6 +13,7 @@
        "github.com/anchore/grype-db/pkg/provider"
        "github.com/anchore/grype-db/pkg/provider/unmarshal"
        grypeDB "github.com/anchore/grype/grype/db/v6"
+       "github.com/anchore/syft/syft/pkg"
 )
 
 func TestTransform(t *testing.T) {
@@ -541,6 +542,51 @@
                        }
                })
        }
+}
+
+func TestGetPackageType(t *testing.T) {
+       tests := []struct {
+               ecosystem    string
+               expectedType pkg.Type
+       }{
+               {"composer", pkg.PhpComposerPkg},
+               {"Composer", pkg.PhpComposerPkg}, // testing case insensitivity
+               {"COMPOSER", pkg.PhpComposerPkg}, // testing case insensitivity
+               {"rust", pkg.RustPkg},
+               {"cargo", pkg.RustPkg},
+               {"dart", pkg.DartPubPkg},
+               {"nuget", pkg.DotnetPkg},
+               {".net", pkg.DotnetPkg},
+               {"go", pkg.GoModulePkg},
+               {"golang", pkg.GoModulePkg},
+               {"maven", pkg.JavaPkg},
+               {"java", pkg.JavaPkg},
+               {"npm", pkg.NpmPkg},
+               {"pypi", pkg.PythonPkg},
+               {"python", pkg.PythonPkg},
+               {"pip", pkg.PythonPkg},
+               {"swift", pkg.SwiftPkg},
+               {"rubygems", pkg.GemPkg},
+               {"ruby", pkg.GemPkg},
+               {"gem", pkg.GemPkg},
+               {"apk", pkg.ApkPkg},
+               {"rpm", pkg.RpmPkg},
+               {"deb", pkg.DebPkg},
+               {"github-action", pkg.GithubActionPkg},
+
+               // test for unknown type fallback
+               {"unknown-ecosystem", pkg.Type("unknown-ecosystem")},
+               {"", pkg.Type("")},
+       }
+
+       for _, tc := range tests {
+               t.Run(tc.ecosystem, func(t *testing.T) {
+                       gotType := getPackageType(tc.ecosystem)
+                       if gotType != tc.expectedType {
+                               t.Errorf("getPackageType(%q) = %v, want %v", 
tc.ecosystem, gotType, tc.expectedType)
+                       }
+               })
+       }
 }
 
 func loadFixture(t *testing.T, path string) []unmarshal.GitHubAdvisory {

++++++ grype-db.obsinfo ++++++
--- /var/tmp/diff_new_pack.7T76V0/_old  2025-04-20 19:55:58.126892762 +0200
+++ /var/tmp/diff_new_pack.7T76V0/_new  2025-04-20 19:55:58.154893934 +0200
@@ -1,5 +1,5 @@
 name: grype-db
-version: 0.32.0
-mtime: 1744106182
-commit: e1cdd057953847cf092640100b6b106199453865
+version: 0.33.0
+mtime: 1744724401
+commit: 99143e6451c02525a81ea74677ccef6433d55200
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/grype-db/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.grype-db.new.30101/vendor.tar.gz differ: char 6, 
line 1

Reply via email to