【ツール活用|初心者向け】GitHubのコードレビューを自動化!ReviewdogでLinter結果をPRに直接通知する方法

1. 導入:なぜReviewdogが重要なのか

開発現場において、CI(継続的インテグレーション)でLinter(コードの静的解析ツール)を回すことは一般的です。しかし、CIのログを確認するためにわざわざ別の画面を開き、膨大なテキストからエラー箇所を探すのは非常に手間がかかります。
Reviewdog を導入すれば、Linterが発見した警告やエラーを、GitHubのプルリクエスト(PR)上の「該当する行」に直接コメントとして投稿してくれます。これにより、修正すべき場所が一目で分かり、レビューの往復回数を減らし、開発スピードを劇的に向上させることができます。

2. 基礎知識:Reviewdogの仕組み

Reviewdogは「パイプラインの出力を受け取り、それをGitHubのコメントとして整形して送信する」ツールです。
・Linter: コードの構文チェックやコーディング規約の違反を検出するツール(ESLint, Pylint, RuboCopなど)。
・GitHub Actions: CI/CDを実現する自動化プラットフォーム。
Reviewdogはこれらと組み合わせることで、「コードをプッシュする → 自動でLinterが走る → 結果がPRにコメントされる」という強力な自動化フローを構築します。

3. 実装/解決策:GitHub Actionsでの導入手順

導入は非常にシンプルです。GitHub Actionsのワークフローファイル(.github/workflows/lint.yml)を作成し、そこでLinterの実行結果をReviewdogに渡す設定を書くだけです。

4. サンプルプログラム:GitHub Actions設定例

以下のコードを `.github/workflows/lint.yml` として保存すると、GitHub Actions上でESLintを実行し、その結果をPRにコメントします。


name: Lint Check
on: [pull_request] # プルリクエスト作成時に実行

jobs:
eslint:
runs-on: ubuntu-latest
steps:

  • uses: actions/checkout@v3
  • name: Setup Node.js

uses: actions/setup-node@v3
with:
node-version: '16'

  • name: Install dependencies

run: npm install

# ESLintの結果をReviewdogに渡す
# format=checkstyleを指定することでReviewdogが解析可能な形式になります

  • name: Run Reviewdog

uses: reviewdog/action-eslint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # GitHubにコメントするためのトークン
reporter: github-pr-review # PRのファイル行に直接コメントする設定
eslint_flags: '.' # チェック対象のディレクトリ

5. 応用・注意点:現場で役立つポイント

・権限の確認: GITHUB_TOKENはデフォルトでPRに書き込む権限を持っていますが、リポジトリの設定で「Read and write permissions」が有効になっているか確認してください。
・ノイズの削減: すべてのルールを厳格に適用するとコメントが溢れかえり、逆に開発効率が落ちることがあります。まずは「Warning」レベルから始めたり、特に重要なルールに絞って導入するのが現場では推奨されます。
・複数のLinter対応: ReviewdogはESLintだけでなく、多くの言語やツール(ShellCheck, TFLintなど)に対応しています。プロジェクトで複数の言語を使っている場合、それぞれのアクションを組み合わせることで、統一されたレビュー体験を得ることが可能です。

Reviewdogを活用して、機械的なチェックはツールに任せ、人間はよりクリエイティブなコード設計の議論に集中できる環境を作りましょう!

タイトルとURLをコピーしました