はじめに
このブログ、分報をタイムライン表示して、もれなくチームの流れを把握しようのスクリプト部分のみを転記。
なぜこうしたのかなど気になる人は読んでみて欲しい
※注意 ここでは、hubotとslackの連携方法やサーバで実行する方法等は記載していない。
動作確認環境
- node.js version v5.9.1
- hubot version v2.12.0
- hubotのホスティング先はheroku
- slack アダプタを利用し、hubotとslackが連携している
hubotで各エンジニアの部屋をチェックし、発言があればタイムライン用の部屋にリンクを書き込む スクリプト
hubotで各エンジニアの部屋をチェックし、発言があればタイムライン用の部屋にリンクを書き込むことができるようにする
このスクリプトでは以下のことを実施する
- #times_ユーザ名 という部屋で発言をチェックする
- 発言のオブジェクトから、その発言のパーマネントリンクを作成
- #timelineの部屋に発言のパーマネントリンクを投稿する
hubotのscriptディレクトリにこのようなファイルを作成する
script/hunhou2timeline.coffee
hunhou2timeline.coffee
# 自分のslackのURL
slack_url = "https://your_tame_name.slack.com"
module.exports = (robot) ->
# どんな文字列があっても拾う
robot.hear /.+/, (msg) ->
room = msg.envelope.room
# idにドットがあるとURLを展開してくれないので取り除く
id = msg.message.id.replace(".","")
# ユーザ名_channelの部屋だけウォッチ対象
if room.match(/^times_.+/)
# 展開可能なURLを作成し、タイムライン表示用の部屋に投稿する
# roomの指定で、 投稿するchannelを指定
# 第二引数でslackのパーマネントURLを構築
robot.send {room: "#timeline"}, "#{slack_url}/archives/#{room}/p#{id}"
※ チャンネルに追加しないと、hubotが部屋をウォッチしない(入力内容に対してリアクションをしない)のでtimes_ユーザ名のチャンネルにhubotを追加する