Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reviewdog/action-rubocop
Run rubocop with reviewdog 🐶
https://github.com/reviewdog/action-rubocop
github-actions hacktoberfest linter reviewdog rubocop
Last synced: 6 days ago
JSON representation
Run rubocop with reviewdog 🐶
- Host: GitHub
- URL: https://github.com/reviewdog/action-rubocop
- Owner: reviewdog
- License: mit
- Created: 2019-11-13T20:44:10.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-04T23:34:36.000Z (18 days ago)
- Last Synced: 2024-12-13T23:55:09.827Z (9 days ago)
- Topics: github-actions, hacktoberfest, linter, reviewdog, rubocop
- Language: Shell
- Homepage:
- Size: 8.7 MB
- Stars: 117
- Watchers: 33
- Forks: 75
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub Action: Run rubocop with reviewdog 🐶
[![](https://img.shields.io/github/license/reviewdog/action-rubocop)](./LICENSE)
[![depup](https://github.com/reviewdog/action-rubocop/workflows/depup/badge.svg)](https://github.com/reviewdog/action-rubocop/actions?query=workflow%3Adepup)
[![release](https://github.com/reviewdog/action-rubocop/workflows/release/badge.svg)](https://github.com/reviewdog/action-rubocop/actions?query=workflow%3Arelease)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/reviewdog/action-rubocop?logo=github&sort=semver)](https://github.com/reviewdog/action-rubocop/releases)
[![action-bumpr supported](https://img.shields.io/badge/bumpr-supported-ff69b4?logo=github&link=https://github.com/haya14busa/action-bumpr)](https://github.com/haya14busa/action-bumpr)This action runs [rubocop](https://github.com/rubocop/rubocop) with
[reviewdog](https://github.com/reviewdog/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](./examples/example-github-pr-check.png)
### 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](./examples/example-github-pr-review.png)
## 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 versionYou can combine `gemfile`, fixed and latest bundle version as you want to.
### `rubocop_flags`
Optional. Rubocop flags. (rubocop ``).
### `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](https://docs.rubocop.org/rubocop/configuration.html) automatically.
In your `Gemfile`, ensure all Rubocop gems are in a named (e.g. rubocop) group:
```ruby
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.
```yml
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
## License
[MIT](https://choosealicense.com/licenses/mit)