
はじめに
弊社ではプロジェクト毎に使っているシステムは違うのですが、とあるプロジェクトでチケット管理に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のissueやPRをお気軽にどうぞ。対応するかどうかはわかりません。
動作は自己責任でお願いします。
同じ悩みを持っている方の参考になれば幸いです。