2014年9月21日日曜日

Redmineでの登録や更新の通知をリアルタイムでHubotに知らせ、IRCへ通知させるスクリプト

Redmineでの登録や更新の通知をリアルタイムで任意のURLへ通知するRedmineプラグイン「Redmine WebHook Plugin」については
南旺理工: Redmineのチケット更新をURLへ通知してくれるプラグイン2種の比較 またはハドソンの思い出
http://nanorico.blogspot.com/2014/09/redmineurl2.html
ですでにご紹介しましたが、これをインストールして、URLとしてHubotのHTTP待ち受けURLを指定することにより、Redmineでの登録や更新の通知をリアルタイムでHubotに知らせ、IRCへ通知させることに成功しました。



以下がそのHubotスクリプトです:

# Description:
#   Redmine WebHook Receiver
#
# Dependencies:
#   None
#
# Configuration:
#   None
#
# Commands:
#   None
#
# URLS:
#   /redmine.json

module.exports = (robot) ->
  robot.router.post "/redmine.json", (req, res) ->
    payload = req.body.payload
    action = payload.action
    url = payload.url
    #str = JSON.stringify(req.body)
    robot.messageRoom '#inside', "From Redmine----- #{action} on #{url}"
    res.send "OK"

なんか、Hubot公式にのってるやり方とかなり違うような…。

strを印字させると、JSONを生で見られます。

もっと掘っていけば、Redmine WebHook Pluginが埋め込んでくれてる膨大な情報をHubot側で利用できます。

RedmineからIRCへ直接通知するのではなく、RedmineからいったんHubotへ通知して、HubotからIRCへ通知させる、というのがミソです。
Hubotでは、IRCへの通知のほかにも、さまざまな動作を自動的に行わせることができるからです。

たとえば、チケットの登録を受けて、ファイルのダウンロードを開始させる、といったことが考えられます。
それこそがまさに僕が当社の生産管理システムのためにやろうとしていることです。

0 件のコメント:

コメントを投稿