Discord Bot 『Roboty』の裏側 ~採用技術と開発環境まとめ~

はじめに

こちらの記事で紹介したDiscord Bot『Roboty』で採用している技術や開発環境のまとめです。
できる限りイマドキな技術を取り入れる & 触ったことないものを触るようにしています。

全体図

絵にしてみるとこんな感じです。

image.png

各要素について

開発言語

Ruby

採用理由

  • 少しだけ触る機会があった
  • せっかくならちゃんと書けるレベルになりたい

ソースコード管理

GitLab

採用理由

  • CI/CD環境が充実している(後述のGitLab-CI)
  • 無料で非公開リポジトリを作れる

CI/CD環境

GitLab-CI

  • ソースコードがpushされるたびに静的構文解析を実行
  • masterブランチが更新されるたびに

テストはさぼっています。。。
自動テストも走らせる予定です。

採用理由

  • 少し触る機会があった
  • 他のものを知らない

実行環境

採用理由

  • とりあえず今熱いDockerとk8sを触りたい
  • GKEについては特になし

ChatOps

ChatOpsというほどでもないですが、GitLabのイベント通知をDiscordで受け取れるようにしています。
詳細はこの記事 → GitLabの通知をWebhookでDiscordに送信する

採用理由

  • DiscordのBotを作っているのでDiscordでChatOpsしたい
  • Google Spread Sheet
    • 中継サーバをどうするか考えていたら、ちょうどいい記事を見つけた(詳細は上の記事)

使用API

採用理由

  • discordrb
    • 開発言語にRubyを選択したから
    • 他を知らない
  • Spla2 API
    • 公式のAPIが公開されてない
  • iTunes Search API
    • 先人が作っているのはYoutubeとニコ動のAPIを使っているようだったので、せっかくなら別のものでやってみたい

おわりに

これからはじめてみる方の参考に少しでもなれば幸いです。
あと定期的にモチベーション問題にぶつかるから共同開発してみたい。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.