in pkg/attestation/import.go [72:102]
func importEnvelopes(ctx context.Context, envs []*provenance.Envelope, nr utils.NoteResource, resourceURL string) error {
c, err := ca.NewClient(ctx)
if err != nil {
return errors.Wrap(err, "error creating client")
}
defer c.Close()
for _, env := range envs {
converter, err := convert.GetConverter(env.IntotoType, env.IntotoPredicateType)
if err != nil && !errors.Is(err, types.ErrorNotSupported) {
return errors.Wrap(err, "error getting envelope converter")
}
n, o, err := converter(nr, resourceURL, env)
if err != nil {
return errors.Wrap(err, "error importing envelopes")
}
err = postNote(ctx, c, nr, n)
if err != nil {
return errors.Wrap(err, "error posting Note")
}
err = postOccurrence(ctx, c, nr, o)
if err != nil {
return errors.Wrap(err, "error posting Occurrence")
}
}
return nil
}