言語やFWのリリース通知を作った
TL;DR
- 言語やFWの新着リリースを、普段使いのdiscordに通知するようにした
- だけど、その後にnewrelease.io と便利なものをみつけた
はじめに
普段、仕事や趣味で使っている技術のアップデート情報はどのように確認していますか?
HEADを追いかけてるので常に把握してます、という方もいるかもしれません。それとも、SNSで流れてくるのを確認したり、公式ニュースを定期的に確認したりしてるかもしれない。そもそもアップデートなんて知らないよ、今使ってるバージョンすら把握してない、って方もいるかもしれません。
SNSや公式ニュース等で確認している場合だと見逃してしまっていたり、そもそも対象が増えてくると確認がめんどくさくなったりします。
そこで、新規リリースがあった場合は、通知が来てほしいなと思いました。普段discordにいる時間が長いので、discordに通知が来ると嬉しい、と思ったのでdiscordにリリース情報を通知するシステムをつくりました。
つくったもの
新しいリリースがあると discord に通知を送るシステムを作りました。
画像は数ヶ月前のものです。(後述の理由で今はこのシステムを止めたため。)
日本時間の毎朝9時に、その前日にリリースされた言語やFW、ミドルウェア等の一覧をリリースされたバージョンとともに、discordのチャンネルに投稿してくれます。
朝の通勤電車内で新たなリリースがあることを知り、公式のリリースノート等を確認し、社内の人に展開する、といったことができるようになります。
こうやってつくりました
リリースデータは、endoflife-date/release-data というリポジトリから取得しています。このリポジトリは、いろんな技術のバージョン情報やEOL情報をまとめている endoflife.date の管理するリリース一覧となっています。
今回つくったシステムとしてやっていることは、このリリースデータを確認して、新たなリリースがあればそれらをまとめてdiscordに通知する、ということを行っているだけです。
これを実現する技術は何でも良かったのですが、AWS Lambdaを使ってみたかったので、今回はLambdaで動くものを作りました。Lambdaでは、Python や Node.js を始めとして、使用できるランタイムが複数ありますが、今回はNode.jsを使用しました。
また、discordへの通知に関しては、discordで生成できるwebhook urlを使っています。
サーバーの権限があれば、「Server Settings」→「Integrations」→「Webhooks」→「New Webhook」でwebhook urlを作成できます。
このwebhook urlにリクエストを送ることで、そのサーバー内のチャンネルにメッセージを発するBOTをつくることができます。
webhook urlでdiscordにメッセージを送信するサンプル
curl -X POST -H "Content-Type: application/json" -d '{"content":"hello discord!"}' $WEBHOOK_URL
その後・・・
このシステムを開発するにあたって、色々調べていると newreleases.io というものを見つけました。
この newreleases.io は、リリースを通知してくれるサービスです。
GitHubだけでなく、Dockerhubやnpmやrubygemやいろいろなものをソースにリリース通知を受け取ることができます。また、通知の受け取り方もメールやSlack, Discord等、様々な方法で受け取ることができます。
私がつくったリリース通知システムの上位互換のサービスがあったので、つくったシステムは終了して、この newreleases.io を使っています。登録もかんたんだったので、興味がある人はおためししてみてください。
Discussion