func Import()

in pkg/attestation/import.go [37:70]


func Import(ctx context.Context, options types.Options) error {
	opt, ok := options.(*types.AttestationOptions)
	if !ok || opt == nil {
		return errors.New("valid options required")
	}
	if err := options.Validate(); err != nil {
		return errors.Wrap(err, "error validating options")
	}

	resourceURL, err := container.GetFullURL(opt.Source)
	if err != nil {
		return errors.Wrap(err, "error getting full url")
	}
	log.Info().Msgf("Resource URL: %s", resourceURL)

	nr := utils.NoteResource{
		Project: fmt.Sprintf("projects/%s", opt.Project),
		NoteID:  fmt.Sprintf("aactl-intoto_%x", sha256.Sum256([]byte(resourceURL))),
	}

	envs, err := provenance.GetVerifiedEnvelopes(ctx, resourceURL)
	if err != nil {
		return errors.Wrap(err, "error unpacking message")
	}

	//_ = deleteNoteOccurrences(ctx, nr, resourceURL)

	err = importEnvelopes(ctx, envs, nr, resourceURL)
	if err != nil {
		return errors.Wrap(err, "error importing envelopes")
	}

	return nil
}