今までmonorepoで管理していたペペロミアのプロジェクトをリポジトリに分け始めたので、ついでにreviewdogを実装してみました
reviewdogとは
reviewdogはPull Requestに対して指定したlinterや静的解析を行い、対象行に以下の画像みたいにコメントをつけてくれるツールです。
画像の例だとGoはidの変数名はID(大文字)にしないとgolintに怒られるので、それについてコメントしています。
実装方法
実装はGitHub Actionsで行いました。 コードはこんな感じです。
■ .github/workflows/reviewdog.yml
name: reviewdog on: [pull_request] jobs: reviewdog: name: reviewdog runs-on: ubuntu-latest steps: - uses: actions/setup-go@v2 with: go-version: '^1.14' - run: go version - uses: actions/checkout@v2 - name: Install linters run: go get golang.org/x/lint/golint - name: Setup reviewdog run: | mkdir -p $HOME/bin && curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b $HOME/bin echo ::add-path::$HOME/bin echo ::add-path::$(go env GOPATH)/bin - run: GO111MODULE=off go get -u golang.org/x/lint/golint - name: Run reviewdog Pull Request env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | reviewdog -reporter=github-pr-review -runners=golint,govet -tee
このまま実行するとしたら.reviewdog.yml が無いと怒られたので追加
reviewdogではgolintとgovetを実行するので、以下のように記載
■ .reviewdog.yml
runner: golint: cmd: golint $(go list ./... | grep -v /vendor/) format: golint govet: cmd: go vet $(go list ./... | grep -v /vendor/) format: govet
これで問題なく通りました 👌
これでPull Requestを見ると以下の画像のようにコメントが追加されました。
指摘部分を修正するとコメントは消えます 👌
Pull Request
今回の修正はこちら
https://github.com/wheatandcat/PeperomiaBackend/pull/5/files