Skip to content

Run rubocop with reviewdog 🐶

License

Notifications You must be signed in to change notification settings

sofatutor/action-rubocop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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_on_error

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

About

Run rubocop with reviewdog 🐶

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 52.1%
  • Ruby 47.9%