MCPcopy
hub / github.com/superplanehq/superplane / Run

Function Run

pkg/lint/examplepayloads/checker.go:122–180  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

120}
121
122func Run() ([]Issue, error) {
123 examples, err := loadExamples()
124 if err != nil {
125 return nil, err
126 }
127
128 pkgs, err := loadTargetPackages(
129 "./pkg/components/...",
130 "./pkg/triggers/...",
131 "./pkg/integrations/...",
132 )
133 if err != nil {
134 return nil, fmt.Errorf("load packages: %w", err)
135 }
136
137 var issues []Issue
138 for _, pkg := range pkgs {
139 analyzer := newPackageAnalyzer(pkg)
140 typeIssues, specs := analyzer.collectEmitSpecs()
141 issues = append(issues, typeIssues...)
142
143 for _, meta := range analyzer.typeMetas {
144 key := exampleKey(meta.Kind, meta.Name)
145 example, ok := examples[key]
146 if !ok {
147 issues = append(issues, Issue{
148 Name: meta.Name,
149 Kind: meta.Kind,
150 Message: "missing example payload",
151 })
152 continue
153 }
154
155 // Core triggers use their own payload shape and don't
156 // follow the standard {data, type, timestamp} envelope.
157 if meta.Kind == nodeKindTrigger && coreTriggerNames[meta.Name] {
158 continue
159 }
160
161 issues = append(issues, validateExampleEnvelope(example)...)
162 issues = append(issues, validateExampleAgainstSpecs(example, specs[key])...)
163 }
164 }
165
166 sort.Slice(issues, func(i, j int) bool {
167 if issues[i].Path != issues[j].Path {
168 return issues[i].Path < issues[j].Path
169 }
170 if issues[i].Line != issues[j].Line {
171 return issues[i].Line < issues[j].Line
172 }
173 if issues[i].Kind != issues[j].Kind {
174 return issues[i].Kind < issues[j].Kind
175 }
176 return issues[i].Name < issues[j].Name
177 })
178
179 return issues, nil

Callers 2

mainFunction · 0.92
TestRunFunction · 0.70

Calls 8

loadExamplesFunction · 0.85
loadTargetPackagesFunction · 0.85
newPackageAnalyzerFunction · 0.85
exampleKeyFunction · 0.85
validateExampleEnvelopeFunction · 0.85
ErrorfMethod · 0.80
collectEmitSpecsMethod · 0.80

Tested by 1

TestRunFunction · 0.56