HipChat - týmová komunikace na úrovni
V DámeJídlo.cz děláme tak trochu distribuovaně. A můžu za to hlavně já, protože se mi nechtělo stěhovat do Prahy. Takže už rok a půl komunikujeme přes Github, občas přes emaily a hlavně přes chat.
První co se zavedlo s mým příchodem do firmy, byl skype chat pro všechny devs. Což na lidskou komunikaci funguje výborně, píšete hlavně do společného, aby všichni měli přehled na čem se dělá a občas si něco pořešíte privátně.
Ovšem na komunikaci programátorů to funguje otřesně. Proč? Když něco vyvíjíte, tak chcete mít co největší přehled, o co nejvíce věcech a ideálně na jednom místě. Do skype se dost složite píšou roboti, co vám pošlou do společného zprávu vždy, když někdo pouští deploy nebo spadne build.
Takže jsme se přes rok rozhoupávali, že přejdeme na vlastní jabber chat. A protože probíráme supertajné věci, měl to být samozřejmě náš vlastní server, ideálně na vlastní VPS. Potom že si tam nahodíme robota a budeme žít šťastně až do smrti. To samozřejmě ztroskotalo na tom, že se to buďto opakovaně odkládalo, nebo se to nikomu nechtělo nastavovat.
Zkoušeli jsme i gitter, který se našim představám blížil úplně nejvíc, ale vydrželi jsme to dva dny a bugy a nedostatky převládly a vrátili jsme se ke skype.
A pak jsme objevili HipChat a v ten moment byla zabita poslední naděje na jabber server, protože tomuhle se těžko konkuruje.
HipChat
Je cloud-based služba, kterou provozuje Atlassian a má hromadou hotových integrací. To, že má klienty pro všechny platformy na telefonech (iOS i Android) i počítačích (Mac, Win i Linux), už je jen třešnička. A ještě navíc je strašně levnej.
V dalších pár odstavích si ukážeme, jak ho nastavit a příklady několika integrací, které používáme.
Notifikace: Travis
Do .travis.yml
stačí přidat pár řádků
notifications:
hipchat:
rooms:
- secret-api-key@room-number
template:
- '<a href="%{build_url}">build#%{build_number}</a> on %{branch} by %{author}: %{message}<br> - %{commit_message} (<a href="%{compare_url}">%{commit}</a>)'
format: html
email: false
A už to lítá
Travis notifikace v chatu
Notifikace: Vlastní deploy
Hipchat má našlapaný api a můžete si tam poslat co chcete. My máme deploy script v bashi, takže notifikace posíláme takto
#!/bin/bash
function hipchat_notify() {
export CHAT_NOTIFY="$1"
CHAT_COlOR="$2"
if [ -z "$CHAT_COlOR" ]; then
CHAT_COlOR="yellow"
fi
curl -X POST \
-d "message=$(php -r 'echo rawurlencode(getenv("CHAT_NOTIFY"));')" \
"https://api.hipchat.com/v1/rooms/message?room_id=room-number&from=Deploy&message_format=html¬ify=1&color=$CHAT_COLOR&format=json&auth_token=secret-api-key" \
>/dev/null 2>/dev/null || echo "HipChat notification failed"
}
# ...
hipchat_notify "$GIT_MERGE_AUTHOR just deployed <a href=\"https://github.com/damejidlo/damejidlo/commit/$REVISION\">$REVISION</a> to <a href=\"https://$DOMAIN\">$(hostname)</a>, downtime was $DOWNTIME_SEC seconds"
Deploy notifikace v chatu
Notifikace: Github
Na githubu je na HipChat hotová integrace, takže stačí nastavit token a místnost. A doporučuji vypnout komentáře (dělá to strašnej spam)
Nastavení github hooku
Každý commit do masteru se ukáže v chatu, takže hovada co nedělají pullreqesty se hned prozradí
Github notifikace v chatu
Osobně mám vyplé emaily z githubu, takže mi moc vyhovuje, že všechno vidím v chatu a nemusím chodit kontrolovat notifikace. Uvidíte taky všechny otevření/zavření issue a otevření/merge/close pullrequestů, editaci wiki atd.
Notifikace: NewRelic
Nejprve si založíme “notifikační kanál”
Potom ho přiřadíme aplikaci
A pak už si jen užíváte spam
Newrelic notifikace v chatu
Blbinky
Podle mě naprostá killer feature je taky inlinování. Umí issues a commity z Githubu (pokud jsou public), Tweety, Youtube videa, a hlavně gify
Screenshot gifu se bohužel nehýbe :(
Pokud máte také vývojový tým přes více měst/států, jak komunikujete vy?