mirror of
https://github.com/anchore/syft.git
synced 2026-11-01 15:06:36 +01:00
Added the SWI Prolog (swipl) ecosystem (#3076)
* Add binary classifier for swipl Signed-off-by: Laurent Goderre <laurent.goderre@docker.com> * Added cataloger for SWI Prolog Pack packages Signed-off-by: Laurent Goderre <laurent.goderre@docker.com> --------- Signed-off-by: Laurent Goderre <laurent.goderre@docker.com>
This commit is contained in:
@@ -103,6 +103,8 @@ func Originator(p pkg.Package) (typ string, author string) { // nolint: funlen
|
||||
// it seems that the vast majority of the time the author is an org, not a person
|
||||
typ = orgType
|
||||
author = metadata.Author
|
||||
case pkg.SwiplPackEntry:
|
||||
author = formatPersonOrOrg(metadata.Author, metadata.AuthorEmail)
|
||||
}
|
||||
|
||||
if typ == "" && author != "" {
|
||||
@@ -144,6 +146,10 @@ func Supplier(p pkg.Package) (typ string, author string) {
|
||||
author = metadata.Packager
|
||||
}
|
||||
|
||||
if metadata, ok := p.Metadata.(pkg.SwiplPackEntry); ok {
|
||||
author = formatPersonOrOrg(metadata.Packager, metadata.PackagerEmail)
|
||||
}
|
||||
|
||||
if author == "" {
|
||||
// TODO: this uses the Originator function for now until a better distinction can be made for supplier
|
||||
return Originator(p)
|
||||
|
||||
@@ -40,6 +40,7 @@ func Test_OriginatorSupplier(t *testing.T) {
|
||||
pkg.RustBinaryAuditEntry{},
|
||||
pkg.RustCargoLockEntry{},
|
||||
pkg.SwiftPackageManagerResolvedEntry{},
|
||||
pkg.SwiplPackEntry{},
|
||||
pkg.YarnLockEntry{},
|
||||
)
|
||||
tests := []struct {
|
||||
@@ -336,6 +337,19 @@ func Test_OriginatorSupplier(t *testing.T) {
|
||||
originator: "Organization: auth",
|
||||
supplier: "Organization: auth",
|
||||
},
|
||||
{
|
||||
name: "from swipl pack",
|
||||
input: pkg.Package{
|
||||
Metadata: pkg.SwiplPackEntry{
|
||||
Author: "auth",
|
||||
AuthorEmail: "auth@auth.gov",
|
||||
Packager: "me",
|
||||
PackagerEmail: "me@auth.com",
|
||||
},
|
||||
},
|
||||
originator: "Person: auth (auth@auth.gov)",
|
||||
supplier: "Person: me (me@auth.com)",
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
|
||||
@@ -62,6 +62,8 @@ func SourceInfo(p pkg.Package) string {
|
||||
answer = "acquired package info from Rockspec package file"
|
||||
case pkg.SwiftPkg:
|
||||
answer = "acquired package info from resolved Swift package manifest"
|
||||
case pkg.SwiplPackPkg:
|
||||
answer = "acquired package info from SWI Prolo pack package file"
|
||||
case pkg.GithubActionPkg, pkg.GithubActionWorkflowPkg:
|
||||
answer = "acquired package info from GitHub Actions workflow file or composite action file"
|
||||
case pkg.WordpressPluginPkg:
|
||||
|
||||
@@ -263,6 +263,14 @@ func Test_SourceInfo(t *testing.T) {
|
||||
"from resolved Swift package manifest",
|
||||
},
|
||||
},
|
||||
{
|
||||
input: pkg.Package{
|
||||
Type: pkg.SwiplPackPkg,
|
||||
},
|
||||
expected: []string{
|
||||
"acquired package info from SWI Prolo pack package file",
|
||||
},
|
||||
},
|
||||
{
|
||||
input: pkg.Package{
|
||||
Type: pkg.GithubActionPkg,
|
||||
|
||||
Reference in New Issue
Block a user