Home

Awesome

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.

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 ''.

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.

.github/workflows/reviewdog.yml

name: reviewdog
on: [pull_request]
jobs:
  eslint:
    name: runner / eslint
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: reviewdog/action-eslint@v1
        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@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
      - run: yarn install
      - uses: reviewdog/action-eslint@v1
        with:
          reporter: github-check
          eslint_flags: "src/"