4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[コードレビュー] reviewdogに任せませんか?

Last updated at Posted at 2022-12-18

初めに 

myjlab advent calendar 19日目、最近マキマさん推しな4年の阿左見です。
昨日は@easy_yuki_プログラミング初心者さん向けのDjangoでした。フルスタックフレームワークなのでなんでもできるのはいいですよねDjango。

さて、本日はreviewdogについてざっくりですが書いていこうと思います。

ギリギリに書き始めているのは週末朝まで飲んでたせいです。

reviewdogって何?

スクリーンショット 2022-12-18 22.53.20.png
こんな感じで自動でコードをレビューしてくれます。

haya14busaさんが作成されたOSSのようです。(日本人なんですねすごい!)
SNSはtwitterが多く更新されているようです。スプラトゥーンが好きなようですね😳

適用してみる

今回はgithubを例として書いていきます(多分gitlab等でもできるとは思います)

まずはgithub actionsを有効化しましょう。publicリポジトリなら無料なので、無料で作成してみましょう。

最近は論文書いてたのでtextlintを例にやってみたいと思います。
論文作成に使用していた設定をそのまま引用するので、今回はマークダウンじゃなくてtexを使用します。

まずはtextlintの設定ファイルから

.textlintrc
{
  "filters": {},
  "plugins": ["latex2e"],
  "rules": {
    "preset-ja-engineering-paper": true,
    "preset-ja-spacing": true,
    "preset-ja-technical-writing": {
      "ja-no-mixed-period": {
        "periodMark": "."
      },
      "max-kanji-continuous-len": {
        "max": 11,
      }
    },
    "preset-japanese": true,
    "preset-jtf-style": {
      "1.2.1.句点(。)と読点(、)": false,
      "1.2.2.ピリオド(.)とカンマ(,)": false,
      "4.1.3.ピリオド(.)、カンマ(,)": false
    },
    "spellcheck-tech-word": true
    }
}

こんな感じで今回はtextlintを定義しています。

次は本命のreviewdog.ymlです。
パスは./.github/workflows/reviewdog.yml
にしています。

.yml
name: advents2022_dog
on: [pull_request]
jobs:
  textlint:
    name: runner / textlint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: textlint-github-pr-review
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-review
          level: warning
          textlint_flags: "*.tex"
      - name: Run reviewdog
        if: failure()
        env:
          REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          cat .textlint.log | reviewdog -f=checkstyle -name="textlint" -reporter="github-pr-review"

こんな感じにしてみました。

githubでプルリクエストを作成するとreviewdogが.tex
ファイルに対してレビューしてくれます。

これで個人開発においても、レビューに困ることはないですね!
(レビューされるのが嫌いな人には苦行かもしれません笑)

プルリク作成するとどうなるの?

こちらに今回のプルリクエストをおいておきます。

スクリーンショット 2022-12-19 2.12.10.png

はいこんな感じでレビューしてくれます。
これが無料です。個人的には革命です。

textlintだけではなく、linterが存在していれば、他のメジャーな言語は対応してそうでした。レビューする側、される側においても、不要な部分のレビュー等は先にやってくれるので。いいですね。

個人的には先日、プロジェクト内のテストコードで適当に書いてしまったfixture達をいい感じに直してくれました。まじ便利。

まとめ

  • review dogはいい感じに自動レビューしてくれる
  • (多分)日本人作成のOSSだった
  • linterが存在するものは大体レビューしてくれる
  • 期限ギリギリで記事を書き始めてはいけない

細かいことはreviewdogのリポジトリを参照してください。
駄文にお付き合いいただきありがとうございました。これで在学中のアドベントカレンダー最後です。

明日は@linked34ce の記事です!お楽しみに!

参考にした資料達

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?