Desenvolvimento

27 set, 2013

Sincronize o Bitbucket com o Github automaticamente

Publicidade

Uma vez que sou louco por automação, quando conheci Travis CI, fiquei inexplicavelmente animado – a execução automática dos meus testes para o hgapi a partir do repositório, em oposição a um gancho (hook) antes do push (como estava configurado desde o início), evitaria erros embaraçosos, como esquecer de acrescentar um novo arquivo ao repositório e ter nele uma versão que não funciona. Eu preciso apenas configurar algum serviço para sincronizar um mirror do GitHub e então… bem… é…?

Acontece que não há tal serviço. Uma centena de conselhos sobre como espelhar utilizando gancho de push em seu repositório local, mas uma vez que eu nem sempre faço os commits do mesmo computador, precisaria manter todas as instâncias (incluindo as futuras) configuradas apropriadamente, e eu nunca mais poderia ser “um cadiquinho” preguiçoso novamente e aceitar um pull request em vez de fazer o push a partir do meu repositório local. Isso é, para mim, um estado inaceitável das coisas.

Portanto, gastei algumas horas configurando um novo serviço batizado de BitSyncHub, que aceitará requisições POST do Bitbucket e sincronizará um repositório (Mercurial) com seu mirror GitHub. Ele é configurado utilizando UWSGI, hgapi com hg-git e Celery para controle de tarefas. Ele é um pouco rústico para o que se propõem, já que não relata erros (uma vez que não executa simultâneamente) e sempre faz o push para o Github utilizando o mesmo certificado e usuário, mas eu não andei tendo tempo de inspecioná-lo nos últimos tempos (recentemente), e é preciso configurá-lo apenas uma vez e ele manterá os seus branches em sincronia.

***

Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://blaag.haard.se/Synchronize-Bitbucket-to-Github-automatically/#disqus_thread