From dc436e5395f6d947fe614cb86ef17b5a51f6ad5d Mon Sep 17 00:00:00 2001 From: Yawen Luo <69618391+ywluogg@users.noreply.github.com> Date: Tue, 18 Oct 2022 10:54:39 -0400 Subject: [PATCH] Update pkg/artifacts/signable_test.go Co-authored-by: Billy Lynch <wlynch92@gmail.com> --- go.mod | 2 +- pkg/artifacts/signable.go | 6 +++++- pkg/artifacts/signable_test.go | 9 ++++----- pkg/chains/formats/intotoite6/pipelinerun/pipelinerun.go | 2 +- pkg/chains/formats/intotoite6/taskrun/taskrun.go | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 8c60ed384c..a3b3ccf417 100644 --- a/go.mod +++ b/go.mod @@ -42,6 +42,7 @@ require ( github.com/sigstore/rekor v0.12.1-0.20220915152154-4bb6f441c1b2 github.com/sigstore/sigstore v1.4.2 github.com/spiffe/go-spiffe/v2 v2.1.1 + github.com/stretchr/testify v1.8.0 github.com/tektoncd/pipeline v0.40.1 github.com/tektoncd/plumbing v0.0.0-20220817140952-3da8ce01aeeb github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 @@ -368,7 +369,6 @@ require ( github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect github.com/stretchr/objx v0.4.0 // indirect - github.com/stretchr/testify v1.8.0 // indirect github.com/subosito/gotenv v1.4.1 // indirect github.com/sylvia7788/contextcheck v1.0.6 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect diff --git a/pkg/artifacts/signable.go b/pkg/artifacts/signable.go index e7955a465b..6d7e879316 100644 --- a/pkg/artifacts/signable.go +++ b/pkg/artifacts/signable.go @@ -263,12 +263,16 @@ func extractTargetFromResults(obj objects.TektonObject, identifierSuffix string, return ss } -// RetrieveMeterialsFromStructuredResults retrieves structured results from Tekton Object, and convert them into materials. +// RetrieveMaterialsFromStructuredResults retrieves structured results from Tekton Object, and convert them into materials. func RetrieveMaterialsFromStructuredResults(obj objects.TektonObject, categoryMarker string, logger *zap.SugaredLogger) []slsa.ProvenanceMaterial { // Retrieve structured provenance for inputs. mats := []slsa.ProvenanceMaterial{} ssts := ExtractStructuredTargetFromResults(obj, ArtifactsInputsResultName, logger) for _, s := range ssts { + if err := checkDigest(s.Digest); err != nil { + logger.Debugf("Digest for %s not in the right format: %s, %v", s.URI, s.Digest, err) + continue + } splits := strings.Split(s.Digest, ":") alg := splits[0] digest := splits[1] diff --git a/pkg/artifacts/signable_test.go b/pkg/artifacts/signable_test.go index a00a0cd5b1..fc0994a0a9 100644 --- a/pkg/artifacts/signable_test.go +++ b/pkg/artifacts/signable_test.go @@ -426,9 +426,8 @@ func TestExtractStructuredTargetFromResults(t *testing.T) { {URI: "gcr.io/foo/bar", Digest: digest3}, } gotInputs := ExtractStructuredTargetFromResults(objects.NewTaskRunObject(tr), ArtifactsInputsResultName, logtesting.TestLogger(t)) - gotInputsEqual := cmp.Equal(gotInputs, wantInputs, cmpopts.SortSlices(func(x, y *StructuredSignable) bool { return x.Digest < y.Digest })) - if !gotInputsEqual { - t.Errorf("Equal = %v\n reason: %v", gotInputsEqual, cmp.Diff(wantInputs, gotInputs, ignore...)) + if diff := cmp.Diff(gotInputs, wantInputs, cmpopts.SortSlices(func(x, y *StructuredSignable) bool { return x.Digest < y.Digest })); diff != "" { + t.Errorf("Inputs are not as expected: %v", diff) } wantOutputs := []*StructuredSignable{ @@ -442,7 +441,7 @@ func TestExtractStructuredTargetFromResults(t *testing.T) { } } -func TestRetrieveMeterialsFromStructuredResults(t *testing.T) { +func TestRetrieveMaterialsFromStructuredResults(t *testing.T) { tr := &v1beta1.TaskRun{ Status: v1beta1.TaskRunStatus{ TaskRunStatusFields: v1beta1.TaskRunStatusFields{ @@ -479,7 +478,7 @@ func TestRetrieveMeterialsFromStructuredResults(t *testing.T) { }, } - gotMaterials := RetrieveMeterialsFromStructuredResults(objects.NewTaskRunObject(tr), ArtifactsInputsResultName, logtesting.TestLogger(t)) + gotMaterials := RetrieveMaterialsFromStructuredResults(objects.NewTaskRunObject(tr), ArtifactsInputsResultName, logtesting.TestLogger(t)) if !cmp.Equal(gotMaterials, wantMaterials, ignore...) { t.Fatalf("Meterials not the same %s", cmp.Diff(gotMaterials, wantMaterials, ignore...)) diff --git a/pkg/chains/formats/intotoite6/pipelinerun/pipelinerun.go b/pkg/chains/formats/intotoite6/pipelinerun/pipelinerun.go index dc097705bd..f9f97207f9 100644 --- a/pkg/chains/formats/intotoite6/pipelinerun/pipelinerun.go +++ b/pkg/chains/formats/intotoite6/pipelinerun/pipelinerun.go @@ -184,7 +184,7 @@ func materials(pro *objects.PipelineRunObject, logger *zap.SugaredLogger) []slsa } } - sms := artifacts.RetrieveMeterialsFromStructuredResults(pro, artifacts.ArtifactsInputsResultName, logger) + sms := artifacts.RetrieveMaterialsFromStructuredResults(pro, artifacts.ArtifactsInputsResultName, logger) mats = append(mats, sms...) // search status.PipelineSpec.params diff --git a/pkg/chains/formats/intotoite6/taskrun/taskrun.go b/pkg/chains/formats/intotoite6/taskrun/taskrun.go index c9360a3c7b..1a52749c95 100644 --- a/pkg/chains/formats/intotoite6/taskrun/taskrun.go +++ b/pkg/chains/formats/intotoite6/taskrun/taskrun.go @@ -93,7 +93,7 @@ func materials(tro *objects.TaskRunObject, logger *zap.SugaredLogger) []slsa.Pro return mats } - sms := artifacts.RetrieveMeterialsFromStructuredResults(tro, artifacts.ArtifactsInputsResultName, logger) + sms := artifacts.RetrieveMaterialsFromStructuredResults(tro, artifacts.ArtifactsInputsResultName, logger) mats = append(mats, sms...) if tro.Spec.Resources == nil {