初めに
myjlab advent calendar 19日目、最近マキマさん推しな4年の阿左見です。
昨日は@easy_yuki_ でプログラミング初心者さん向けのDjangoでした。フルスタックフレームワークなのでなんでもできるのはいいですよねDjango。
さて、本日はreviewdogについてざっくりですが書いていこうと思います。
ギリギリに書き始めているのは週末朝まで飲んでたせいです。
reviewdogって何?
haya14busaさんが作成されたOSSのようです。(日本人なんですねすごい!)
SNSはtwitterが多く更新されているようです。スプラトゥーンが好きなようですね😳
適用してみる
今回はgithubを例として書いていきます(多分gitlab等でもできるとは思います)
まずはgithub actionsを有効化しましょう。publicリポジトリなら無料なので、無料で作成してみましょう。
最近は論文書いてたのでtextlintを例にやってみたいと思います。
論文作成に使用していた設定をそのまま引用するので、今回はマークダウンじゃなくてtexを使用します。
まずはtextlintの設定ファイルから
{
"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
にしています。
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
ファイルに対してレビューしてくれます。
これで個人開発においても、レビューに困ることはないですね!
(レビューされるのが嫌いな人には苦行かもしれません笑)
プルリク作成するとどうなるの?
こちらに今回のプルリクエストをおいておきます。
はいこんな感じでレビューしてくれます。
これが無料です。個人的には革命です。
textlintだけではなく、linterが存在していれば、他のメジャーな言語は対応してそうでした。レビューする側、される側においても、不要な部分のレビュー等は先にやってくれるので。いいですね。
個人的には先日、プロジェクト内のテストコードで適当に書いてしまったfixture達をいい感じに直してくれました。まじ便利。
まとめ
- review dogはいい感じに自動レビューしてくれる
- (多分)日本人作成のOSSだった
- linterが存在するものは大体レビューしてくれる
- 期限ギリギリで記事を書き始めてはいけない
細かいことはreviewdogのリポジトリを参照してください。
駄文にお付き合いいただきありがとうございました。これで在学中のアドベントカレンダー最後です。
明日は@linked34ce の記事です!お楽しみに!
参考にした資料達