オフィス狛では、社内の連絡に関してメールは使わず、全てSlackでやり取りしています。
ただ、Redmineに関してはデフォルトだとメール通知しか出来ないので、
Redmineの為だけにメールチェックを行う事が必要になってしまいます。
このメールチェックをやめたい、という事で、
Redmineでチケットが登録・編集された際に、Slackへ通知するようにしていきます。
まずは、Slackのチャンネル作成、Slack側のアプリ作成作業を行う必要があるのですが、
この辺の作業は、下記を参照下さい。
AWS EC2 にインストールした GitLab と Slack の連携
という事で、この先は、Slackのチャンネル作成(今回は、「#redmine-notification」というチャンネルを作成)が完了していて、
且つ、Slack側のアプリ作成〜Webhook用のURL取得済みとして、進めて行きます。
1)redmine_slack(プラグイン)のインストール
まずはRedmineのプラグインをインストールします。$ cd /var/lib/redmine/plugins $ git clone https://github.com/sciyoshi/redmine-slack.git redmine_slack $ bundle install $ rake redmine:plugins:migrate RAILS_ENV=production $ touch /var/lib/redmine/tmp/restart.txtここでは、redmineのホームディレクトリが「/var/lib/redmine」の場合を想定しています。
「restart.txt」を作成しておく事で、apacheの再起動無しで、Redmineの再起動を行う事ができます。
(ファイル作成後に、ブラウザでRedmineに接続した時に再起動が行われます。)
正しくインストールされていると、Redmineの「管理 > プラグイン」から、以下のように確認出来ます。
2)カスタムフィールドの作成
続いて、Redmineの「管理 > カスタムフィールド」で「プロジェクト」を選択し、新しいカスタムフィールドを作成します。
名称は「Slack Channel」にしておきます。
3)redmine_slack(プラグイン)の設定
Redmineの「管理 > プラグイン」から、Redmine Slackの「設定」を選択します。以下のような設定画面が出てくるので、
Slack側のアプリを作成した際のWebhook用URLを入力します。
今回は、チケットの更新のみを連携の対象としています。(「Post Issue Updates?」にチェックを付けている)
そして、先ほどカスタムフィールドの名前を「Slack Channel」にした意味がここで分かります。
redmine_slackは、デフォルトだと、全プロジェクトで共通な一つのチャンネルのみ連携が出来ます。
その連携先チャンネルをプロジェクト単位で決めたい場合は、
カスタムフィールドで「Slack Channel」を作成する必要があります。
ちなみに、プラグイン設定の方の「Slack Channel」は必須項目で、
指定無しには出来ないので、「-(半角ハイフン)」を設定しています。
4)Redmine各プロジェクトごとの設定
プロジェクトの「設定 > 情報」を表示すると、追加したカスタムフィールドが出てくるので、ここに、Slackのチャンネル(今回は、「#redmine-notification」)を入力します。
これで、このプロジェクトのチケットが変更された際、Slackへの連携が可能になります。
備考:連携の際に気を付ける事
弊社の場合、Git(GitLab)のリポジトリにPushした際にSlackへ通知が飛び、同時に、リポジトリへの変更がRedmineが参照しているリポジトリへ連携されるようになっています。
つまり、コミットコメントなどで、Redmineのチケットの状態を変更するような記載(「fixes #xxxx」とか)をすると、 Slackの通知が2回飛ぶ事になってしまい、これが開発繁忙期になると、通知がピーピー鳴りまくるので、 通知が必要なプロジェクトを見極める必要があります。
弊社では、お客様とのやりとり(バグトラッキング)で、通知は漏れなく欲しい場合、
そして、そのプロジェクトでGitのリポジトリを参照していない場合のみ、
今回のような設定を行なっています。
Redmine , Slack
0 件のコメント:
コメントを投稿