func invokeOperation()

in internal/plugin/plugin.go [140:173]


func invokeOperation(ctx context.Context, in *Input, debugLog *log.Logger) error {
	switch in.Operation {
	case "PushContainerImage":
		cfg, err := in.Configuration.awsConfig(ctx)
		if err != nil {
			return err
		}

		ls := lightsail.NewFromConfig(cfg, func(o *lightsail.Options) {
			if ep := strings.TrimRight(in.Configuration.Endpoint, "/"); ep != "" {
				o.BaseEndpoint = &ep
			}
		})

		internal.CheckForUpdates(ctx, debugLog, ls, internal.Version)

		r, err := parsePushContainerImagePayload(in.Payload)
		if err != nil {
			return fmt.Errorf("unable to parse the input's payload field: %w", err)
		}

		dc, err := cs.NewDockerEngine(ctx)
		if err != nil {
			return err
		}

		if err := cs.PushImage(ctx, r, ls, dc); err != nil {
			return err
		}
	default:
		return fmt.Errorf("unknown plugin operation: %q", in.Operation)
	}
	return nil
}