func importEnvelopes()

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
}