Skip to content

Commit

Permalink
bug: remove chance for panic; provide default attestation path (#1214)
Browse files Browse the repository at this point in the history
  • Loading branch information
spiffcs authored Sep 19, 2022
1 parent ad263e6 commit 0f99215
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
17 changes: 16 additions & 1 deletion cmd/syft/cli/attest/attest.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,14 @@ func Run(ctx context.Context, app *config.Application, ko sigopts.KeyOpts, args
return err
}

format := syft.FormatByName(app.Outputs[0])
output := parseAttestationOutput(app.Outputs)

format := syft.FormatByName(output)

// user typo or unknown outputs provided
if format == nil {
format = syft.FormatByID(syftjson.ID) // default attestation format
}
predicateType := formatPredicateType(format)
if predicateType == "" {
return fmt.Errorf(
Expand Down Expand Up @@ -109,6 +116,14 @@ func Run(ctx context.Context, app *config.Application, ko sigopts.KeyOpts, args
)
}

func parseAttestationOutput(outputs []string) (format string) {
if len(outputs) == 0 {
outputs = append(outputs, string(syftjson.ID))
}

return outputs[0]
}

func parseImageSource(userInput string, app *config.Application) (s *source.Input, err error) {
si, err := source.ParseInput(userInput, app.Platform, false)
if err != nil {
Expand Down
8 changes: 8 additions & 0 deletions test/cli/attest_cmd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ func TestAttestCmd(t *testing.T) {
},
pw: "",
},
{
name: "can encode syft.json as the predicate given a user format typo",
args: []string{"attest", "-o", "spdx-jsonx", "--key", "cosign.key", img},
assertions: []traitAssertion{
assertSuccessfulReturnCode,
},
pw: "",
},
}

for _, test := range tests {
Expand Down

0 comments on commit 0f99215

Please sign in to comment.