今まで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