Rubotyで勤務時間を管理する
リモートワークのときでも勤務時間を自動的に記録するため、botに発言時間を監視させ、だいたいの勤務時間を記録させるようにした。
いま使っているbotはr7kamura/ruboty製で、これに機能を追加するプラグインを書いた。
このプラグインは発言者ごとに発言時間を記録する。
naoty/ruboty-google_spreadsheet
このプラグインは勤務時間のストレージを提供する。既存のストレージにはr7kamura/ruboty-redisがある。これを利用する場合、保存された勤務時間を取得するコマンドを用意する必要がある。それを非エンジニアに理解してもらうのは厳しいと思ったので、直感的に理解できるGoogle Spreadsheetをストレージとして利用できるようにするプラグインを作った。
ソースコードを読むとわかるけど、この2つのプラグインは密結合しているため、設計上はいい出来とは言えない。ruboty-timecard内でruboty-google_spreadsheetを使うことを想定したアクセスの仕方をしている。rubotyのストレージをうまく抽象化するインターフェイスがあると解決しそうだが、なかなか難しい問題だと思う。
naoty/ruboty-timecard-template
これら2つのプラグインは共に使われることを想定しているため、勤務時間を記録する用のテンプレートを作った。Herokuボタンから簡単にデプロイできる。