Namespace Kuestenlogik.Bowire.Linting
Classes
- BowireLintConfig
Per-workspace lint configuration (#189), the shape of
.bowire/rules.json: which rules run and at what severity. A rule is on unless a setting turns itenabled: false; a setting may also override the rule's severity. Rules with no entry keep their built-in defaults, so an empty (or absent) config means "run everything as shipped".
- BowireLintConfigLoader
Auto-discovery + loading for the
.bowire/rules.jsonlint config (#189), mirroring BowireProjectLoader: DiscoverPath(string?) walks UP the directory tree from a start directory looking for.bowire/rules.json, sobowire lintrun anywhere in a checkout picks up the workspace's rules without a flag. "Not found" is null, never an exception. Load(string) reads a specific file and hands it to Parse(string).
- BowireLintFinding
One design-time issue found in a discovered API surface. Produced by an IBowireLintRule and carried by BowireSchemaLinter.
Method/Fieldare null when the finding is about the service as a whole.
- BowireLintRuleSetting
One rule's entry in BowireLintConfig.
- BowireSchemaLinter
Runs a set of IBowireLintRule over a discovered API surface and collects their BowireLintFinding. The typed rule engine behind design-time API validation (#189): the same discovery snapshot the workbench,
bowire diff, and the PR bot use is checked here for design smells before a single request is sent.
Interfaces
- IBowireLintRule
A single design-time rule over a discovered service. Rules are the extension seam of the linter: a new check is a new IBowireLintRule registered with BowireSchemaLinter. A rule inspects one service in isolation and yields zero or more BowireLintFinding.
Enums
- BowireLintSeverity
How serious a schema-lint finding is. Ordered so a caller can gate on a minimum (e.g. fail the check on Medium and above).