This GitHub action runs rubocop and posts offences as inline comments on pull requests. When offences are resolved, the comments are fully deleted, making for clean pull requests without noisy history.
This action was created to replace the unmaintained Hound service from Thoughtbot.
Create a .github/workflows/rubocop.yml file in your repository:
name: Rubocop
on: pull_request
permissions:
contents: read
pull-requests: write
jobs:
rubocop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
- uses: reclaim-the-stack/rubocop-action@v1The GitHub token to use for interacting with the GitHub API (eg. to managed comments). By default we use the token which is automatically provided by GitHub Actions.
By default rubocop / rubocop-rails and rubocop-rspec gems are installed. Check the action.yml file for the current default version of the gems installed by this action.
You can override the gems and versions either by:
Specifying gem_versions as Gemfile in which case we parse your Gemfile.lock and install any gems with a name beginning with rubocop with their specified version.
- uses: reclaim-the-stack/rubocop-action@v1
with:
gem_versions: GemfileSpecifying gem_versions in the standard gem install format.
- uses: reclaim-the-stack/rubocop-action@v1
with:
gem_versions: rubocop:1.18.3 rubocop-rspec:2.0.0 rubocop-<some-other-plugin>:1.2.0Allows you to pass additional arguments to rubocop. E.g.
- uses: reclaim-the-stack/rubocop-action@v1
with:
rubocop_arguments: --config .rubocop.ymlWe don't handle hitting API rate limits on the GitHub API. Presumably this could end up being a problem if you create a pull request with a ton of offences requiring inline comments. Shouldn't be a problem for normal use though.