Automatizando tarefas repetitivas - Parte 1

Euclécio Josias Rodrigues
BlogTech
Published in
2 min readFeb 22, 2017

--

Ao entrar no projeto Compufácil uma das coisas que curti logo de cara foi a infraestrutura automatizada, como o uso de containers Docker, deploy automático usando DeployBot, Buildkite entre outras ferramentas que agilizam o fluxo de desenvolvimento. Uma das formas de acelerar ainda mais o Lead time das tarefas é automatizar ações repetitivas, e percebi que isso está enraizado na Culture Code da equipe. Vários scripts, geralmente feitos em bash, são usados para agilizar e simplificar ações constantes, como o Setup de projetos no Github.

Para o gerenciamento dos projetos seguimos a metodologia do Kanban utilizando a board do Waffle.io integrado com as issues do GitHub, que são rotuladas com labels para definir prioridades, categorias e outras métricas para a equipe. As labels stage definem em que etapa a tarefa está:

Assim que um desenvolvedor pega uma tarefa ela entra na etapa de Analysis, que serve para tirar dúvidas, discutir soluções com a equipe e analisar as melhores formas de implementá-las. Ao começar a codar, de fato, há uma certa rotina que consiste em mudar a etapa da tarefa para In Progress, atualizar seu repositório local com a branch master do repositório remoto e criar uma nova branch que, geralmente, é o id da issue.

Resolvemos automatizar este processo através de um script bash que consome a API do GitHub.

A primeira coisa que devemos fazer, é claro, é setar na variável issue_number que é o primeiro parâmetro após o comando:

issue_number=$1

É preciso garantir que estamos em um repositório git:

Então verificamos se as variáveis de ambiente, usadas na autenticação, estão setadas:

Com isso garantido, podemos usar a API do Github para ver se a issue existe e se já não existe uma branch com este id:

O primeiro if verifica se a variável GITHUB_TOKEN não está vazia, se estiver então usa a autenticação via usuário e senha

O próximo passo é realizar os comandos git rotineiros, remover a label Analysis e adicionar a label In progress:

O script está aqui e você pode baixá-lo e usar em seus projetos:

É isso galera, ao automatizar tarefas repetitivas conseguimos economizar um bom tempo a longo prazo, fazendo o uso de scripts podemos simplificar muito do trabalho enfadonho do dia a dia e ainda nos livrarmos do erro humano ;)

P.S.: Agradecimentos ao Jean Carlo Machado pela ajuda com o bash e ao Leandro Lugaresi pela ideia de usar o token, fazendo funcionar, também, para quem usa Two-factor Authentication no Github.

Gostou do post e achou útil? Dê um like ❤️ abaixo para ajudar na divulgação e para que mais pessoas tenham acesso :)

--

--

Skeptical, humanist, code lover, in love with science & technology. Work as Software Engineer at Trybe