An opinionated collection of ESLint shared configs and rules used by GitHub. Current stable version is 6.0.0, which includes flat config support and ESM-only. The package provides configs for browser, React, TypeScript, and internal GitHub applications. Key differentiators: it enforces GitHub's own coding standards, includes accessibility rules (a11y), async/await best practices, and actionable rules like array-foreach and no-then. It supports both legacy .eslintrc and flat config via getFlatConfigs().
npm install eslint-plugin-githubVerified import paths — ran on the pinned version, not inferred.
Shows flat config usage with recommended, browser, react, typescript configs and custom rules.
Upgrade to Node 20 or later, or continue using v5.x (legacy CommonJS).
Explicitly add rules from removed plugin if needed. See changelog for details.
Update rule name from 'filenames/match-regex' to 'github/filenames-match-regex'.
Prefix custom rules with 'github/'.
Add 'settings.github.components' mapping and 'settings.github.polymorphicPropName' in your ESLint config.
Use dynamic import() or set type: module in package.json. Alternatively, downgrade to v5.x.
Change 'array-foreach' to 'github/array-foreach' in your ESLint config.
Install with npm install --save-dev eslint-plugin-github, and import it at the top of eslint.config.js.