Skip to main content
Glama

protolint-mcp

by yoheimuta
reporterFlag.go2.5 kB
package lint import ( "fmt" "strings" "github.com/yoheimuta/protolint/internal/linter/report" "github.com/yoheimuta/protolint/internal/linter/report/reporters" ) type reporterFlag struct { raw string reporter report.Reporter } type reporterStreamFlag struct { reporterFlag targetFile string } type reporterStreamFlags []reporterStreamFlag func (f *reporterStreamFlag) String() string { return fmt.Sprint(f.raw) } func (f *reporterStreamFlag) Set(value string) error { if f.reporter != nil { return fmt.Errorf("reporter is already set") } valueSplit := strings.SplitN(value, ":", 2) if len(valueSplit) != 2 { return fmt.Errorf("cannot find output file in %s", value) } reporterName := valueSplit[0] outputFile := valueSplit[1] r, err := GetReporter(reporterName) if err != nil { return err } f.raw = value f.reporter = r f.targetFile = outputFile return nil } func (fs *reporterStreamFlags) String() string { var items []string for _, flag := range *fs { items = append(items, flag.String()) } return strings.Join(items, " ") } func (fs *reporterStreamFlags) Set(value string) error { var r reporterStreamFlag err := r.Set(value) if err != nil { return err } *fs = append(*fs, r) return nil } func (f *reporterFlag) String() string { return fmt.Sprint(f.raw) } func (f *reporterFlag) Set(value string) error { if f.reporter != nil { return fmt.Errorf("reporter is already set") } r, err := GetReporter(value) if err != nil { return err } f.raw = value f.reporter = r return nil } // GetReporter returns a reporter from the specified key. func GetReporter(value string) (report.Reporter, error) { rs := map[string]report.Reporter{ "plain": reporters.PlainReporter{}, "junit": reporters.JUnitReporter{}, "unix": reporters.UnixReporter{}, "json": reporters.JSONReporter{}, "sarif": reporters.SarifReporter{}, "sonar": reporters.SonarReporter{}, "tsc": reporters.TscReporter{}, "mcp": reporters.MCPReporter{}, "ci": reporters.NewCiReporterWithGenericFormat(), "ci-az": reporters.NewCiReporterForAzureDevOps(), "ci-gh": reporters.NewCiReporterForGithubActions(), "ci-glab": reporters.NewCiReporterForGitlab(), "ci-env": reporters.NewCiReporterFromEnv(), } if r, ok := rs[value]; ok { return r, nil } return nil, fmt.Errorf(`available reporters are "plain", "junit", "json", "sarif", "unix", "mcp", available reporters for CI/CD are ci, ci-az, ci-gh, ci-glab"`) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yoheimuta/protolint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server