Skip to content

Commit 80ea813

Browse files
committed
purl: allow RefToPURL to take a type parameter
Signed-off-by: Justin Chadwell <[email protected]>
1 parent 371b3ae commit 80ea813

File tree

4 files changed

+7
-5
lines changed

4 files changed

+7
-5
lines changed

exporter/containerimage/writer.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
digest "github.com/opencontainers/go-digest"
3535
specs "github.com/opencontainers/image-spec/specs-go"
3636
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
37+
"github.com/package-url/packageurl-go"
3738
"github.com/pkg/errors"
3839
"go.opentelemetry.io/otel/attribute"
3940
"go.opentelemetry.io/otel/trace"
@@ -235,7 +236,7 @@ func (ic *ImageWriter) Commit(ctx context.Context, inp *exporter.Source, session
235236
if name == "" {
236237
continue
237238
}
238-
pl, err := purl.RefToPURL(name, &p.Platform)
239+
pl, err := purl.RefToPURL(packageurl.TypeDocker, name, &p.Platform)
239240
if err != nil {
240241
return nil, err
241242
}

solver/llbsolver/provenance/predicate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func slsaMaterials(srcs Sources) ([]slsa.ProvenanceMaterial, error) {
6060
out := make([]slsa.ProvenanceMaterial, 0, count)
6161

6262
for _, s := range srcs.Images {
63-
uri, err := purl.RefToPURL(s.Ref, s.Platform)
63+
uri, err := purl.RefToPURL(packageurl.TypeDocker, s.Ref, s.Platform)
6464
if err != nil {
6565
return nil, err
6666
}

util/purl/image.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
// RefToPURL converts an image reference with optional platform constraint to a package URL.
1515
// Image references are defined in https://github.com/distribution/distribution/blob/v2.8.1/reference/reference.go#L1
1616
// Package URLs are defined in https://github.com/package-url/purl-spec
17-
func RefToPURL(ref string, platform *ocispecs.Platform) (string, error) {
17+
func RefToPURL(purlType string, ref string, platform *ocispecs.Platform) (string, error) {
1818
named, err := reference.ParseNormalizedNamed(ref)
1919
if err != nil {
2020
return "", errors.Wrapf(err, "failed to parse ref %q", ref)
@@ -52,7 +52,7 @@ func RefToPURL(ref string, platform *ocispecs.Platform) (string, error) {
5252
})
5353
}
5454

55-
p := packageurl.NewPackageURL("docker", ns, name, version, qualifiers, "")
55+
p := packageurl.NewPackageURL(purlType, ns, name, version, qualifiers, "")
5656
return p.ToString(), nil
5757
}
5858

util/purl/image_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/containerd/containerd/platforms"
88
digest "github.com/opencontainers/go-digest"
99
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
10+
packageurl "github.com/package-url/packageurl-go"
1011
"github.com/stretchr/testify/require"
1112
)
1213

@@ -74,7 +75,7 @@ func TestRefToPURL(t *testing.T) {
7475
for _, tc := range tcases {
7576
tc := tc
7677
t.Run(tc.ref, func(t *testing.T) {
77-
purl, err := RefToPURL(tc.ref, tc.platform)
78+
purl, err := RefToPURL(packageurl.TypeDocker, tc.ref, tc.platform)
7879
if tc.err {
7980
require.Error(t, err)
8081
return

0 commit comments

Comments
 (0)