Action Rubocop Save

Run rubocop with reviewdog 🐶

Project README

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

github_token

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

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

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

tool_name

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

level

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

reporter

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

filter_mode

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

fail_on_error

Optional. Exit code for reviewdog when errors are found [true, false]. Default is false.

reviewdog_flags

Optional. Additional reviewdog flags.

workdir

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

skip_install

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

use_bundler

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

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

Sponsored by Evrone

License

MIT

Open Source Agenda is not affiliated with "Action Rubocop" Project. README Source: reviewdog/action-rubocop
Stars
111
Open Issues
3
Last Commit
1 month ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating