はじめに
Qiita CLIのv0.5.0がリリースされました
アップデートの一つでpull
コマンドに --force
オプションが追加されました。
こちらを使って、GitHub Actionsのワークフロー上でQiitaの記事を自動更新するためのワークフローを作成してみました。
Qiita CLIはベータ版のため、今後のアップデートで仕様が変更される可能性があります。
ワークフローを作成する
- 特定時刻、または手動でワークフローを実行できる
- リポジトリのmasterブランチをpullして、Qiitaの記事を更新する
- 管理している記事ファイルに差分がある場合、Pull Requestを作成する
作成するワークフローは次のようになります。
name: Sync remote and create PR
on:
schedule:
- cron: '0 22 * * *' # 7:00 JST
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
sync_remote_and_create_pr:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v3
with:
ref: master
- uses: actions/setup-node@v3
with:
node-version: '18.16.0'
- run: npm install
- run: npm exec qiita pull -- --force
env:
QIITA_TOKEN: ${{ secrets.QIITA_TOKEN }}
- uses: peter-evans/create-pull-request@v5
with:
commit-message: 'Sync article files'
delete-branch: true
title: 'Sync article files'
reviewers: fussy113
GitHub Actionsのワークフロー上でqiita pull --force
を実行して、差分があった場合にはPull Requestを作成するようにしています。
Pull Requestの作成に関しては、下記記事を参考にしています。
これで記事を更新した後にワークフローが実行され、Pull Requestが作成されます。
終わりに
Qiita CLIのpull
コマンドに--force
オプションが追加されたことで、GitHub Actionsのワークフロー上でQiitaの記事を自動更新するためのワークフローを作成しました。
Web上でQiita記事を更新した後、リポジトリの方でsyncしてあげる必要があるのですが、そちらを自動化することが出来るようになったので、より便利になった気がします