CIでPullRequestの自動レビューを行う
概要
Dangerを使ってプルリクエストの自動レビューを行う
詳細
僕は未熟な人間なのでよくないプルリクを多々投げてしまいます タイポとか、使ってない関数残ってたりとか、記法の間違えとか
そういう小さな間違えで先輩の貴重な時間を使うのは申し訳なさすぎるのでDangerというものを導入しようと思いました Dangerは自動でプルリクにレビューをしてくれるライブラリです
人の手を煩わせなくても指摘できるような小さなミスを機械がレビューしてくれます
今回はこのDangerとeslintていい感じのレビューをしてくれるBotを作っていきます
導入方法
今回はDangerfileでcheckstyle.xml
形式のファイルを読み込んでレビューを行うようにするので、eslint
でcheckstyle.xml
を出力できるように準備しておく
{ ~~~ 省略 ~~~ scripts: { "lint:checkstyle": "eslint src -f checkstyle -o checkstyle.xml" } ~~~ 省略 ~~~ }
Gemを使う準備をする
$ bundle init
Gemの設定
# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem 'danger' #checkstyle を読み込んでレビューできるようにするためのGem gem 'danger-checkstyle_format'
Gem を入れる
$ bundle install
ルートディレクトリでDangerfileを作る
# including in a project's CHANGELOG for example github.dismiss_out_of_range_messages checkstyle_format.base_path = Dir.pwd checkstyle_format.report("${your-path}/checkstyle.xml")
circleciでdangerを実行するように設定します
このときにDANGER_GITHUB_API_TOKEN
という値を同時に設定しておきます
このTOKENの値はGithubで setting
-> developper setting
-> personal access token
で取得できます
このTokenの所持者のアカウントでdangerによるレビューが行われるのでBot用のアカウントを作っておくと便利です
machine: environment: DANGER_GITHUB_API_TOKEN: ${your github api token} test: override: - npm run lint:checkstyle - bundle exec danger
これで、circle ci でビルドが走るたびに stylecheck.xml が生成され、その値によってレビューがされるようになります
すごい!便利!はっぴー!