✨
Github Actionsでtextlintを使って校正処理をする
やりたいこと
Zennの記事を書いているリポジトリで記事追加用のブランチにプッシュしたらmainブランチへのプルリクエストを作成する。
mainブランチへのプルリクエストが作成されたらtextlintを実行して記事を校正する。
参考記事
こちらの記事を大いに参考にさせていただきました。
プルリクエストの自動作成
ブランチ名 article/**
だったらプルリクを作成します。
プルリクのタイトルはブランチ名として、既にプルリクが存在している場合には作成されないようにします。
pullrequest.yaml
name: pullrequest
on:
push:
branches:
- "article/**"
jobs:
create-review-pr:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- name: check PR exists
id: pr_exists
run: |
pr_title=${GITHUB_REF##*/}
echo "::set-output name=pr_title::$pr_title"
echo "::set-output name=count::$(gh pr list -S ${pr_title}' in:title' -B $base_branch | wc -l)"
- name: Create release pr
if: ${{ steps.pr_exists.outputs.count == 0 }}
run: |
gh pr create -B main -t ${{ steps.pr_exists.outputs.pr_title }} -b ""
textlintのワークフロー
textlintを実行してエラーがあったらreviewdogでプルリクにコメントが追加されるという挙動になります。
textlint.yaml
jobs:
textlint:
name: reviewdog
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
textlint_flags: "articles/**"
作業中にこちらを見つけたので利用してみました。
参考記事
textlintのルール設定
ひとまず適用することにしたルールは以下です。
ここは様子を見て更新していきます。
.textlintrc
{
"rules": {
"textlint-rule-no-mix-dearu-desumasu": true,
"textlint-rule-max-ten": true,
"textlint-rule-spellcheck-tech-word": true,
"preset-ja-technical-writing": true
}
}
終わりに
以上でこの記事のlintがうまくいきました。
もう少し校正内容のブラッシュアップは必要な気がしていますので今後の課題とします。
課題
Github Actionsでプルリクエストを自動作成した時にレビューのジョブが動かないのをどうにかしたいです。
当面は8割完成くらいの状態で記事を一度プッシュしてしまい全体を見直し改めてプッシュした段階で校正がかかればいいという運用をします。
追記
Github Actionsで作成したプルリクだと校正のジョブが動かない件は以下の記事を参考にPersonal Access Tokenを使用するように変更したら動くようになりました。
Discussion