PHPStanの実行結果をreviewdogとGitHub Actionsを用いてPRにレビューコメントできるようにする
PHPStanというPHPの静的解析ツールがある。
歴史あるPHPプロダクトにこれを導入する場合、解析レベルを低めに設定したとしても、既存コードで多くのエラーが出ることがある。もちろんそれらのエラーを潰していくことも大事だが、ひとまず小さく導入していくために「PRの追加分に対してのみPHPStanの実行結果が分かる状態にする&CIは落とさない」ことを目指していきたい。
今回はこれを実現するためにreviewdogとGitHub Actionsを使う。
設定は簡単で、こんな感じでやれば良い。
name: ci on: pull_request jobs: reviewdog: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: reviewdog/action-setup@v1 with: reviewdog_version: latest - name: setup composer run: composer install - name: static code analysis env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: ./vendor/bin/phpstan analyse --no-progress --error-format=raw | reviewdog -f=phpstan -reporter=github-pr-review
そうすると、よろしくないコードを書くとこんな感じで自動でレビューコメントしてくれる。
PRの追加分に対してのみレビューコメントがつくし、CIは落とさないので、導入の段階でPHPStanの解析レベルを高めに設定することも可能になる。
結果として、漸進的な改善に繋がったり、型を意識した開発をする習慣がついたりするだろう。また、チーム開発においては、自動でレビューコメントがつく分、レビュアー(人間)のレビューコストが下がり、開発効率の向上も見込めると思う。