Vocês conhecem o projeto do github, o Hubot?

O hubot é um bot, capaz de te ajudar em diversas tarefas dentro da sua organização. Ele funciona recebendo comandos de uma sala, existente no seu sofware de mensagens instantâneas. Existem vários adaptadores, para programas, como Skype, slack e o mattermost, que é o software que usamos aqui.

Basicamente, você precisa de uma instância dele rodando em algum lugar e conectá-lo ao seu software de mensagens instatâneas.

Não vou entrar em detalhes aqui, pois o processo é diferente para cada software, mas é bastante fácil. Temos uma instância rodando no Heroku.

Deem uma conferida na documentação de como subir o bot, aqui.

Mas como vamos gerenciar nossos projetos?

Aqui na Sigma usamos o Gitlab como nosso gerenciador de repositórios. Não só repositórios, mas tudo mais que o Gitlab traz, de graça para você, como:

  • Usuários
  • Projetos
  • Issues
  • Milestones
  • Merge Requests (similar o Pull Request do Github)
  • Entre outras coisas bacanas!

O que fizemos foi criar um plugin para o Hubot, que escuta alguns comandos específicos, vai no Gitlab, faz as contas referentes ao andamento do projeto e responde no canal do Mattermost.

Bem bacana! Usamos isto para reportar para nosso clientes o andamento dos projetos e gerar gráficos como este aqui em baixo:

Burndown

O hubot, no entanto, pode escutar os seguintes comandos:

>

hubot gitlab search [termo]

hubot gitlab list projects (lista os projetos existentes no Gitlab)

hubot gitlab list milestones [project_id] (lista milestones do projeto)

hubot gitlab list issues [project_id] (list issues do projeto);

hubot gitlab progress [project_id] (gera a medida de progresso do projeto)

São poucos comandos no momento, mas estamos planejando expandir esse camarada. O bacana do hubot é que ele funciona muito bem com qualquer tipo de mensageiro instantaneo que possua um adaptador para ele, ou seja, isso pode ser aplicado mesmo se vocẽ não usa o slack ou o mattermost.

Um exemplo em funcionamento:

Gitlab Agile

É bem simples e dá estatísticas atualizadas!

Como sempre, publicamos nosso pacote no npm e ele é aberto em nosso Gitlab. O mesmo já foi puxado ~300 vezes, desde sexta-feira. É uma métrica e tanto para um projeto tão pequeno, mas acredito que deve ser útil para outras pessoas.

No nosso roadmap, ainda iremos implementar o cadastro de sprints, sua abertura e fechamento, bem como a geração inteira do gráfico através do hubot. Hoje só geramos as estatísticas, mas não é difícil gerar o gráfico completo.

E aí pessoal, curtiram? Fiquem a vontade para forkar, testar e adicionar novos comandos caso tenham interesse.