This action runs eslint with reviewdog on pull requests to improve code review experience.
Required. Default is ${{ github.token }}.
Optional. Report level for reviewdog [info,warning,error].
It's same as -level flag of reviewdog.
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.
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 }}.
Optional. Filtering mode for the reviewdog command [added,diff_context,file,nofilter].
Default is added.
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.
Deprecated, use fail_level instead.
Optional. Exit code for reviewdog when errors are found [true,false]
Default is false.
Optional. Additional reviewdog flags
Optional. Flags and args of eslint command. Default: '.'
Optional. The directory from which to look for and run eslint. Default '.'
Optional. The NODE_OPTIONS environment variable to use with eslint. Default is ''.
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.
You also need to install eslint.
# Example
$ npm install eslint -DYou 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/"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/"