Trabalhando com robôs
Uma das coisas mais divertidas de ser programador é a possibilidade de automatizar tarefas repetitivas, deixando nosso cérebro livre para pensar em algo mais útil. Isso, aliado a minha curiosidade pelo assunto “DevOps” está me levando a estudar algumas coisas divertidas como o Hubot.
O Hubot é mais uma das invenções do Github, uma das empresas que mais admiro. Trata-se de um aplicativo que automatiza tarefas e funciona integrado a algum sistema de chats como o Campfire ou o Hall. As tarefas são scripts feitos em CoffeeScript, enquanto o próprio Hubot é feito em NodeJS.
A instalação do Hubot é simples, sendo que ele depende apenas do NodeJS e do npm, para instalar os pacotes extras. A documentação oficial é bem intuitiva e útil, então vou pular esta parte neste post, focando em explicar como usamos na Coderockr.
Depois de seguir os passos da instalação é possível escolher algum dos diversos scripts (tarefas) disponíveis ou criar as suas próprias.
Alguns scripts úteis que estamos usando:
- bitly: encurta uma url
- aws: retorna o status dos nossos servidores na Amazon
- email: envia um e-mail direto do chat
- newrelic: verifica o status dos nossos servidores no newrelic
- phpdoc: retorna a documentação de uma função do PHP
- pomodoro: gerencia (inicia, para, contabiliza) pomodoros
- remind: emite uma mensagem no tempo especificado
- github-activity: mostra a atividade (commits, issues) de um determinado repositório
- trello: lista cards de um board e permite criar novos cards
E alguns inúteis:
- dance: mostra uma imagem do Carlton dançando
- klout: mostra a pontuação de um usuário no Klout
- mustache: encontra uma imagem no Google e coloca um bigode na foto
- rotten: usa o site Rotten Tomatoes para mostrar informações de lançamento de filmes e pontuações
- youtube: encontra um video e mostra no chat
Quando você instala o Hubot a primeira coisa que você configura é o nome do seu robô. O da Coderockr chama-se “break” e tem até foto:
O desenho foi feito pelo Mateus Guerra, programador PHP e desenhista nas horas vagas. Ele fez durante um dos short breaks, por isso o nome.
Depois de instalado é preciso que o seu robô seja hospedado em algum lugar, algum servidor público ou privado. Estamos usando a conta free do Heroku para fazer isso, porque a integração com o Hubot e o Heroku é muito boa e fácil de usar.
O próximo passo é configurar a integração entre o Hubot e o Hall, seguindo essa documentação. Depois é só adicionar o usuário do seu robô nas salas de chat e chamar ele, como nos exemplo:
break help
break ec2 status
break mustache me elton minetto
Agora vamos começar a incluir novos scripts para fazer coisas como deploy de aplicativos, monitorar a integração contínua, etc, até ensinarmos um monte de truques ao nosso novo mascote.