Hubot
Slack
分報

slackで分報をタイムライン表示して一覧性を手に入れろ

More than 1 year has passed since last update.

はじめに

このブログ、分報をタイムライン表示して、もれなくチームの流れを把握しようのスクリプト部分のみを転記。
なぜこうしたのかなど気になる人は読んでみて欲しい

※注意 ここでは、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を追加する

  • 個別のチャンネルにhubotが追加された状態

自分のチャンネルに投稿すると

タイムライン用のチャンネルに投稿されれる