gracetory’s blog

東池袋にある合同会社グレストリのエンジニアブログです

RedmineからChatWorkに通知するプラグインを作ってみた

はじめに

弊社ではプロジェクト毎に使っているシステムは違うのですが、とあるプロジェクトでチケット管理にRedmine、チャットにChatWorkを使っています。

Redmineでチケットを更新したとき、周知のためにChatWorkに書き込む事があります。

それをいちいち手動でやるのが地味に面倒でなのでchatwoirkプラグインを探したのですがRedmine 3.x までしか対応していないものばかり。

ならば自分で作るかということで、Redmine 6.1対応のプラグインを作ってみました。

どんなプラグインか

チケットの作成・編集画面の下部に「ChatWork 通知」というセクションが追加されます。

チェックボックスをONにして保存すると、ChatWorkの指定したルームにメッセージが飛びます。デフォルトはOFFなので、必要なときだけ通知できます。全通知が飛びまくるタイプではないのでご安心を。

通知先のルームIDはチケットごとに変更できるので、「このチケットだけ別のルームに通知したい」といった使い方もできます。

通知メッセージのカスタマイズ

管理画面からメッセージのフォーマットを自由にカスタマイズできます。

【新規チケット】#{{issue_id}} {{title}}
プロジェクト: {{project}}
担当者: {{assigned_to}} / 期日: {{due_date}}
URL: {{url}}

こんな感じで {{title}} や {{url}} などのプレースホルダーを組み合わせて自分好みのフォーマットに編集できます。

使えるプレースホルダーはチケット番号、タイトル、URL、プロジェクト名、トラッカー、ステータス、優先度、担当者、作成者、本文、コメント、期日です。

技術的な話

  • Ruby標準の Net::HTTP を使っているので追加gemは不要です
  • DBのマイグレーションもありません
  • git clone してRedmine再起動するだけで動きます

インストール

cd /path/to/redmine/plugins
git clone https://github.com/yourname/redmine_chatwork_notify.git
touch /path/to/redmine/tmp/restart.txt

あとは管理画面でAPIトークンとデフォルトのルームIDを設定するだけです。

github.com

最後に

がっつり作り込んだわけではないので、環境によっては動かないこともあるかもしれません。

動いた・動かなかった・こうしたらよかった、などあればGitHubのissueやPRをお気軽にどうぞ。対応するかどうかはわかりません。

動作は自己責任でお願いします。

同じ悩みを持っている方の参考になれば幸いです。