mirror of
https://github.com/anchore/syft.git
synced 2026-11-01 06:56:40 +01:00
Add annotations for evidence on package locations (#1723)
* add location annotations + deb evidence annotations Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * rename LocationData struct and Annotation helper function Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add failing integration test for evidence coverage Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add evidence to aplm cataloger locations Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * change location annotation helper to return a location copy Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add evidence to binary cataloger locations Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * updated remaining catalogers with location annotations Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix unit tests Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix linting Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * bump json schema Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * partial addressing of review comments Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * rename location.WithAnnotation Signed-off-by: Alex Goodman <alex.goodman@anchore.com> --------- Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
This commit is contained in:
@@ -43,11 +43,16 @@ func parseMixLock(_ source.FileResolver, _ *generic.Environment, reader source.L
|
||||
continue
|
||||
}
|
||||
|
||||
packages = append(packages, newPackage(pkg.MixLockMetadata{
|
||||
Name: name,
|
||||
Version: version,
|
||||
PkgHash: hash,
|
||||
PkgHashExt: hashExt,
|
||||
}))
|
||||
packages = append(packages,
|
||||
newPackage(
|
||||
pkg.MixLockMetadata{
|
||||
Name: name,
|
||||
Version: version,
|
||||
PkgHash: hash,
|
||||
PkgHashExt: hashExt,
|
||||
},
|
||||
reader.Location.WithAnnotation(pkg.EvidenceAnnotationKey, pkg.PrimaryEvidenceAnnotation),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,15 +6,18 @@ import (
|
||||
"github.com/anchore/syft/syft/artifact"
|
||||
"github.com/anchore/syft/syft/pkg"
|
||||
"github.com/anchore/syft/syft/pkg/cataloger/internal/pkgtest"
|
||||
"github.com/anchore/syft/syft/source"
|
||||
)
|
||||
|
||||
func TestParseMixLock(t *testing.T) {
|
||||
locations := source.NewLocationSet(source.NewLocation("test-fixtures/mix.lock"))
|
||||
expected := []pkg.Package{
|
||||
{
|
||||
Name: "castore",
|
||||
Version: "0.1.17",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/castore@0.1.17",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -29,6 +32,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "1.1.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/connection@1.1.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -43,6 +47,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "2.9.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/cowboy@2.9.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -57,6 +62,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "0.4.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/cowboy_telemetry@0.4.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -71,6 +77,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "2.11.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/cowlib@2.11.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -85,6 +92,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "2.4.2",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/db_connection@2.4.2",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -99,6 +107,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "2.0.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/decimal@2.0.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -113,6 +122,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "1.4.25",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/earmark_parser@1.4.25",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -127,6 +137,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "3.8.1",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/ecto@3.8.1",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -141,6 +152,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "3.8.1",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/ecto_sql@3.8.1",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -155,6 +167,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "0.5.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/esbuild@0.5.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -169,6 +182,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "0.28.4",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/ex_doc@0.28.4",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -183,6 +197,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "0.19.1",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/gettext@0.19.1",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -197,6 +212,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "0.1.1",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/hpax@0.1.1",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
@@ -211,6 +227,7 @@ func TestParseMixLock(t *testing.T) {
|
||||
Version: "1.3.0",
|
||||
Language: pkg.Elixir,
|
||||
Type: pkg.HexPkg,
|
||||
Locations: locations,
|
||||
PURL: "pkg:hex/jason@1.3.0",
|
||||
MetadataType: pkg.MixLockMetadataType,
|
||||
Metadata: pkg.MixLockMetadata{
|
||||
|
||||
Reference in New Issue
Block a user