rubocopは構文解析ツールです。
例えばrubyでString型を定義するときは、シングルクォートを使うようにするのが標準的な規約なので、rubocop
は違反した部分のコードを教えてくれます。
ただシングルクォートになっていないといった簡単に修正できるものは、教えてくれるよりも修正してくれるほうが便利なので--auto-correct
オプションを付けて自動補正するのが便利です。
今日は、CircleCIでrubocop --auto-correct
を実行して、補正した差分をPull Requestにしてくれるgemを公開したので紹介します。
rubocop-automata
rubocop-automataは、CircleCIでrubocop --auto-correct
を実行してその補正結果をPull Requestにしてくれます。
install
Gemfile
に追加してbundle install
または、gem install
します。
gem 'rubocop-automata'
or
$ gem install rubocop-automata
GitHub Personal access token
CircleCIからPull Requestを作れるようにPersonal access tokenを発行します。
Generate token
ボタンを押したあとのaccess tokenをクリップボードにコピーします。
CircleCI Environment Variables(BUILD SETTINGS)
[BUILD SETTINGS] -> [Environment Variables] -> [Add Variable]でGITHUB_ACCESS_TOKEN
をキーにaccess tokenを登録します。
CircleCI Configuration
GitHubに登録してあるアカウントのemailとusernameを引数にして、rubocop-automata
コマンドを実行します。
version: 2
jobs:
build:
working_directory: /usr/src/app
docker:
- image: ruby:2.4.2-alpine3.6
steps:
- checkout
- run: apk --update --upgrade add --no-cache git openssh curl
- run: bundle install -j4 --retry=3
- rubocop-automata <github email> <github username>
補正結果からPull Requestを作る
まずは、CircleCIで構文解析して自動補正した結果をPull Requestできるgemを作りました。
今後は別のCIサービスでも利用しやすいようにしたり、検証対象のコードをコミット範囲に絞れるようにしたいと思っています。