7
0

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

Qiita CLI + GitHub Actionsで記事を自動更新するためのワークフローを作成する

Last updated at Posted at 2023-07-19

はじめに

Qiita CLIのv0.5.0がリリースされました:tada:
アップデートの一つでpull コマンドに --force オプションが追加されました。
こちらを使って、GitHub Actionsのワークフロー上でQiitaの記事を自動更新するためのワークフローを作成してみました。

Qiita CLIはベータ版のため、今後のアップデートで仕様が変更される可能性があります。

ワークフローを作成する

  • 特定時刻、または手動でワークフローを実行できる
  • リポジトリのmasterブランチをpullして、Qiitaの記事を更新する
  • 管理している記事ファイルに差分がある場合、Pull Requestを作成する

作成するワークフローは次のようになります。

.github/workflows/sync-remote-and-create-pr.yml
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が作成されます。

ワークフロー実行の様子

作成されたPR

終わりに

Qiita CLIのpullコマンドに--forceオプションが追加されたことで、GitHub Actionsのワークフロー上でQiitaの記事を自動更新するためのワークフローを作成しました。

Web上でQiita記事を更新した後、リポジトリの方でsyncしてあげる必要があるのですが、そちらを自動化することが出来るようになったので、より便利になった気がします:thumbsup:

7
0
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
7
0