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
}