2018年1月23日火曜日
Slack を RSS リーダーとして使う
1月 23, 2018
オフィス狛 技術部です。
ここ最近、Macで使えるRSSリーダーを探していたのですが、
色々とツールが増えると面倒、という事で、
既に社内で使用している Slack を RSS リーダーとして使う事にしました。
1)アプリのインストール
まずは、SlackにRSSアプリをインストールします。インストールはこちら(https://slack.com/apps/A0F81R7U7-rss)のアドレスから出来ます。
※弊社は言語設定が英語でSlackを使用しているので、上記のような画面になりますが、
日本語環境で使っている方は、日本語で表示されます。(以降の処理も同様です)
ここで「Install」を押すと、
こちらの画面になりますので、ここで「Add RSS integration」を押します。
次に、設定画面に遷移しますが、後で設定が可能なので、ここでは何もしないでおきます。2)フィードの追加
次に、RSSリーダー用に適当なチャンネルを作ります。(ちなみに、私はPrivate Channelにしています。 理由は後述。)
そして、作成したチャンネルで、
/feed subscribe blog.officekoma.co.jp/feeds/posts/default?alt=rssとコマンド入力し、フィードを追加します。
blog.xxxxの部分は、購読したいブログ・サイト等のフィードURLを設定して下さい。
今回は、弊社のブログサイトを例として追加してみます。
コマンド実行後は以下のような表示になります。
3)登録してあるフィードの確認
追加したフィードは、/feed listとコマンド入力する事で、リストで確認することが出来ます。
コマンド実行後は以下のような表示になります。
4)フィードが更新された場合の見え方
さて、ブログが更新されるとどう見えるのか、試しに弊社のブログを更新してみます。すると・・・
下図のようにSlackへ投稿されます。
5)フィードの削除
削除する場合ですが、先程リストで確認した「ID」を使用します。/feed remove 296084938455これで該当のフィードが削除されます。
削除したあとに、念のためリスト確認(「/feed list」)してみます。
ちゃんと消えていますね。以上が、Slack を RSS リーダーとして使う方法です。
【補足】Slack RSS リーダー運用の仕方
まず気をつけないといけないのは、Slackを無料プランで使用している場合ですね。RSS リーダーで大量に投稿していると、10,000制限に達して、
他のチャンネルのメッセージが埋もれてしまうので。
後は、情報の取捨選択ですね。RSSリーダーをPrivate Channelにしているのもそれが理由です。
テック系の有名な会社などのブログを登録していると、
有用な情報が取れつつも、雑談的な情報も受け取ってしまいます。(私は雑談も好きですが)
Public ChannelでRSSリーダーを運用してしまうと、
そういう通知も受け取る事になり、人によってはノイズになってしまいます。
と言うわけで、現状、共有したい情報があれば、その都度Public Channelへリンクコピーしています。
(Private Channelの投稿をPublic Channelへは共有出来ないので、リンクのコピーでやっています。)
以上です。しばらく運用してみて、もっと良い方法がないか模索します。
2017年4月2日日曜日
Redmine チケットの状態変更をSlackに連携する
4月 02, 2017
オフィス狛 技術部です。オフィス狛では、社内の連絡に関してメールは使わず、全て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のリポジトリを参照していない場合のみ、
今回のような設定を行なっています。
2017年3月12日日曜日
AWS EC2 にインストールした GitLab と Slack の連携
3月 12, 2017
オフィス狛 技術部です。GitLab のインストール・設定シリーズ第4回目の今回は、Slack との連携を行います。
その他の記事は、以下をご覧下さい。
第1回(AWS EC2 に GitLab をインストールする)
第2回(AWS EC2 に GitLab をインストールする(メールの送信テスト編))
第3回(AWS EC2 の GitLab へリポジトリを移行する)
では、早速やり方を説明して行きますが、前回までと違い、今回はブラウザ側の設定で完結出来ます。
1)通知用のチャンネルを作る(Slack側作業)
1-1) 作業の目標はGitLabへのPushをSlackに連携する事なので、何はともあれ通知用のチャンネルを作成します。

2)通知用のアプリを作る(Slack側作業)
2-1) Slackのメイン画面で、チーム名の横にある「下矢印」をクリックし、メニュー表示後、「Apps & integrations」を選択します。

2-2) 新たに表示された画面の右上「Build」をクリックします。

2-3) さらに新たな画面に遷移するので、そこで画面中央の「Start Building」をクリックします。

2-4) 続いて、アプリ名を入力し、通知するチームを選択してアプリを作成します。

2-5) アプリが作成されるので、アプリの種類として「Incoming Webhooks」を選択します。

2-6) 「Incoming Webhooks」の設定画面になるので 、まず右上のスイッチを「ON」にし、
その後、「Add New Webhooks to Team」をクリックします。

2-7) 通知を行うチャンネルとして、先程作成したチャンネルを選択し、「Authorize」をクリックします。

2-8) 先程の画面に戻りますが、Webhook用のURLが表示されるので、これをコピーしておきます。

3)通知の設定を行う(GitLab側作業)
ここからは、GitLab側での設定になります。3-1) 管理者でログインし、管理トップの画面から、右上の歯車から「Service Templates」を選択します。

3-2) Slackを選択

3-3) まず設定を有効にする為、「Active」にチェックを付けます。
後は、どのトリガーで通知を行うか設定します。
下記画像だと、「Push」、「Merge request(GitHubで言う所のPullRequest)」「Tag push」の時に、
「gitlab-notification」へ通知するようにしています。

そして、先程コピーしておいたWebhook用のURLを設定し、「Save」します。
※「Service Templates」で設定しておくと、全てのプロジェクトに反映されるので、便利です。

3-4) 続いて、各プロジェクトで設定を確認してみます。
プロジェクトのトップ画面で、右上の歯車から「Service」を選択します。

3-5) Slackを選択します。
※「Service Templates」で Activeにしているので、緑のマーク(有効マーク)が付いているはずです。

3-6) 設定自体は、「Service Templates」と同じになっていると思いますので、
「Test setting」を押して、通知のテストをしてみましょう。

3-7) 下記のようなメッセージがSlackに出てくれば成功です。
(テスト通知の場合、直近のPush情報が通知されるようです。)

※ちなみに、Slackに表示される画像と名称は、Slack側のアプリ側で変更可能です。
上記は変更後の状態です。
何も設定していないと、Slack API のアイコンが表示されるはずです。
以上です。
開発初期などは、通知が飛び交う事になるので、ちょっとウザいと感じるかもしれません。
(弊社でも最初はそう感じました)
ただ、慣れてくると、誰がいつどんなPushを行なったのか、どの不具合の修正が行われたのか、
など、かなり有意義に思えてきます。
特に、管理する立場から言うと、進捗状況がリアルタイムで分かるのは、かなり助かります。
余談(設定方法はコロコロ変わる)
実は、この記事は、少し前に記載は終わっていて、後は公開するだけの状態でした。今回、公開しようと思って、情報の確からしさをチェックしたら、
Slack側の設定方法がガラッと変わっていた為、
書き直しをする事になってしまいました。
ブログの記事は寝かしちゃいけないな、と反省しました。
登録:
投稿 (Atom)