Skip to content

fix(config): validate custom rules, accept language names, add a dry run - #691

Merged
ajianaz merged 1 commit into
developfrom
fix/684-validate-custom-rules
Oct 16, 2026
Merged

ajianaz merged 1 commit into
developfrom
fix/684-validate-custom-rules

Conversation

@ajianaz

@ajianaz ajianaz commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator

What

  • Config::validate (so config load and cora config validate) now rejects an invalid regex, an empty or duplicate id, an id shadowing a built-in rule, an empty message, an empty languages list and unknown languages values, naming the rule.
  • languages accepts language names (rust) as well as extensions (rs); languages and exclude are optional.
  • cora config validate --dry-run [--path DIR] runs each custom rule over the project and prints how many lines it matched (0 matches is flagged).
  • docs/configuration.md shows the real schema (rules_engine.custom, the free-text rules: list, required fields); the 0.19.0 changelog line says custom.

Why

A mistyped pattern or language made a rule silently inactive while config validate said valid. Closes #684, closes #678.

Testing

  • Unit tests for validation, language normalisation and optional YAML fields.
  • 4 end-to-end tests in tests/custom_rules.rs (invalid regex fails validation, docs example loads and fires, unknown language, dry run flags a silent rule).
  • fmt, clippy -D warnings and the full suite pass.

…run (#684, #678)

Signed-off-by: ajianaz <ajianaz@users.noreply.github.com>
@ajianaz
ajianaz merged commit 534ac02 into develop Oct 16, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant