How GitHub uses linters
summary
Company-scale linters keep a 1.7+ million‑line Ruby monorepo coherent across 1000+ engineers: examples include about 100 sentinel nudges (regex pull‑request comments), hundreds of tests‑as‑linters (grep-based checks), and ~125 AST‑powered robocops (erb_lint + rubocop hooks) that run in the editor and support auto-correction in editor. Specific stories cover merge friction from global counters, an allowlist per-file improvement, and concrete instances where autocorrect and precise AST ranges actually fix code rather than just flag it.
AI-written summary · about
chapters (16)
- 0:00Start
- 0:27Custom Linters
- 2:06Disclaimer
- 3:11What a Linter Is
- 3:35Why Do We Use Linters at Github
- 4:50Sentinel
- 5:15Prevent Leaking Information and Templates
- 6:37Trigger Pull Request Reviews
- 8:10Mini Tests
- 13:28Abstract Syntax Trees
- 15:51Run Method
- 17:10Custom Robocops
- 22:57Auto Correction
- 23:47Replace Method
- 26:00Conclusion
- 30:26Do I Have a Favorite Linter
related talks
24mKeeping Code Style Sanity in a 13-year-old Codebase
23mKeeping Code Style Sanity in a 13-year-old Codebase
31mCode Style and Violence
41mWriting Lint for Ruby
29mThe Joy of Linters: Good Engineering Practices & Productivity Boosters
19mMake Linting Great Again
27mPython Linters at Scale
07mMake Linting Great Again
