Files
ESLint will run on files with the following extensions:.js, .ts, .cjs, .mjs, .d.cts, .d.mts, .jsx, .tsx, .css, .vue, .svelte, .astro, .graphql, .gql, .mdx
Configuration
- ESLint configuration is read from the repository and is used as is. If no applicable ESLint configuration file is found for a changed file, CodeRabbit skips ESLint for that file.
- Please ensure that all ESLint dependencies are defined in your
package.jsonfile(s). - Yarn and PNPM workspaces are supported.
- Private ESLint plugins or configurations are not supported at the moment. Please reach out to support if you would like us to add support for this.
- For
@typescript-eslint, linting with type information is not supported at the moment. The type checking rules are disabled. - For
eslint-plugin-import, the following rules are disabled:import/no-unresolved
- For the
eslint-plugin-n, the following rules are disabled:n/no-missing-importn/no-missing-require
- For the
eslint-plugin-node, the following rules are disabled:node/no-missing-importnode/no-missing-require
Configuration file discovery
CodeRabbit searches the repository recursively for ESLint configuration files. It supports both flat-config and legacy-config filenames:- Flat config:
eslint.config.js,eslint.config.mjs,eslint.config.cjs,eslint.config.ts,eslint.config.mts, andeslint.config.cts - Legacy config:
.eslintrc,.eslintrc.js,.eslintrc.cjs,.eslintrc.json,.eslintrc.yml, and.eslintrc.yaml
foo/bar/.eslintrc.js is automatically used for files under foo/bar/ and its subdirectories, but not for files outside foo/bar/.
CodeRabbit does not use an eslintConfig field in package.json as a configuration source. Use one of the supported configuration files instead.
To enable or disable ESLint, use your .coderabbit.yaml file or the CodeRabbit web UI:
- .coderabbit.yaml
- Web UI
.coderabbit.yaml
Security policy and restrictions
ESLint runs in a sandbox. CodeRabbit scans ESLint config files before anynpm/yarn/pnpm installs and only permits a curated allow-list of plugins.
- CodeRabbit extracts referenced plugins from configs (the
pluginsarray,extends: "plugin:...",eslint-plugin-...mentions). - If any plugin outside the allow-list is referenced, CodeRabbit skips ESLint for the run.
- CodeRabbit does not install or execute arbitrary third-party plugins from the repository.
When CodeRabbit skips ESLint
CodeRabbit will skip running ESLint when:- The config references a plugin not in the allow-list.
- The config can’t be parsed or is otherwise unsafe.
- No
package.jsoncan be found for the relevant project.
What’s next
All supported tools
Browse the complete list of linters, security analyzers, and CI/CD integrations available in CodeRabbit.
Tools reference
Explore detailed specifications and capabilities of all available CodeRabbit tools.
Configuration reference
Full reference for all available options, including how to enable, disable, and tune individual tools.