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))?