Redmineは便利
Redmine って便利ですよね。プラグインもたくさんあるし。
とあるチーム作業のために、Redmine を導入していて、適宜プラグインを追加して利用しています。
今風のチーム作業ということで、Slackも利用しているので、当然のように Redmine から Slack に通知させたくなるわけです。
というわけで、検索してみると、鉄板どころのプラグインがありました。
https://github.com/sciyoshi/redmine-slack
これを導入してみたところ、いい感じに通知できましたが…
足りない…
今、フォーラムをノウハウ共有場所として使っているので、フォーラム更新時にも通知が欲しい…。
「神よ! フォーラムの通知をください!」 …神は答えた、「なければ貴方が作るのです」
もちろん、0からは作りません…。
上記の redmine-slack プラグインを fork して、既存通知機能を拡張してみました。
ちなみに、出来上がったのがこちらになります。
https://github.com/knaou/redmine-slack
既存コードを参考にしながら Redmineの仕様を探るところからです…。
どうやら、Redmine の 2.4以降?だと、
class SlackListener < Redmine::Hook::Listener # ここに hook の処理を書く end
こんな感じで、Listener を書いてあげて、init.rb で読み込めば、簡単に Hook 処理を書けるらしい…。
使えるHookは、公式のWikiにありました。(最初公式のWikiの存在知らずに、Redmine のコードをgrepして探しました…(笑))
「フォーラム」と言っているけど、モデル名は 「Board」だったり、モデルのBoard から書き込みへの関連名は topics なのに、書き込みのモデルが 「Message」だったりと、ちょいちょい悩みましたが…
Railsの経験はあったので、Rails console を叩いたり、Railsの規則に従ってコードを読めば何とかなりました。
還元せよ
出来上がったものがこちらになります。
https://github.com/knaou/redmine-slack
便利なものを使わせてもらっているのだから、便利なものができたら還元するのは道理。
というわけで、本家に pull request 投げてみました。
…実は pull request を受けたことはあるけど、pull request を出すのは初めてだったりします。
ちょっと…ドキドキ…!
コメント