21
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Messengerプラグインを使ってRedmineとMattermostを連携する

Last updated at Posted at 2017-08-05

Redmineのチケットの更新時などにMattermostへ書き出すプラグインを日本語化したので使い方を説明する。
スクリーンショットはこんな感じ
Screen Shot 2017-08-05 at 14.32.13.png

Messengerプラグイン

Messenger plugin for Redmine
https://github.com/AlphaNodes/redmine_messenger

AlphaNodesというドイツの会社が作っているらしい、というのがMattermost 3.10のWhat's newに出ていた。Mattermostだけでなく、SlackやRocket.Chatにも書き出せるらしい(そちらは試していない)。既に多言語対応していたのでロケールファイルを日本語化してマージしてもらった。

前提環境

Redmine 3.4.2.stable
Mattermost Team Edition 4.0.0 (4.0.2)
どちらも既に日本語で動いているとする。Mattermostのバージョン表記が4.0.0なのか4.0.2なのかよくわからないが、GitLabに付属してたやつだからだろうか。3.10以降であれば動くと思う(たぶん)。

インストール方法

インストールはいつもの通りコマンドで

cd $REDMINE_ROOT
git clone git://github.com/alphanodes/redmine_messenger.git plugins/redmine_messenger
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

とした後でRedmineを再起動すると有効化される。以下のように[管理]->[プラグイン]にRedmine Messengerが見えていればOK。
Screen Shot 2017-08-05 at 20.18.00.png

設定方法

まずMattermost側の内向きのウェブフックを有効化する。
[システムコンソール]->[カスタム統合機能]の[内向きのウェブフックを有効にする]のところで[有効]を選択して保存する。
Screen Shot 2017-08-05 at 20.17.41.png

次に内向きのウェブフックを作成する。書き出したいチャンネルがあるチームのメニューから[統合機能]->[内向きのウェブフック]をクリックする。

Screen Shot 2017-08-05 at 20.20.50.png

しかしこんなにキレイに日本語化されていて隔世の感がある
Screen Shot 2017-08-05 at 20.20.58.png

表示名はなんでもよいので適当につける。説明は不要。[チャンネル]で書き出し先のチャンネルを選択し[保存する]
Screen Shot 2017-08-05 at 20.23.00.png

[セットアップが成功しました]と表示されたら[完了]。これでMattermost側の設定は終わり。
Screen Shot 2017-08-05 at 20.24.46.png

続いてRedmine側の設定を行う。
[管理]->[プラグイン]->[Redmine Messenger]の[設定]からデフォルトの設定を入れる。
[メッセンジャーのURL]に先ほど作成した内向きのウェブフックのURLを入れ、[チャンネル]に書き出し先のチャンネルを入れる。([SSL証明書の検証]は環境によっては外す)
Screen Shot 2017-08-05 at 20.29.12.png
(もしdockerなどを使っていて、同じマシンの違うコンテナでRedmineとMattermostが動いている場合、localhostの所はコンテナ名を使うこと。localhostを指定するとコンテナ内の7080番ポートに接続してしまう。)

Mattermost側でチャンネル名が日本語になっている場合でも[チャンネル]は英数字で指定する。該当のチャンネルの[チャンネル情報]を見ると指定すべき文字列が.../channels/の後に見えている。この場合はtest。
Screen Shot 2017-08-05 at 20.34.39.png

ここでデフォルトの設定を入れると、全てのプロジェクトの変更が指定されたチャンネルに書き出される。プロジェクト毎に書き出し先チャンネルを変更したい場合はプロジェクトの設定に[メッセンジャー]タブが増えているのでそこから設定する。(以下参照)
Screen Shot 2017-08-05 at 20.39.56.png

デフォルトの書き出し先を指定せず、かつプロジェクトの設定でも書き出し先を指定しない場合はどこにも書き出されない。この辺りの運用は現場に合わせて調整して欲しい。

動作例

デフォルトではチケットが作成/更新された際にチャンネルへ書き出すようになっている。例えば、下記のようなチケットを作成すると
Screen Shot 2017-08-05 at 21.16.58.png
Mattermost側に以下のように書き出される。
Screen Shot 2017-08-05 at 21.17.34.png

その他(余談など)

Mattermostのウェブフックの説明は下記にある。動作しない場合、下記ページにあるようにcurlで直接webhookを叩くなどすると問題の切り分けができると思う。上でも書いたがコンテナを使っていると微妙に引っかかりやすい場合もあるので注意。

Incoming Webhooks
https://docs.mattermost.com/developer/webhooks-incoming.html

訳語はIncoming webhookを「内向きのウェブフック」とするなど、MattermostとRedmineの既存の日本語訳に合わせた。Incomingを内向きと訳すのは・・・どうなんだろうか?ちょっと分かりにくい気もするのだがそういうわけなのでご了承されたい。その他でわかりにくい所などあればコメントいただけると修正できるかもしれない。

21
39
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?