Documentation
¶
Index ¶
- func GetShortName(name string) string
- func Key(name, version string) string
- func KeyFor(p Plugin) string
- func SplitKey(key string) (string, string)
- func SupportsVersion(p Plugin, projectVersion config.Version) bool
- func Validate(p Plugin) error
- func ValidateKey(key string) error
- type Context
- type CreateAPI
- type CreateAPISubcommand
- type CreateWebhook
- type CreateWebhookSubcommand
- type Deprecated
- type Edit
- type EditSubcommand
- type Full
- type Init
- type InitSubcommand
- type Plugin
- type Subcommand
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetShortName ¶
GetShortName returns plugin's short name (name before domain) if name is fully qualified (has a domain suffix), otherwise GetShortName returns name.
func SupportsVersion ¶
SupportsVersion checks if a plugins supports a project version.
func ValidateKey ¶
ValidateKey ensures both plugin name and version are valid.
Types ¶
type Context ¶
type Context struct {
// CommandName sets the command name for a subcommand.
CommandName string
// Description is a description of what this subcommand does. It is used to display help.
Description string
// Examples are one or more examples of the command-line usage of this subcommand. It is used to display help.
Examples string
}
Context is the runtime context for a subcommand.
type CreateAPI ¶
type CreateAPI interface {
Plugin
// GetCreateAPISubcommand returns the underlying CreateAPISubcommand interface.
GetCreateAPISubcommand() CreateAPISubcommand
}
CreateAPI is an interface for plugins that provide a `create api` subcommand
type CreateAPISubcommand ¶
type CreateAPISubcommand interface {
Subcommand
}
CreateAPISubcommand is an interface that represents a `create api` subcommand
type CreateWebhook ¶
type CreateWebhook interface {
Plugin
// GetCreateWebhookSubcommand returns the underlying CreateWebhookSubcommand interface.
GetCreateWebhookSubcommand() CreateWebhookSubcommand
}
CreateWebhook is an interface for plugins that provide a `create webhook` subcommand
type CreateWebhookSubcommand ¶
type CreateWebhookSubcommand interface {
Subcommand
}
CreateWebhookSubcommand is an interface that represents a `create wekbhook` subcommand
type Deprecated ¶
type Deprecated interface {
// DeprecationWarning returns a string indicating a plugin is deprecated.
DeprecationWarning() string
}
Deprecated is an interface that defines the messages for plugins that are deprecated.
type Edit ¶
type Edit interface {
Plugin
// GetEditSubcommand returns the underlying EditSubcommand interface.
GetEditSubcommand() EditSubcommand
}
Edit is an interface for plugins that provide a `edit` subcommand
type EditSubcommand ¶
type EditSubcommand interface {
Subcommand
}
EditSubcommand is an interface that represents an `edit` subcommand
type Full ¶
type Full interface {
Init
CreateAPI
CreateWebhook
Edit
}
Full is an interface for plugins that provide `init`, `create api`, `create webhook` and `edit` subcommands
type Init ¶
type Init interface {
Plugin
// GetInitSubcommand returns the underlying InitSubcommand interface.
GetInitSubcommand() InitSubcommand
}
Init is an interface for plugins that provide an `init` subcommand
type InitSubcommand ¶
type InitSubcommand interface {
Subcommand
}
InitSubcommand is an interface that represents an `init` subcommand
type Plugin ¶
type Plugin interface {
// Name returns a DNS1123 label string identifying the plugin uniquely. This name should be fully-qualified,
// i.e. have a short prefix describing the plugin type (like a language) followed by a domain.
// For example, Kubebuilder's main plugin would return "go.kubebuilder.io".
Name() string
// Version returns the plugin's version.
//
// NOTE: this version is different from config version.
Version() Version
// SupportedProjectVersions lists all project configuration versions this plugin supports.
// The returned slice cannot be empty.
SupportedProjectVersions() []config.Version
}
Plugin is an interface that defines the common base for all plugins
type Subcommand ¶
type Subcommand interface {
// UpdateContext updates a Context with subcommand-specific help text, like description and examples. It also serves
// to pass context from the CLI to the subcommand, such as the command name.
// Can be a no-op if default help text is desired.
UpdateContext(*Context)
// BindFlags binds the subcommand's flags to the CLI. This allows each subcommand to define its own
// command line flags.
BindFlags(*pflag.FlagSet)
// Run runs the subcommand.
Run() error
// InjectConfig passes a config to a plugin. The plugin may modify the config.
// Initializing, loading, and saving the config is managed by the cli package.
InjectConfig(config.Config)
}
Subcommand is an interface that defines the common base for subcommands returned by plugins
type Version ¶
type Version struct {
// Number denotes the current version of a plugin. Two different numbers between versions
// indicate that they are incompatible.
Number int
// Stage indicates stability.
Stage stage.Stage
}
Version is a plugin version containing a positive integer and a stage value that represents stability.
func (*Version) Parse ¶
Parse parses version inline, assuming it adheres to format: (v)?[0-9]*(-(alpha|beta))?