はじめに
表題の通り、esaで書いたリリースノートを自動的にMastodonへ投稿するようにした時の覚書になります。
背景
CreatodonというMastodonのサーバーを運営しており、常に最新のMastodonのソースコードに追従するようにしています。
で、僕以外のユーザーさんへどういった変更が取り込まれたかをリリースノートととしてesaに以下のようにまとめていました(実際には僕が後で変更差分を振り返る時にも使ってたりもします)
このリリースノートを書いたうえで、
- ソースコードの追従作業を行う
- 動作確認
- 本番環境への反映対応
- リリースノートの投稿
- お知らせ機能でのリリースノートの共有
などを対応していました。
動作確認についてはCypressでのE2Eテストやテストコードの拡充などで自動化が済んでiいます。
本番環境への反映作業についてもGitのフックを使い、GitHubからソースコードをpullする際におおよその作業は自動化していたりします。
ただ、リリースノートの投稿などに関しては毎回手作業で対応しており、ちょっと面倒くさくなっていました。
そこで、そのあたりを今回自動化してみたという感じです。
やったこと
基本的には
- Masotodon側でAPIトークンを生成
- esaで書いたリリースノートを外部記事として公開する際にWebhookをLambdaに投げる
- Lambdaで受け取ったWebhookの内容を調整し、APIトークンを使ってMastodonへと投稿する
という感じで対応しました。
esaのWebhookについては以下のドキュメントを参照しつつ対応。
Lambdaに関しては、HTTPSエンドポイントが利用できるようになっているのでそちらを使ってサクッと対応しています。
あとはLambdaで受け取ったWebhookを調整してMastodonへ投稿する処理を以下のように書いた感じです。
実際に投稿できたもの
こんな感じで外部記事として公開すると自動的に投稿出来ていい感じですねー。