Skip to content

github/eslint-plugin-github

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

Bumps the all-dependencies group with 6 updates:

| Package | Update |
| --- | --- |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | 6.1.0 to 6.2.0 |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | 6.1.0 to 6.2.0 |
| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | 8.8.0 to 8.9.0 |
| [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) | 2.27.5 to 2.28.0 |
| [jsx-ast-utils](https://github.com/jsx-eslint/jsx-ast-utils) | 3.3.4 to 3.3.5 |
| [eslint](https://github.com/eslint/eslint) | 8.45.0 to 8.46.0 |


Updates `@typescript-eslint/eslint-plugin` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.0/packages/parser)

Updates `eslint-config-prettier` from 8.8.0 to 8.9.0
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/eslint-config-prettier@v8.8.0...v8.9.0)

Updates `eslint-plugin-import` from 2.27.5 to 2.28.0
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](import-js/eslint-plugin-import@v2.27.5...v2.28.0)

Updates `jsx-ast-utils` from 3.3.4 to 3.3.5
- [Release notes](https://github.com/jsx-eslint/jsx-ast-utils/releases)
- [Changelog](https://github.com/jsx-eslint/jsx-ast-utils/blob/main/CHANGELOG.md)
- [Commits](jsx-eslint/jsx-ast-utils@v3.3.4...v3.3.5)

Updates `eslint` from 8.45.0 to 8.46.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v8.45.0...v8.46.0)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: eslint-config-prettier
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: eslint-plugin-import
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: jsx-ast-utils
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a7db0f5

Git stats

Files

Permalink
Failed to load latest commit information.

eslint-plugin-github

Installation

npm install --save-dev eslint eslint-plugin-github

Setup

Add github to your list of plugins in your ESLint config.

JSON ESLint config example:

{
  "plugins": ["github"]
}

Extend the configs you wish to use.

JSON ESLint config example:

{
  "extends": ["plugin:github/recommended"]
}

The available configs are:

  • internal
    • Rules useful for github applications.
  • browser
    • Useful rules when shipping your app to the browser.
  • react
    • Recommended rules for React applications.
  • recommended
    • Recommended rules for every application.
  • typescript
    • Useful rules when writing TypeScript.

Component mapping (Experimental)

Note: This is experimental and subject to change.

The react config includes rules which target specific HTML elements. You may provide a mapping of custom components to an HTML element in your eslintrc configuration to increase linter coverage.

By default, these eslint rules will check the "as" prop for underlying element changes. If your repo uses a different prop name for polymorphic components provide the prop name in your eslintrc configuration under polymorphicPropName.

{
  "settings": {
    "github": {
      "polymorphicPropName": "asChild",
      "components": {
        "Box": "p",
        "Link": "a"
      }
    }
  }
}

This config will be interpreted in the following way:

  • All <Box> elements will be treated as a p element type.
  • <Link> without a defined as prop will be treated as a a.
  • <Link as='button'> will be treated as a button element type.

Rules

๐Ÿ’ผ Configurations enabled in.
๐Ÿ” Set in the browser configuration.
๐Ÿ” Set in the internal configuration.
โš›๏ธ Set in the react configuration.
โœ… Set in the recommended configuration.
๐Ÿ”ง Automatically fixable by the --fix CLI option.
โŒ Deprecated.

Nameย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  Description ๐Ÿ’ผ ๐Ÿ”ง โŒ
a11y-aria-label-is-well-formatted [aria-label] text should be formatted as you would visual text. โš›๏ธ
a11y-no-generic-link-text disallow generic link text โŒ
a11y-no-title-attribute Guards against developers using the title attribute โš›๏ธ
a11y-no-visually-hidden-interactive-element Ensures that interactive elements are not visually hidden โš›๏ธ
a11y-role-supports-aria-props Enforce that elements with explicit or implicit roles defined contain only aria-* properties supported by that role. โš›๏ธ
a11y-svg-has-accessible-name SVGs must have an accessible name โš›๏ธ
array-foreach enforce for..of loops over Array.forEach โœ…
async-currenttarget disallow event.currentTarget calls inside of async functions ๐Ÿ”
async-preventdefault disallow event.preventDefault calls inside of async functions ๐Ÿ”
authenticity-token disallow usage of CSRF tokens in JavaScript ๐Ÿ”
get-attribute disallow wrong usage of attribute names ๐Ÿ” ๐Ÿ”ง
js-class-name enforce a naming convention for js- prefixed classes ๐Ÿ”
no-blur disallow usage of Element.prototype.blur() ๐Ÿ”
no-d-none disallow usage the d-none CSS class ๐Ÿ”
no-dataset enforce usage of Element.prototype.getAttribute instead of Element.prototype.datalist ๐Ÿ”
no-dynamic-script-tag disallow creating dynamic script tags โœ…
no-implicit-buggy-globals disallow implicit global variables โœ…
no-inner-html disallow Element.prototype.innerHTML in favor of Element.prototype.textContent ๐Ÿ”
no-innerText disallow Element.prototype.innerText in favor of Element.prototype.textContent ๐Ÿ” ๐Ÿ”ง
no-then enforce using async/await syntax over Promises โœ…
no-useless-passive disallow marking a event handler as passive when it has no effect ๐Ÿ” ๐Ÿ”ง
prefer-observers disallow poorly performing event listeners ๐Ÿ”
require-passive-events enforce marking high frequency event handlers as passive ๐Ÿ”
unescaped-html-literal disallow unescaped HTML literals ๐Ÿ”