私のマイクロブログを GitHub Issue から自動生成する仕組みを実験してみました。
この記事では、ブログの執筆ワークフローをどのように再設計したかを紹介します。
システム図

すべてのパイプラインは GitHub のプラットフォーム上で動いています。
モチベーション
普段、私たちは問題をググって、Stack Overflow からコードを貼り付けます。それだけです。それ以上のことはしません。 しかし、そこで学んだことが何かしらあるはずです。それこそが記録しておくべきものです。
ブログを書くのは大好きですが、パソコンで書くのはどうにも面倒です。 スマートフォンからでも公開できる方法を確立する必要がありました。
Medium のようなサードパーティのサービスを使うという選択肢はありません。コンテンツは自分で管理したいからです。
実装
GitHub Actions ベースのブログ r7kamura/diary に出会いました。 そのコードを見て、自分でもシステムを作ってみようと思い立ちました。
まず、Ruby 製の静的サイトジェネレーターである Jekyll のブログをベースにしました。 以前使っていて慣れているからです。
r7kamura さんが専用の GitHub Action を作っていることに気づきました。 カスタム GitHub Action を作るのは技術的なチャレンジでしたが、彼のやり方に倣いました。
https://github.com/junkpiano/til-cli
これは、クローズ済みでラベルの付いた GitHub Issue を巡回します。 ラベルはカテゴリーとして扱っています。現状、各 Issue にはラベルを 1 つだけ付ける想定です(コード)。
r7kamura さんは Issue の本文だけでなくコメントもパースしているようですが、私は本文だけを使っています。
最終的に、GitHub Issue に何か変更があるたびに、til-cli がすべての記事とアーカイブページを生成します。
GitHub Action を自作したことで、GitHub Action の奥深さを理解できました。
なぜ GitHub Issue なのか?
ブログの CMS を管理するのと同じくらい手軽だからです。