1.概要
- Bitbucketの更新をHubot経由でSlackに通知する
- 通知対象:PullRequest, Issue, Repositoryの各イベント
2.動機
- 既存のSlack Bitbucket Integrationでは、Repository Push のみしか対応していない
- どうせなら、全部通知してほしい(特にPullRequest周り)
- とういうことで、作った
3.導入方法
前提
- Hubot => Slackの連携はできている(ping -> pongができればok)
- backlog→hubot→slack連携がわかりやすいと思うので参考にしてください
npm導入
- hubotディレクトリ内(binとかpackage.jsonがあるとこ)で下記コマンド
npm install bitbucket2slack --save
-
external-scripts.json
に下記を追加する
external-scripts.json
"bitbucket2slack"
Bitbucketのwebhook設定
- Tilteは適当にわかりやすいものを入力 例)「slack_notification」
- URLには以下を設定する
{hubot_url}/bitbucket2slack
例)http:example.com:8080/bitbucket2slack
- 通知してほしい更新のみ Triggersから選択する
通知先指定(2つの方法)
-
Getパラメータでの指定(優先)
http:example.com:8080/bitbucket2slack?destination=bb-notification-channel
http:example.com:8080/bitbucket2slack?destination=t_mimura
-
環境変数での指定
export HUBOT_BITBUCKET2SLACK_DESTINATION = "bb-notification-channel"
export HUBOT_BITBUCKET2SLACK_DESTINATION = "private-kosokoso-heya"
通知先(destination)はCHANNEL, PRIVATE_GROUP, DM(user_name)に対応している
4.通知例
色はデフォルトから変更している(後述)5.オプション(追加機能)
色の指定方法
Action | Type | defaultColor |
---|---|---|
Pullrequest Create | information | LightBlue |
Pullrequest Approved | good | Green |
Pullrequest Approval Removed | danger | Red |
Pullrequest Merged | good | Green |
Pullrequest Declined | danger | Red |
Pullrequest Comment... | warning | Orange |
Issue ... | information | LightBlue |
Repository Push | information | LightBlue |
Repository Fork | information | LightBlue |
- Getパラメータでの指定(優先)
http:example.com:8080/bitbucket2slack?good_color=000000
http:example.com:8080/bitbucket2slack?warning_color=ff0000&danger_color=f0f
※ colorに #
は含めない
ダメな例).../bitbucket2slack?warning_color=ff0000&danger_color=#f0f
- 環境変数での指定
export HUBOT_BITBUCKET2SLACK_GOOD_COLOR = "000"
export HUBOT_BITBUCKET2SLACK_INFOMATION_COLOR = "ffff00"
6.雑多
- Slack通知の整形や通知情報の追加などは継続的に続ける予定
- Githubに投稿したので、変な英語あったら教えてください(英語力のなさが露呈してる...)
- 今後の課題として、Bitbucket-Slack間のユーザー名の差異をどうやって吸収するか(対応マップをJSONで書いておくくらいしか思いつかない)
-
Backlog版も作りました(
記事にするかは未定Backlogの更新をHubot経由でSlackに通知する)
6.参考/利用したURL
7.追記(2/26)
- Slack公式がBitbucketのすべてのWebHookに対応したらしい
- Bitbucket2Slackの存在意義がほとんどなくなりました
(アリガトウゴザイマシター