0. 変数用意
Hipchat APIの使い方は、Atlassianのページにいろいろ載ってます。
https://www.hipchat.com/docs/apiv2/method/send_room_notification
ここではcard
というオブジェクトを使ってroomへの通知で画像を送る手順のメモを共有します。
試しに、LGTMの画像を表示させます。
必要に応じてhttp_proxy
も設定。
wget -q -O lgtm.html http://lgtm.in/g
LGTM=`grep '\[LGTM\]' lgtm.html | sed 's/^.*\[/\[\!\[/'`
LGTM=`echo ${LGTM} | sed -e 's/\[!\[LGTM](//' -e 's/)].*//'`
echo ${LGTM}
http://lgtm.in/p/atOSUsdZp
これでLGTMの画像URLゲット。こんな感じです。。。w
次はいろいろとHipchat用の変数準備。
JSONデータを変数に格納するためにはエスケープが必要。
HIPCHAT_HEADER="Content-Type: application/json"
HIPCHAT_ROOMCODE="xxxxx" ## room id みたいなやつ
HIPCHAT_AUTH_TOKEN="xxxxxxxxx"
HIPCHAT_API="https://api.hipchat.com/v2/room/${HIPCHAT_ROOMCODE}/notification?auth_token=${HIPCHAT_AUTH_TOKEN}"
MESSAGE="test"
THUMBNAIL="{ \"url\": \"${LGTM}\", \"width\": 1193, \"height\": 564 }"
HIPCHAT_CARD="{\"style\": \"image\", \"id\": \"123\", \"url\": \"${LGTM}\", \"title\": \"LGTM :)\", \"thumbnail\": ${THUMBNAIL} }"
HIPCHAT_JSON="{\"color\": \"green\", \"message_format\": \"text\", \"message\": \""${MESSAGE}"\", \"card\":${HIPCHAT_CARD} }"
-
id
は外すとAPIが受け付けてくれません。値は適当でも大丈夫だった。 -
message
とかmessage_format
も外したらエラーになる。でもここで設定した値はroomでは表示されない。
1. curlでnotificationを試す
以上をふまえて、curl
でnotificationを送ります。
curl -H "${HIPCHAT_HEADER}" -X POST -d "${HIPCHAT_JSON}" ${HIPCHAT_API}
これだけです!
だから何?とか言われそうですがジョブが成功したときなどに表示させてみると結構なごみます :)
P.S.) ちなみにslackへのnotificationの場合はもっと簡単にできます。