📅

GitHub Actionsで定期的にScrapboxのページを数えて通知する機能を作りました🗑️

2023/02/18に公開

タイトルの機能を作ってみました。
毎朝筆者のScrapboxのプロジェクトのページ数を数え、それをgithubリポジトリとSlackに通知するといったものです。

つくったもの

以下のリポジトリで管理しています。
https://github.com/not75743/count-scrapbox-pages

背景

筆者はプライベートで学んだ内容をScrapboxに書き殴り、とりあえずメモをするスタイルで学習をしています。
日々学習し、ページがどんどん増えていく(はず)のを可視化して、今後のやる気につなげようと思い、この機能を試しに作ってみました。

あとgithubの草を常に生やす強い人に擬態したかった

動くとこんな感じ

READMEはこんな感じで

Slackに通知するとこんな感じです

機能一覧

  • 毎朝5:00にワークフローを実行し
    1. Scrapboxのページ数を数える
    2. README.mdに反映し、リポジトリへpush
    3. Slackに結果とページ数を通知する

ポイント

ScrapboxのAPIを叩く

Scrapboxにはページの情報を取得できるAPIがあるので、それを利用しました。
こうすることでActions側でページ数を取得可能です。

https://scrapbox.io/help-jp/API

処理の定期実行(Schedule

Github Actionsでは、scheduleをトリガーにワークフローを実行させることが可能です。
例えば以下だと毎日5時(UTC)で実行されます。

on:
  schedule:
    - cron:  '0 5 * * *'

日本時間に修正する場合は9を引きます

on:
  schedule:
    - cron:  '0 20 * * *'

permissionsの設定

リポジトリへREADME.mdをpushするために以下の設定が必要でした。

    permissions:
      contents: write

GITHUBのAPIを使用するためにこのpermissionsを設定する必要があります。

権限周りがどうも難しく、調べるのに時間がかかりました。
https://zenn.dev/not75743/scraps/926f2693809744

いずれ記事にしたいと思います。

slackへの通知

以下を使用させていただきました。
https://github.com/rtCamp/action-slack-notify

使ったことがあったのと、ページ数を書き込める項目があったためです。
時間をかけることなく通知機能を用意できたので、非常に便利でした。

作ってみて

以下の点でよかったです!

  • ページ数を知るのにslackを見ればよいので楽
  • ページ数が増えた増えてないを手軽に知れるので、「今日はなんか書こう!」というモチベーションにつながった

通知するのはかなり応用がきくと思うので、他にも活かしてみたいところです。

(おまけ)試行錯誤したメモ

スクラップで試行錯誤した履歴をメモしました。
https://zenn.dev/not75743/scraps/8a7b6028c13c1b

Discussion