From 0853a50f4d0be5898181772aace19f2dc094bc1d Mon Sep 17 00:00:00 2001 From: witchcraze <67056980+witchcraze@users.noreply.github.com> Date: Fri, 3 Feb 2023 03:59:26 +0900 Subject: [PATCH] feat: add traefik classifier (#1504) Signed-off-by: witchcraze --- syft/pkg/cataloger/binary/cataloger_test.go | 28 ++++++++++++++++++ .../cataloger/binary/default_classifiers.go | 10 +++++++ .../positive/traefik-1.7.34/traefik | Bin 0 -> 9 bytes .../positive/traefik-2.9.6/traefik | Bin 0 -> 7 bytes 4 files changed, 38 insertions(+) create mode 100644 syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-1.7.34/traefik create mode 100644 syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-2.9.6/traefik diff --git a/syft/pkg/cataloger/binary/cataloger_test.go b/syft/pkg/cataloger/binary/cataloger_test.go index c3af3bfcf67..46c4d40e385 100644 --- a/syft/pkg/cataloger/binary/cataloger_test.go +++ b/syft/pkg/cataloger/binary/cataloger_test.go @@ -19,6 +19,34 @@ func TestClassifierCataloger_DefaultClassifiers_PositiveCases(t *testing.T) { fixtureDir string expected pkg.Package }{ + { + name: "positive-traefik-2.9.6", + fixtureDir: "test-fixtures/classifiers/positive/traefik-2.9.6", + expected: pkg.Package{ + Name: "traefik", + Version: "2.9.6", + Type: "binary", + PURL: "pkg:generic/traefik@2.9.6", + Locations: singleLocation("traefik"), + Metadata: pkg.BinaryMetadata{ + Classifier: "traefik-binary", + }, + }, + }, + { + name: "positive-traefik-1.7.34", + fixtureDir: "test-fixtures/classifiers/positive/traefik-1.7.34", + expected: pkg.Package{ + Name: "traefik", + Version: "1.7.34", + Type: "binary", + PURL: "pkg:generic/traefik@1.7.34", + Locations: singleLocation("traefik"), + Metadata: pkg.BinaryMetadata{ + Classifier: "traefik-binary", + }, + }, + }, { name: "positive-memcached-1.6.18", fixtureDir: "test-fixtures/classifiers/positive/memcached-1.6.18", diff --git a/syft/pkg/cataloger/binary/default_classifiers.go b/syft/pkg/cataloger/binary/default_classifiers.go index 114d9295b40..f9d3334386a 100644 --- a/syft/pkg/cataloger/binary/default_classifiers.go +++ b/syft/pkg/cataloger/binary/default_classifiers.go @@ -165,4 +165,14 @@ var defaultClassifiers = []classifier{ Package: "memcached", PURL: mustPURL("pkg:generic/memcached@version"), }, + { + Class: "traefik-binary", + FileGlob: "**/traefik", + EvidenceMatcher: fileContentsVersionMatcher( + // [NUL]v1.7.34[NUL] + // [NUL]2.9.6[NUL] + `(?m)\x00v?(?P[0-9]+\.[0-9]+\.[0-9]+(-alpha[0-9]|-beta[0-9]|-rc[0-9])?)\x00`), + Package: "traefik", + PURL: mustPURL("pkg:generic/traefik@version"), + }, } diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-1.7.34/traefik b/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-1.7.34/traefik new file mode 100644 index 0000000000000000000000000000000000000000..12602288d828264925ff25667ed4e1df060a2436 GIT binary patch literal 9 QcmZQ5Gt@KJGd5uW00{5_q5uE@ literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-2.9.6/traefik b/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/traefik-2.9.6/traefik new file mode 100644 index 0000000000000000000000000000000000000000..f5b1dc0ccff056e281cb387af90705dc96040677 GIT binary patch literal 7 OcmZQD(zDbvV*mgH^8o$; literal 0 HcmV?d00001