Skip to content
check-circle

GitHub Action

Run rubocop with reviewdog

v2.21.0 Latest version

Run rubocop with reviewdog

check-circle

Run rubocop with reviewdog

🐶 Run rubocop with reviewdog on pull requests to improve code review experience

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Run rubocop with reviewdog

uses: reviewdog/action-rubocop@v2.21.0

Learn more about this action in reviewdog/action-rubocop

Choose a version

GitHub Action: Run rubocop with reviewdog 🐶

depup release GitHub release (latest SemVer) action-bumpr supported

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

Examples

With github-pr-check

By default, with reporter: github-pr-check an annotation is added to the line:

Example comment made by the action, with github-pr-check

With github-pr-review

With reporter: github-pr-review a comment is added to the Pull Request Conversation:

Example comment made by the action, with github-pr-review

Inputs

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.

filter_mode

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

github_token

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

level

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

only_changed

Optional. Run Rubocop 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

reporter

Optional. Reporter of reviewdog command [github-pr-check, github-check, github-pr-review]. The default is github-pr-check.

reviewdog_flags

Optional. Additional reviewdog flags.

rubocop_extensions

Optional. Set list of rubocop extensions with versions.

By default install rubocop-rails, rubocop-performance, rubocop-rspec, rubocop-i18n, rubocop-rake with latest versions. Provide desired version delimited by : (e.g. rubocop-rails:1.7.1)

Possible version values:

  • empty or omit (rubocop-rails rubocop-rspec): install latest version
  • rubocop-rails:gemfile rubocop-rspec:gemfile: install version from Gemfile (Gemfile.lock should be presented, otherwise it will fallback to latest bundler version)
  • version (e.g. rubocop-rails:1.7.1 rubocop-rspec:2.0.0): install said version

You can combine gemfile, fixed and latest bundle version as you want to.

rubocop_flags

Optional. Rubocop flags. (rubocop <rubocop_flags>).

rubocop_version

Optional. Set rubocop version. Possible values:

  • empty or omit: install latest version
  • gemfile: install version from Gemfile (Gemfile.lock should be presented, otherwise it will fallback to latest bundler version)
  • version (e.g. 0.90.0): install said version

skip_install

Optional. Do not install Rubocop or its extensions. Default: false.

tool_name

Optional. Tool name to use for reviewdog reporter. Useful when running multiple actions with different config.

use_bundler

Optional. Run Rubocop with bundle exec. Default: false.

workdir

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

Example usage

This action will use your RuboCop Configuration automatically.

In your Gemfile, ensure all Rubocop gems are in a named (e.g. rubocop) group:

group :development, :rubocop do
  gem 'rubocop', require: false
  gem 'rubocop-rails', require: false
  # ...
end

Create the following workflow. The BUNDLE_ONLY environment variable will tell Bundler to only install the specified group.

name: reviewdog
on:
  pull_request:
permissions:
  contents: read
  pull-requests: write
jobs:
  rubocop:
    name: runner / rubocop
    runs-on: ubuntu-latest
    env:
      BUNDLE_ONLY: rubocop
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          bundler-cache: true
      - uses: reviewdog/action-rubocop@v2
        with:
          reporter: github-pr-review # Default is github-pr-check
          skip_install: true
          use_bundler: true

Sponsor

Sponsored by Evrone

License

MIT