🐁

Go言語のバージョン追加を通知したい

2022/08/02に公開

はじめに

Gopherかわいい!Go言語最高!
どうも、たこくんです。

Go言語のバージョン更新を知る方法はいくらでもあると思いますが、
自分で作ってみたいと思い実装してみました。

どうやって管理するか

とりあえず思いついたのはGo言語GitHubリポジトリのtagsを利用することでした。
ここに新しいバージョンが追加されたことを検知できればどうにかできそうだと。

  • リストをなにかしらで自前管理
  • 定期的にtagsを取得
  • 自前管理のリストと比較
  • 差分が新規バージョンとし通知対象へ

強引ですがこんな感じでいけそうということで。

デプロイ先はHerokuを選択。貧乏エンジニアにとって無料はありがたいです。
どうやら heroku scheduler というアドオンで定期実行ができそうなので目的を果たせそうです。

いざ実装

以下のライブラリを利用しました。

各種ライブラリを利用して実装はちゃちゃっとできた気がします。

全コードを管理しているリポジトリはこちら

https://github.com/takokun778/golang-tag/tree/v1.0.0

案の定、実装はめちゃくちゃ強引です。

いざデプロイ

初回起動時に、Slack通知をコメントアウトするの忘れて通知爆撃をしてしまいました...
が無事通知は来たようです。

あとは定期実行の設定をして完了!と思いきや
heroku schedulerを設定するにはクレジットカードの登録が必要とのこと。
う〜ん、クレカ登録めんどくさいしこの計画は諦めるかな泣

と思ったらまさかの通知

朝起きたらなぜかslackに通知が来ました。

よくよく調べてみると Heroku で実行されているアプリケーションのヘルスを維持するために、dyno は最低一日一回は再起動されます。 との記載が。
なるほど、それで実行されたのか。

参考:再起動

とくにリアルタイム性も求めていなかったし、結果としていい感じに通知機能ができましたね!

おわりに

はじめて使い勝手のある実装をした気がします。
計画通りではなかったですが、期待通りの機能は実装できました。無料最高!

一日一回適当な時間になにかしら通知するならこの基盤は使えそうです笑

Discussion