⤴️

textlint+reviewdogでGitHub Actionsでの文書校正を楽々実現!

2023/05/07に公開

はじめに

textlintを導入して校正ができるようになりました。これは、Zennで記事を書くときに校正を目的としています。ただ、今の状況だとtextlintを都度実行する必要があります。せっかくGitHubとZennを連携したので、これを、PullRequestのタイミングでtextlintを実行すべくGitHubActionsに取り入れることにしました。

参考記事

textlint+reviewdogのworkflow

textlintのGitHub Actionsにreviewdogを想定したworkflowのサンプルが用意されています。これを使います。

https://github.com/ume3/bob-zenn-contents/blob/d025a48c4287e9c2bc47e61c23f1bb2c483be52b/.github/workflows/reviewdog.yml#L32-L38

ポイントはgithub_tokenをPATにしている点です。いろいろやり方はあると思いますが、こちらを採用しました。参考記事だと、github_token: ${{ secrets.GITHUB_TOKEN }}とするパターンが多かったのですが、今回は権限が足りていと判断しました。

 Running textlint with reviewdog 🐶 ...
    (省略)
  403 Resource not accessible by integration []

Pull Requestに必要なworkflowの権限設定

personal access tokens (classic) であれば、以下を付与したPATを用意すれば動きそうです。

  • repo
  • repo:status
  • pull_request

ただ、せっかくFine-grained personal access tokensを試したので、こちらで権限を設定してみることにします。この場合は以下となります。

  • Contents .. repo
  • Coomit statuses ... repo:status
  • Pull requests ... pull_request

それぞれはclassic設定のこちらにあてはまると判断して設定。あとは、GitHubのリポジトリのページに移動して、「Settings」-「Secrets」-「New repository secret」をクリックし、トークン名と値を入力して保存すれば使えるようになります。

reviewdogの動作確認

試しにtextlintでひっかかりそうな文章を書いて、Pull requestsを実施。まずはworkflowの動作を確認。

その後、コメントで以下のようにreviewdogが校正チェックをしてくれました。

あとはコメントに沿って指摘事項を取り入れるか判断することができる状態になりました。

上記のように、わざと間違えてみたところ以下のレビューが入りました。

https://github.com/ume3/bob-zenn-contents/pull/10#discussion_r1186645237

fixすることで修正をとりいれることもできます。

おわりに

参考記事を読んでもはまたっところは、nodeが使い慣れていなくてpackage.json用意で躓いた点と、PATの権限の付与と設定ぐらいでした。
textlint+reviewdogのworkflow用意は簡単ながら効果が大きいのでこの設定で様子見しつつ執筆していきたいです。

GitHubで編集を提案

Discussion