vet/pkg/exceptions/utils.go
abhisek 1dba6fdd8e
refactor: Parser to use dependency graph parsers
feat: Add npm package-lock.json graph parser

fix: Npm graph parser path to root traversal

fix: File naming convention for npm graph parser

feat: Add reporter for graph visualization in dot format

feat: Add support for showing dependency upgrade path in summary report

fix: Bug in summary reporter related to random ordering of entries with same score

chore: Add support for experimental flag in scanner config

refactor: Test cases or npm package name extractor into utils

feat: Add support for dependency graph data in CSV report generator

fix: LFP npm handle package links

test: Improve test for npm name extraction

feat: Add support for reconstructing dependency graph using insights data

fix: purl reader to use package manifest builder

test: Add E2E for gradle dependency graph reconstruction

fix: Handle root node marking heuristics for enriched dependency graph

feat: Allow query command to generate dependency graph

fix: Scanner dependency graph reconstruction using dependency distance

fix: Test case for maven dependency graph reconstruction

chore: Improve summary report text for dependency path to root

refactor: Code re-use in npm graph to find by semver range
2024-01-15 00:20:56 +05:30

35 lines
763 B
Go

package exceptions
import (
"github.com/safedep/vet/pkg/common/logger"
"github.com/safedep/vet/pkg/models"
)
// AllowedPackages iterates over packages in the manifest and call handler
// only for packages not in the exempted by exception rules
func AllowedPackages(manifest *models.PackageManifest,
handler func(pkg *models.Package) error) error {
packages := manifest.GetPackages()
for _, pkg := range packages {
res, err := Apply(pkg)
if err != nil {
logger.Errorf("Failed to evaluate exception for %s: %v",
pkg.ShortName(), err)
continue
}
if res.Matched() {
logger.Debugf("Ignoring package:%s due to exception rule",
pkg.ShortName())
continue
}
err = handler(pkg)
if err != nil {
return err
}
}
return nil
}