💨
rubocopを設定する
Rubyの静的コード解析ツール(コーディングチェックツール)」の1つであるrubocopをセットアップし、Github Actionsでmasterブランチにマージされるたびにrubocopが走るまでの環境構築をしていきます
rubocopをセットアップする
- rubocopのgemをインストールする
Gemfile
gem 'rubocop', require: false
-
rubocop -A
コマンドを実行する -
rubocopの設定を編集する
.rubocop.yml
ファイルを作成して、rubocopの設定を編集します
.rubocop.yml
AllCops:
NewCops: enable
Style/Documentation:
Enabled: false
AllCops
でRubyのバージョンを指定します
今回はclassのドキュメント(コメント)を必須にする設定をoffにしました
1行の警告を無効化したい場合
# メソッド名が長すぎるというエラーを無効化
def handle_error_in_development(e) # rubocop:disable Naming/MethodParameterName
これだけでrubocopの設定は完了です
次にciを設定しましょう
rubocopをGithub Actionsで事項する方法
ciにはreviewdog/action-rubocopを使用します
reviewdog/action-rubocop
はrubocopの結果をpull requestでコメントしてくれる便利なGithub Actionです
ドキュメントを参考にGithub Actionsを設定します
.github/workflows/rubocop.yml
name: reviewdog
on: [pull_request]
permissions:
contents: read
pull-requests: write
jobs:
rubocop:
name: runner /rubocop
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1.2
- name: rubocop
uses: reviewdog/action-rubocop@v2
with:
rubocop_version: gemfile
rubocop_extensions: rubocop-rails:gemfile
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
注意するポイントは1つだけで、github_token: ${{ secrets.github_token }}
の部分です
secrets.github_token
はciを実行するとGithub側が自動で作ってくれるので、自分たちで特別secretsを設定する必要はありません
ここまで準備ができてからpull_requestを作成するとciが走って、rubocopに違反したコードがあると画像のようにコメントで伝えてくれます
rubocopを使ってコードの保守性をあげていきましょう!
Discussion