私のマイクロブログを 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 を管理するのと同じくらい手軽だからです。

関連記事