This action runs rubocop with reviewdog on pull requests to improve code review experience.
By default, with reporter: github-pr-check
an annotation is added to the line:
With reporter: github-pr-review
a comment is added to the Pull Request Conversation:
Optional. Exit code for reviewdog when errors are found [true
, false
].
Default is false
.
Optional. Filtering mode for the reviewdog command [added
, diff_context
, file
, nofilter
].
Default is added
.
GITHUB_TOKEN
. Default is ${{ github.token }}
.
Optional. Report level for reviewdog [info
, warning
, error
].
It's same as -level
flag of reviewdog.
Optional. Run Rubocop only on changed (and added) files, for speedup [true
, false
].
Default: false
.
Optional. Reporter of reviewdog command [github-pr-check
, github-check
, github-pr-review
].
The default is github-pr-check
.
Optional. Additional reviewdog flags.
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.
Optional. Rubocop flags. (rubocop <rubocop_flags>
).
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
Optional. Do not install Rubocop or its extensions. Default: false
.
Optional. Tool name to use for reviewdog reporter. Useful when running multiple actions with different config.
Optional. Run Rubocop with bundle exec. Default: false
.
Optional. The directory from which to look for and run Rubocop. Default .
.
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