作ったと言うとちょっと語弊がある。以下のリポジトリをフォークして共同編集用に変更したものになる。偉大なのは先達である。
ただ、もとのツールが個人のブログを管理する用に作られたと感じたので、ちょっと思想が違いそうということでPull Reqestではなくフォークした。
機能
- はてなブログの全記事をリポジトリに同期させることができる
- その記事を変更するPull Requestがマージされると、差分が検出され、はてなブログに同期される
- 全記事の同期から、記事の編集、新規作成まで、全てGithub上で完結させることができる
変更点
- もともとのツールは、ブランチを切ってpushしたタイミングで、master ブランチとのdiffを検出し、差分をはてなブログにpushするというものだった。確かにはてなブログを一人で使うならこれが楽そうなのだが、共同編集ブログ、例えば告知ブログやヘルプを管理する場合には、編集内容をレビューできるタイミングが欲しくなる。そう考えると、Pull Requestがマージされたタイミングで差分をはてなブログにアップロードする形にしたほうが良いのでそのように変更した
- 新規エントリの作成や全記事をリポジトリに同期させる操作をissueから行えるようにした。これは告知ブログやヘルプを書くのはエンジニアだけではなく、ローカルに環境を整えるのが難しいというスタッフも多いためで、ローカル環境を一切作らずに操作できるようにしたかった。issueテンプレートも用意したので、それぞれのオペレーションが迷わず簡単にできる(と、思う)
- その結果、今回はセットアップからその後の利用まで一切ローカルの環境を作らずにはてなブログの記事をGithubで管理できるようになった
最短セットアップ
- Use this Template をクリックしリポジトリを作成する
- READMEに書いてある2つのトークンをリポジトリのsecretsに保存する
- 全記事同期用issueテンプレートを使いissueを作成し、そのissueを閉じる
- これで全記事がリポジトリに同期されるので使い始められる
- 楽ちんですね
迷ったor迷っていること
- issueから新規記事を作成すると、mainブランチに直接アップされるのがいいのかどうか迷った。差分を含むブランチを作る方法も考えたが、はてなブログ側にはすでに記事が作成されているので、マージされない可能性のあるブランチとして管理するのは適切でなく、mainに直接でいいだろうと判断
- コミットメッセージにどのissueから作成されたのか入れるようにしたので、何目的でエントリを作ったのかなど記載できて便利
-
- 記事のプレビューをしたいときに困る。mainブランチにマージされたタイミングで反映されることにしたので、プレビューしたいときにいちいちマージしないといけなくてめんどくさい。Previewフラグをどこかに持って、フラグが立っている、かつDraft:yesの場合は、pushで反映されるとかだろうか…?
よかったこと
- Github Actions触ったことなかったけど、大まかにできることがわかった気がする