mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
add PURLs when scanning Gradle lock files (#2278)
This adds PURLs when scanning Gradle lock files. Unintuitively the correct PURL type appears to be `maven` as opposed to `gradle`. See https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst - `gradle` for Gradle plugins - `maven` for Maven JARs and related artifacts Signed-off-by: Robbie Vanbrabant <robbie@monzo.com>
This commit is contained in:
parent
a6d73e5659
commit
dc9bc58480
@ -46,8 +46,18 @@ func parseGradleLockfile(_ file.Resolver, _ *generic.Environment, reader file.Lo
|
|||||||
dependencies = append(dependencies, dep)
|
dependencies = append(dependencies, dep)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// map the dependencies
|
// map the dependencies
|
||||||
for _, dep := range dependencies {
|
for _, dep := range dependencies {
|
||||||
|
archive := pkg.JavaArchive{
|
||||||
|
PomProject: &pkg.JavaPomProject{
|
||||||
|
GroupID: dep.Group,
|
||||||
|
ArtifactID: dep.Name,
|
||||||
|
Version: dep.Version,
|
||||||
|
Name: dep.Name,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
mappedPkg := pkg.Package{
|
mappedPkg := pkg.Package{
|
||||||
Name: dep.Name,
|
Name: dep.Name,
|
||||||
Version: dep.Version,
|
Version: dep.Version,
|
||||||
@ -56,14 +66,8 @@ func parseGradleLockfile(_ file.Resolver, _ *generic.Environment, reader file.Lo
|
|||||||
),
|
),
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
Metadata: pkg.JavaArchive{
|
PURL: packageURL(dep.Name, dep.Version, archive),
|
||||||
PomProject: &pkg.JavaPomProject{
|
Metadata: archive,
|
||||||
GroupID: dep.Group,
|
|
||||||
ArtifactID: dep.Name,
|
|
||||||
Version: dep.Version,
|
|
||||||
Name: dep.Name,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
mappedPkg.SetID()
|
mappedPkg.SetID()
|
||||||
pkgs = append(pkgs, mappedPkg)
|
pkgs = append(pkgs, mappedPkg)
|
||||||
|
|||||||
@ -21,6 +21,7 @@ func Test_parserGradleLockfile(t *testing.T) {
|
|||||||
Version: "1.8",
|
Version: "1.8",
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
|
PURL: "pkg:maven/org.apache.commons/commons-text@1.8",
|
||||||
Metadata: pkg.JavaArchive{
|
Metadata: pkg.JavaArchive{
|
||||||
PomProject: &pkg.JavaPomProject{GroupID: "org.apache.commons", ArtifactID: "commons-text", Version: "1.8", Name: "commons-text"},
|
PomProject: &pkg.JavaPomProject{GroupID: "org.apache.commons", ArtifactID: "commons-text", Version: "1.8", Name: "commons-text"},
|
||||||
},
|
},
|
||||||
@ -30,6 +31,7 @@ func Test_parserGradleLockfile(t *testing.T) {
|
|||||||
Version: "1.3",
|
Version: "1.3",
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
|
PURL: "pkg:maven/org.hamcrest/hamcrest-core@1.3",
|
||||||
Metadata: pkg.JavaArchive{
|
Metadata: pkg.JavaArchive{
|
||||||
PomProject: &pkg.JavaPomProject{GroupID: "org.hamcrest", ArtifactID: "hamcrest-core", Version: "1.3", Name: "hamcrest-core"},
|
PomProject: &pkg.JavaPomProject{GroupID: "org.hamcrest", ArtifactID: "hamcrest-core", Version: "1.3", Name: "hamcrest-core"},
|
||||||
},
|
},
|
||||||
@ -39,6 +41,7 @@ func Test_parserGradleLockfile(t *testing.T) {
|
|||||||
Version: "2.2",
|
Version: "2.2",
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
|
PURL: "pkg:maven/joda-time/joda-time@2.2",
|
||||||
Metadata: pkg.JavaArchive{
|
Metadata: pkg.JavaArchive{
|
||||||
PomProject: &pkg.JavaPomProject{GroupID: "joda-time", ArtifactID: "joda-time", Version: "2.2", Name: "joda-time"},
|
PomProject: &pkg.JavaPomProject{GroupID: "joda-time", ArtifactID: "joda-time", Version: "2.2", Name: "joda-time"},
|
||||||
},
|
},
|
||||||
@ -48,6 +51,7 @@ func Test_parserGradleLockfile(t *testing.T) {
|
|||||||
Version: "4.12",
|
Version: "4.12",
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
|
PURL: "pkg:maven/junit/junit@4.12",
|
||||||
Metadata: pkg.JavaArchive{
|
Metadata: pkg.JavaArchive{
|
||||||
PomProject: &pkg.JavaPomProject{GroupID: "junit", ArtifactID: "junit", Version: "4.12", Name: "junit"},
|
PomProject: &pkg.JavaPomProject{GroupID: "junit", ArtifactID: "junit", Version: "4.12", Name: "junit"},
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user