O gource é um software que nos permite, dentre outras coisas, gerar uma animação gráfica e bonita da linha do tempo dos commits de um projeto no git. Vou mostrar como usá-lo em um cenário no qual queremos gerar uma animação para todos repositórios de uma dada organização no github.
Primeiramente, instale o gource:
Se preferir compilar, para usar opções mais recentes, instale as dependências:
E depois compile:
Para listar todos repositórios de sua organização, gere um token no github e coloque numa variável do bash. Também crie uma variável com o nome da sua organização do github:
Faça uma requisição GET para trazer um arquivo json com informações dos projetos na organização:
Vamos filtrar somente os nomes dos repositórios:
Agora com a variável $repos conseguimos clonar todos repositórios:
Com o gource vamos gerar um arquivo com histórico dos commits de todos repositórios:
Neste ponto já é possível vizualizar uma animação básica:
Entretanto, vou fazer algumas modificações para deixar o vídeo mais agradável. Primeiramente, com o comando abaixo, olhe a lista de autores(as) dos commits, perceba que a mesma pessoa as vezes usa nomes diferentes em cada commit.
Com o sed é possível fazer as correções. Eu vou substituir os nomes das pessoas pelos nomes dos respectivos locais de trabalho, exemplos de algumas substituições:
Vou deletar alguns commits que não consegui identificar exatamente o(a) autor(a):
Se quiser, é possível verificar a quantidade de commits por local:
Crie um diretório ~/logos com as imagens de cada local com extensão .jpg.
Agora podemos gerar a animação, com algumas opções extras deixando-a mais agradável:
Para exportar o arquivo como mp4, instale o ffmpeg: