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サービスでも利用しやすいようにしたり、検証対象のコードをコミット範囲に絞れるようにしたいと思っています。



