概要 backlogでの課題やwikiなどの更新情報をslackに届くようにします。 更新情報がメールにいちいち届いてうっとおしいのを解消できます。 環境構成 backlog -> hubotサーバー(兼開発サーバー) -> slack hubot関連の記事ではherokuを使ったものが多いですが、 自前でhubotサーバーを用意する構成となっています。 記事作成時の環境 サーバー(CentOS 6.5) node.js(0.10.33) npm(1.3.6) CoffeeScript(1.9.1) yoeman(1.4.6) generator-hubot(0.2.5) hubot(2.11.4) forever(0.14.1) 1.slack側の準備 1-1 slackで新しいchannelを作成。 integrationを追加する。 1-2 integrationの一覧からHubot
実現したこと Backlogで課題を追加、もしくは更新・削除すると・・・ という形で、リアルタイムでチャットワークに通知が送られます。 こんな感じでBacklogとチャットツールが連携されれば、メールから課題を辿る必要が無くなるので、ますますメールの存在感が減っていくような気がしました。 具体的な設定に関しては、ほとんどこちらを参考にさせていただいてますー。 BacklogでWebhookが追加されたよ!!!Hubot経由でSlackに連携してみた 準備 Backlogでプロジェクトを用意 Hubotをサーバにデプロイしておく Chatworkで通知する部屋を用意 Hubot側の設定 適当な名前でスクリプトを作成する backlogUrl = 'https://XXXXX.backlog.jp/' module.exports = (robot) -> robot.router.post
Hubotで自分のスクリプトを作ってみたことがなかったので勉強がてらHubotでCodeDeployのデプロイをできるようにしてみたのでその時のメモ。 最終的には以下のようにHubot経由でCodeDeployのデプロイを実行し、結果が確認できるまでを作成しました。 参考 Slack で Hubot を使えるようにする SlackにHubot Integrationを追加してから開発環境を整えるまで 前提 Slack導入済み npmインストール Herokuのアカウント作成及びCLIツールの導入済み slack側での設定 slackのintegrationでslackを追加 任意のslack名を設定 HUBOT_SLACK_TOKENをメモっておく。 botを作ってみる botを作ってみます。 hubotの雛形を作成するためにnpmでyoとgenerator-hubotをインストールします
残念ながら、Heroku の料金プラン変更 により、Free Plan のままでは Bot を動かし続けることができなくなりました。Sleep しないように、自分自身を起こし続ける hubot-heroku-keepalive(https://github.com/hubot-scripts/hubot-heroku-keepalive) も、早速今回の変更に対応したようなので、設定してみましょう。 hubot-heroku-keepalive の設定 Free Plan に対応するため、2つの環境変数が追加になっています。 HUBOT_HEROKU_WAKEUP_TIME HUBOT_HEROKU_SLEEP_TIME この設定により、HUBOT_HEROKU_WAKEUP_TIME 〜 HUBOT_HEROKU_SLEEP_TIME の間だけ Keep Alive の仕組みが動作するこ
はじめに Hubotでデプロイ用のpull requestを作るプラグイン、hubot-deploy-builderというものを作成しました。 弊社では、以下のようなルールで開発を行っています。 masterにマージが行われたことをトリガーとして本番デプロイが走る masterへのマージは、原則的にdevelopブランチからのみ行われる(developブランチが各開発者の開発したものをマージして、ステージング環境にデプロイしてテストするためのブランチ) デプロイ時に毎回develop => masterへのpull requestを作るのが面倒だったので、chatops化しました。 やってくれること developからmasterへのpull requestを作成する developにマージされたpull requestのサマリをdescriptionに書く コマンド hubot depl
はじめに hubot-slack-rainfall-alert という名前でnpmに公開しました。コードはgithubに公開しています。 CoffeeScriptというかjsも殆ど書いたことがないままとりあえず作ったので手続き型っぽくて汚いです。細かいところでも pull request 大歓迎です。よろしくお願いします。→ https://github.com/takashyx/hubot-slack-rainfall-alert/ これは何? YahooのAPIを利用して、hubotに雨が降る前・止む前にSlackの指定したチャンネルに通知をしてくれる機能を追加します。 通知時には現在から60分後までの雨量のグラフ、30分後の雨雲の様子、より詳しい雨雲情報へのリンクを表示します。 cron形式でチェックするインターバルを指定できるので、夜中は動かさない、といった設定も可能です。 そのま
長らく DEPRECATED だった Google Image Search API がとうとう使えなくなった模様です。 Hubot の hubot-google-images も(何も設定していなければ)この API を叩いて画像を取得していたので、「突然 Bot が画像をとってきてくれなくなった!」という人もいるのではないでしょうか。 もともと hubot-google-images の README には「Custom Search Engine の設定しろよな」と書いてあり、この通りに設定をすれば問題ないのですが、その手順をもう少し詳しく解説するのがこのエントリです。 注意点 Google Custom Search API は 1日 100 リクエストまでは無料ですが、それ以上は 1000 リクエストにつき $5 かかります。注意しましょう。 手順 hubot-google-im
slackは名前が出るから本音で書きにくい と思っている人も少ないはず。 自分の発言に責任を持たないと行けないなんて、生きづらい世の中です。 こんなことを考えたことのある人も少なくないはず。 「ああ、Slackに匿名で投稿し(て、上司の悪口を書き)たい」 残念なことに、slackには匿名で投稿できる機能はありません。 仕方ないので作ります。 完成したもの 誰がつぶやいたのかはわからない、匿名投稿部屋が slack にできました。 【図1】この部屋では、自分以外の人の投稿はすべて anonymous の発言になり、誰が部屋に参加しているのか、誰がつぶやいたのかはわからず匿名性が保たれます。(自分の投稿も、他の人から見るとanonymous が発言したことになっている) 【図2】"長田さん"を名乗る大量の anonymous の出現により、カオス状態が訪れる様子。他の人の発言はすべて anon
初投稿です。tuboneです。 hubotはnode.jsとnpmで動作しますが、node.jsの環境構築がめんどくさかったのでとりあえずdockerでnode.jsの環境を構築して、hubotのインストールまでやっていきたいと思います。非常に簡単に構築できますが、つまずいた点がいくつかあったので(海外のリファレンスでもanswerまとまっていなかったので)まとめてみたいと思います。 使用したサーバ環境:CentOS release 6.7 (Final) #dockerでnode.jsが動く環境を作る ###dockerのインストール まずdockerが動かなければ意味が無いのでdockerを入れて下さい。 epelリポジトリからyumが便利です。
# Description: # Utility commands surrounding Hubot uptime. # # Commands: # hubot ping - Reply with pong # hubot echo <text> - Reply back with <text> # hubot time - Reply with current time # hubot die - End hubot process module.exports = (robot) -> robot.respond /PING$/i, (msg) -> msg.send "PONG!" robot.respond /ADAPTER$/i, (msg) -> msg.send robot.adapterName robot.respond /ECHO (.*)$/i, (msg) ->
まだ、導入編をやっていない方は【導入編】hubotでチームだけのお手軽オリジナルslackリマインダーを作るをやってください。 寒空の朝昔の女の夢を見た。その時、朝日が股間を照らしていた。 さて今日は、hubot企画の実装編です。 今回は前回の予告通り、 cronを使って定期投稿 と railsアプリケーションのapiを叩く の二点を主題にして進めていきます。 手順 導入編で作成したhubotを持参してください_ø(●ʘ╻ʘ●) railsで簡単なapiを作ります(※すでにチームのプロジェクトがある方はそれを使ったほうが楽です) チームのプロジェクトを持っている方はrailsのslack-apiというgemを使って、チームのメンバーのidやe-mailを取得すると、連携やメンションが簡単にできます。 hubotからapiを叩いてデータを取得します 定時にそのデータを元に投稿します 事前準備
はじめに 今回の例では、特定のチャットの部屋(slackだとchannel)へメッセージを送信しリマインダとしての役割を実装する。 ※注意 ここでは、hubotとslackの連携方法やサーバで実行する方法等は記載していない。 動作確認環境 普通にhubotが動いていて、各アダプタでチャットツールと接続していればhipchatでも動くと思われる node.js version v5.9.1 hubot version v2.12.0 hubotのホスティング先はheroku slack アダプタを利用し、hubotとslackが連携している 実装コード及び解説 package.jsonにcronを追加する { "name": "xxxxx", "version": "0.0.0", "private": true, "author": "xxxxx", "description": "A s
$npm i --save-dev babel babel-cli babel-preset-es2015 $./node_modules/.bin/babel version 6.3.17 (babel-core 6.3.26) #hubotのディレクトリ $mkdir -p src/es6 $ls -l total 48 -rw-r--r-- 1 t-arata staff 24 1 4 22:12 Procfile -rw-r--r-- 1 t-arata staff 7784 1 4 22:12 README.md drwxr-xr-x 4 t-arata staff 136 1 4 22:12 bin -rw-r--r-- 1 t-arata staff 232 1 4 22:12 external-scripts.json -rw-r--r-- 1 t-arata staff
記事を書いた目的 IBM BluemixでHubotを動かせることが分かっていても具体的な手順はネットで探してみてもよく分からなかったので、本記事を作成した。 なお、ローカル環境はWindowsを使用している。 1.IBM Bluemixのアカウントを作成 IBM Bluemixにて、 右上の登録ボタンを押す 以下の記事を参考にして、アカウントを登録 IBM Bluemixフリートライアルアカウント作成手順 2.SDK for Node.js でアプリを作成 以下の手順でアプリを作成 IBM Bluemixポータル画面>クラシック・エクスペリエンスに進む> カタログ>ランタイム>SDK for Node.js アプリの名前:hubotdev(任意名称で作成。この記事では、hubotdevで作成を行う) ホスト:hubotdev(任意名称で作成。この記事では、hubotdevで作成を行う)
Babel を使ってお手軽に ES201x でモダンな Hubot 開発を行えるようにしてみました。 TL;DR Configure your hubot following necojackarc-sandbox/hubot-babel-es201x Code your Hubot scripts in src/bot directory with Babel ES201x プロローグ 偶然にも ChatOps 用の Bot を作ることになった俺達は、 CoffeeScript で書かれ時代に取り残された Hubot に遭遇したのだった……。 ……。 …………。 Hubot の最終コミットが10ヶ月前になってて少し焦りました。 github/hubot パッと調べても1いい感じの代替ツールが見つからなかったので、この更新頻度は安定の証、枯れたプロダクトだと信じて Hubot を使うことに
hubot-lineという Hubot のアダプタを作りました。これを使うと、HubotというボットフレームワークからLINEへスタンプやイメージ、メッセージなどの送受信が簡単にできます。何らかの機能を持ったボットを提供したいときにメインロジックだけを開発するだけで済むので、楽ができますね。 しかし、マニュアルが長くなってしまったので、読むのも面倒だけど使ってみたい僕のような人向けにサンプルボットも作りました。 さらに、こんなサンプルひとつ渡されても、コード読み解くのめんどいという僕のような人向けに、このサンプルボットを元に使い方を解説します。 なお、LINE BOT APIとHubot、Herokuの知識をある程度お持ちの方向けの解説になります。有用な記事がいくつもありますし、そちらを参考にしてください。そこまでは面倒すぎて面倒みきりません。ということで早速。 ボットのロジックは ./s
cheerio = require 'cheerio-httpcli' module.exports = (robot) -> robot.respond /電車/i, (msg) -> # send HTTP request baseUrl = 'http://transit.loco.yahoo.co.jp/traininfo/gc/13/' cheerio.fetch baseUrl, (err, $, res) -> if $('.elmTblLstLine.trouble').find('a').length == 0 msg.send "事故や遅延情報はありません" return $('.elmTblLstLine.trouble a').each -> url = $(this).attr('href') cheerio.fetch url, (err, $, res) ->
非エンジニアのオペレーターの人のために管理画面を作るのが面倒で、 Slack + Googleスプレッドシートでデータを更新作業をしてくれるHubotを作ったら結構良かった 例えば、こんな感じのランキングモジュールがありました。 システムや運用の都合で自動化せずに、非エンジニアの人が手動で毎週更新するという仕様です。 更新の流れ 1.データをGoogleスプレッドシートに記入する。 > 表示させたいコンテンツに対応するIDを記入してもらう 2.SlackからHubotで更新させる。 > Hubotへメンションを送るだけ 3.おわり オペレーターの作業はこれだけ 普段使っているツールなので馴染みやすいです 仕組み SlackのメンションをHubotで受け付け、GASでスプレッドシートの内容からJSONを生成、そのJSONをStaticサーバーにアップロードし、そのデータをサービス側のサーバー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く