Skip to content

reviewdog/action-eslint

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Action: Run eslint with reviewdog

depup release GitHub release (latest SemVer) action-bumpr supported Used-by counter

This action runs eslint with reviewdog on pull requests to improve code review experience.

github-pr-check sample eslint reviewdog rdjson demo

Inputs

github_token

Required. Default is ${{ github.token }}.

level

Optional. Report level for reviewdog [info,warning,error]. It's same as -level flag of reviewdog.

reporter

Reporter of reviewdog command [github-pr-check,github-check,github-pr-review]. Default is github-pr-review. It's same as -reporter flag of reviewdog.

github-pr-review can use Markdown and add a link to rule page in reviewdog reports.

tool_name

Optional. Tool name to use for reviewdog reporter. Default is eslint. This becomes the check/run name on GitHub (e.g., for github-check/github-pr-check) and the tool label in review comments. Useful when running in a matrix to distinguish checks, e.g. eslint-${{ matrix.node_version }}.

filter_mode

Optional. Filtering mode for the reviewdog command [added,diff_context,file,nofilter]. Default is added.

fail_level

Optional. If set to none, always use exit code 0 for reviewdog. Otherwise, exit code 1 for reviewdog if it finds at least 1 issue with severity greater than or equal to the given level. Possible values: [none, any, info, warning, error] Default is none.

fail_on_error

Deprecated, use fail_level instead. Optional. Exit code for reviewdog when errors are found [true,false] Default is false.

reviewdog_flags

Optional. Additional reviewdog flags

eslint_flags

Optional. Flags and args of eslint command. Default: '.'

workdir

Optional. The directory from which to look for and run eslint. Default '.'

node_options

Optional. The NODE_OPTIONS environment variable to use with eslint. Default is ''.

only_changed

Optional. Run eslint only on changed (and added) files, for speedup [true, false]. Default: false.

Will fetch the tip of the base branch with depth 1 from remote origin if it is not available. If you use different remote name or customize the checkout otherwise, make the tip of the base branch available before this action.

Example usage

You also need to install eslint.

# Example
$ npm install eslint -D

You can create eslint config and this action uses that config too.

name: reviewdog
on: [pull_request]
jobs:
  eslint:
    name: runner / eslint
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: reviewdog/action-eslint@2fee6dd72a5419ff4113f694e2068d2a03bb35dd # v1.33.2
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          reporter: github-pr-review # Change reporter.
          eslint_flags: "src/"

You can also set up node and eslint manually like below.

name: reviewdog
on: [pull_request]
jobs:
  eslint:
    name: runner / eslint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
        with:
          node-version: "20"
      - run: yarn install
      - uses: reviewdog/action-eslint@2fee6dd72a5419ff4113f694e2068d2a03bb35dd # v1.33.2
        with:
          reporter: github-check
          eslint_flags: "src/"

Matrix example with unique tool name

name: reviewdog
on: [pull_request]
jobs:
  eslint:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node: [18, 20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - uses: reviewdog/action-eslint@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          reporter: github-check
          tool_name: eslint-node-${{ matrix.node }}
          eslint_flags: "src/"

Sponsor this project

  •  

Packages

 
 
 

Contributors