package client import ( "context" "io" "net/http" "github.com/moby/moby/api/types/registry" ) // PluginPushOptions holds parameters to push a plugin. type PluginPushOptions struct { RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry } // PluginPushResult is the result of a plugin push operation type PluginPushResult struct { io.ReadCloser } // PluginPush pushes a plugin to a registry func (cli *Client) PluginPush(ctx context.Context, name string, options PluginPushOptions) (PluginPushResult, error) { name, err := trimID("plugin", name) if err != nil { return PluginPushResult{}, err } resp, err := cli.post(ctx, "/plugins/"+name+"/push", nil, nil, http.Header{ registry.AuthHeader: {options.RegistryAuth}, }) if err != nil { return PluginPushResult{}, err } return PluginPushResult{resp.Body}, nil }