Linting
GitAuto runs the project's linter with auto-fix on every generated file. For example, for JavaScript/TypeScript projects, it runs ESLint with --fix, supporting both legacy .eslintrc configs and the modern flat eslint.config.js format. Typed linting is enabled for TypeScript projects to catch unreachable code and type-level errors. Lint errors are separated from dead code detections so each is handled differently.
Lint Failures Block CI
Generated code frequently has lint issues - unused imports, missing semicolons, inconsistent naming conventions, and style violations specific to the project's linter rules. These issues are trivial to fix but cause CI failures, forcing developers to manually clean up generated code before reviewing it.
By running the linter with auto-fix and zero-warning tolerance (e.g., ESLint with --fix and --max-warnings 0), GitAuto matches exactly what CI enforces. Auto-fixable issues like import ordering, missing semicolons, and unused variables are resolved automatically, saving iteration cycles.
Why Models Produce Lint Violations
Models generate code based on training data patterns, not based on your project's specific linter config. If your config bans varor requires explicit return types, the model doesn't know that. It writes code that's syntactically valid and functionally correct, but violates project-specific rules it's never seen. Benchmarks don't run linters - they check if the code compiles and passes tests. Models are never penalized during evaluation for lint violations.
How It Works
GitAuto detects the project's linter and configuration format. For example, for ESLint it detects whether the project uses the legacy format (.eslintrc.*) or the flat config format (eslint.config.js) and adjusts its invocation accordingly. For TypeScript projects, typed linting is enabled so the linter can detect issues like unreachable code after type narrowing, unnecessary type assertions, and incorrect return types.
The linter output is parsed to separate lint errors (fixable code quality issues) from dead code detections (unreachable branches flagged by @typescript-eslint/no-unnecessary-condition). Dead code is routed to the dead code removal pipeline rather than treated as a lint failure.
Related Features
- Formatting - handles formatting rules that the linter delegates to the formatter
- Dead Code Removal - processes dead code detected by typed linting
- Import Sorting - sorts imports as a pre-step before the linter runs
Need Help?
Have questions or suggestions? We're here to help you get the most out of GitAuto.
Contact us with your questions or feedback!