diff --git a/pkg/advisory/testdata/validate/fixed-version/mo.advisories.yaml b/pkg/advisory/testdata/validate/fixed-version/mo.advisories.yaml new file mode 100644 index 00000000..5ed23670 --- /dev/null +++ b/pkg/advisory/testdata/validate/fixed-version/mo.advisories.yaml @@ -0,0 +1,12 @@ +schema-version: 2.0.1 + +package: + name: mo + +advisories: + - id: GHSA-2222-2222-2222 + events: + - timestamp: 1970-01-01T00:00:00Z + type: fixed + data: + fixed-version: 1.0.0-r10 diff --git a/pkg/advisory/validate.go b/pkg/advisory/validate.go index a529c669..41bffc79 100644 --- a/pkg/advisory/validate.go +++ b/pkg/advisory/validate.go @@ -9,6 +9,8 @@ import ( "strings" "time" + goapkversion "github.com/knqyf263/go-apk-version" + "chainguard.dev/melange/pkg/config" "github.com/chainguard-dev/clog" "github.com/chainguard-dev/go-apk/pkg/apk" @@ -16,7 +18,6 @@ import ( "github.com/wolfi-dev/wolfictl/pkg/configs" v2 "github.com/wolfi-dev/wolfictl/pkg/configs/advisory/v2" "github.com/wolfi-dev/wolfictl/pkg/internal/errorhelpers" - "github.com/wolfi-dev/wolfictl/pkg/versions" ) type ValidateOptions struct { @@ -310,11 +311,11 @@ func (opts ValidateOptions) validateFixedVersionIsNotFirstVersionInAPKINDEX(ctx } sort.Slice(packageVersions, func(i, j int) bool { - iVer, err := versions.NewVersion(packageVersions[i].Version) + iVer, err := goapkversion.NewVersion(packageVersions[i].Version) if err != nil { return true } - jVer, err := versions.NewVersion(packageVersions[j].Version) + jVer, err := goapkversion.NewVersion(packageVersions[j].Version) if err != nil { return false } diff --git a/pkg/advisory/validate_test.go b/pkg/advisory/validate_test.go index 32771c09..eff3b860 100644 --- a/pkg/advisory/validate_test.go +++ b/pkg/advisory/validate_test.go @@ -308,6 +308,46 @@ func TestValidate(t *testing.T) { Name: "ko", Version: "1.0.0-r2", }, + { + Name: "mo", + Version: "1.0.0-r8", + }, + { + Name: "mo", + Version: "1.0.0-r9", + }, + { + Name: "mo", + Version: "1.0.0-r10", + }, + }, + }, + shouldBeValid: true, + }, + { + name: "fixed-version-present-and-not-first-missing-rs", + apkindex: &apk.APKIndex{ + Packages: []*apk.Package{ + { + Name: "ko", + Version: "1.0.0-r1", + }, + { + Name: "ko", + Version: "1.0.0-r2", + }, + { + Name: "mo", + Version: "1.0.0-r8", + }, + { + Name: "mo", + Version: "1.0.0-r9", + }, + { + Name: "mo", + Version: "1.0.0-r10", + }, }, }, shouldBeValid: true,