Documentation ¶
Overview ¶
Package buflint contains the linting functionality.
The primary entry point to this package is the Handler.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAllCheckers ¶
GetAllCheckers gets all known checkers for the given categories.
If categories is empty, this returns all checkers as bufcheck.Checkers.
Should only be used for printing.
func PrintFileAnnotationsLintConfigIgnoreYAML ¶ added in v0.17.0
func PrintFileAnnotationsLintConfigIgnoreYAML(writer io.Writer, fileAnnotations []bufanalysis.FileAnnotation) error
PrintFileAnnotationsLintConfigIgnoreYAML prints the FileAnnotations to the Writer as config-ignore-yaml.
Types ¶
type Config ¶
type Config struct { // Checkers are the lint checkers to run. // // Checkers will be sorted by first categories, then id when Configs are // created from this package, i.e. created wth ConfigBuilder.NewConfig. Checkers []Checker IgnoreIDToRootPaths map[string]map[string]struct{} IgnoreRootPaths map[string]struct{} AllowCommentIgnores bool }
Config is the check config.
func NewConfig ¶ added in v0.15.0
func NewConfig(externalConfig ExternalConfig) (*Config, error)
NewConfig returns a new Config.
type ExternalConfig ¶ added in v0.17.0
type ExternalConfig struct { Use []string `json:"use,omitempty" yaml:"use,omitempty"` Except []string `json:"except,omitempty" yaml:"except,omitempty"` // IgnoreRootPaths Ignore []string `json:"ignore,omitempty" yaml:"ignore,omitempty"` // IgnoreIDOrCategoryToRootPaths IgnoreOnly map[string][]string `json:"ignore_only,omitempty" yaml:"ignore_only,omitempty"` EnumZeroValueSuffix string `json:"enum_zero_value_suffix,omitempty" yaml:"enum_zero_value_suffix,omitempty"` RPCAllowSameRequestResponse bool `json:"rpc_allow_same_request_response,omitempty" yaml:"rpc_allow_same_request_response,omitempty"` RPCAllowGoogleProtobufEmptyRequests bool `json:"rpc_allow_google_protobuf_empty_requests,omitempty" yaml:"rpc_allow_google_protobuf_empty_requests,omitempty"` RPCAllowGoogleProtobufEmptyResponses bool `json:"rpc_allow_google_protobuf_empty_responses,omitempty" yaml:"rpc_allow_google_protobuf_empty_responses,omitempty"` ServiceSuffix string `json:"service_suffix,omitempty" yaml:"service_suffix,omitempty"` AllowCommentIgnores bool `json:"allow_comment_ignores,omitempty" yaml:"allow_comment_ignores,omitempty"` }
ExternalConfig is an external config.
type Handler ¶
type Handler interface { // Check runs the lint checks. // // The image should have source code info for this to work properly. // // Images should be filtered with regards to imports before passing to this function. Check( ctx context.Context, config *Config, image bufimage.Image, ) ([]bufanalysis.FileAnnotation, error) }
Handler handles the main lint functionality.
Click to show internal directories.
Click to hide internal directories.