ということをやってみましたので手順。

追記 2017/07/05

この記事ではredmine_mattermostというプラグインを使用しているのですが、Mattermost3.10のニュースを見ると、redmine_messengerという前述のプラグインをForkしたものが紹介されています。内容を見た限り、機能的にそちらを使用したほうがよさそうな気がします。近々試す予定なので、その時はまた記事にすると思います。

追記 2017/08/26

雑ですが続きを書きましたのでそちらもどうぞ。

できること


今回、redmine_mattermostというのを使用しましたが、さっと確認したところ下記のことができました。

  • チケットの作成・更新時にMattermostへ通知
    • 変更内容(説明・注記の記述内容や各種フィールドの変更後の値など)
    • チケットへのリンク
  • Wiki作成・更新時にMattermostへ通知
    • 変更内容(記述内容)
    • Wikiへのリンク

上記それぞれの通知をプロジェクト別に行える。

環境


下記の環境で確認しました。

  • Redmine 3.3.2
  • Mattermost 3.9

プラグイン入手


redmine_mattermostプラグインをありがたく使用させて頂きます。ちなみに、この記事に書いてるのはリポジトリのREADMEに書いてるので、ぶっちゃけただの翻訳記事…

下記のようにリポジトリからクローンするか、リリースからダウンロードします。

1
git clone https://github.com/altsol/redmine_mattermost.git

Redmineのpluginsディレクトリに放り込みます。プラグインのインストールについては割愛。

Mattermostでの設定


Webhook作成

Mattermostで「統合機能 -> 内向きのウェブフック」でWebhookを作成します。通知先のチャネルが複数あったとしても、Redmine側でプロジェクト別に設定できるようになってますので、Webhookは1つで大丈夫です。

「セットアップが成功しました」に表示されるURLを控えます。

チャネルのURL確認

通知先のチャネルのURLを確認します。

Redmineでの設定


管理メニューから「プラグイン -> Redmine Mattermost」を探して「設定」を押します。

設定で下記のように入力します。(モザイクだらけだけど許して…)

Mattermost IconにはMattermostで表示されるアバターの画像を設定します。デフォルトだと作者のリポジトリのGitHub CDN(CDNと言っていいのか?)のhttps://raw.githubusercontent.com/altsol/redmine_mattermost/assets/icon.pngが設定されています。

未設定の場合は下記のMattermostのWeb hookのアイコンが表示されます。

カスタムフィールドの追加

プロジェクトに対してカスタムフィールドを追加します。

この時、名称に「Mattermost Channel」と入力します。後でこの項目にプロジェクトごとに飛ばすチャネルを設定します。

この、カスタムフィールド。作成しなくてもプラグインの設定画面で入力したチャネルに通知が行きそうなオーラを醸し出していますが、作成してプロジェクトごとに通知先のチャネル設定しないと(後述)通知が行きません。いや、カスタムフィールド作らなかった場合は問答無用で全通知行きそうなオーラが出てるんですけどね…

ところで、これ、どうやってMattermostのプラグイン向けのカスタムフィールドかどうか識別してるのかソースコード確認したら、カスタムフィールドのタイトルがMattermost Channelのものを検索してました。ですので名称がMattermost Channel以外だと動きません。大文字小文字は区別しないみたいですが。まあ、確かにそれ以外方法がないか…

プロジェクトでの設定

プロジェクトでMattermost ChannelにチャネルのURLの末尾を入力します。ここに入力するチャネルのURLに応じてプロジェクトごとに通知先を変更することが可能です。

たぶん、チャネルURLの末尾だけじゃなくて全部入力しても動くと思います。じゃないと、グループ名は違うけどチャネル名は同じなら通知できなくなるしな…

通知してみる


チケットを作成したり、更新したりすると、下記のような感じでMattermostのチャネルに通知が行きます。

その他


ウォッチャー追加して試してないんですけど、今画像確認したらウォッチャーの欄があるので、RedmineのIDとMattermostのIDが一緒だったらメンションが行ったりするのだろうか…
試してみたけど、行きませんでした。姓名を足した値がつらつら表示されるだけなので「idでメンション」というのはプラグインそのままでは無理そうです。ただ、Redmineの姓名とMattermostの名前が同じ場合に検索とかはできそうな感じはします。また、コード見た感じではそんなに難しいことしてないので、カスタマイズすればRedmineのIDとMattermostのIDが一緒の場合に各ユーザにメンション飛ばすとかはできそうな気はします…