$ pwd
Índice
Migrando repositórios do Gitlab para o Github
Na T2I Group temos uma instância(self-hosted) do Gitlab em uma VPS para hospedarmos os nossos repositórios.
Utilizamos esta instância por pelo menos 2 anos, até começar a ter problemas para atualizar o Gitlab. Também começamos a perceber que a interface do Gitlab era muito poluída e lenta.
Então decidimos a migrar todos os nossos repositórios para o Github, visto vez que a maioria dos desenvolvedores já conhece a plataforma.
Processo de migração
Para migrar os repositórios eu criei uma conta para a T2I Group no Github e em seguida criei algumas Organizações para a FatorBLE, Projeto MIP e para novo Projeto MIP, que chamamos MIPv2.
Em seguida fiz a importação dos repositórios de forma manual, clicando no botão "+" na página inicial do Github.
Na sequência escolhia a Organização para importar o repositório.
Porém, esse processo tem um problema. Ele não importa as issues e Merge Requests.
Importando issues e merge requests
Para realizar esse processo eu utilizei um projeto chamado node-gitlab-2-github.
Esse projeto é bem simples de utilizar, basta copiar o arquivo sample_settings.ts
para settings.ts
e editar o arquivo com as chaves de acesso do Gitlab e do Github e rodar o projeto.
Na primeira execução, o node-gitlab-2-github
lista todos os repositórios que a chave de acesso do Gitlab tem acesso. Com isso em mãos é só editar o arquivo com o código, nome e grupo do repositório no Gitlab e nome do repositório no Github e rodar o projeto.
Pronto, o node-gitlab-2-github
vai importar todas as issues abertas e fechadas para o Github, e os Merge Requests. Se o node-gitlab-2-github
detectar a presença da branch aberta para o Merge Request, ele cria um Pull Request. Caso ele não detectar, ele cria uma issue com o conteúdo do Merge Request.
Conclusão
Em algumas horas eu consegui importar dezenas de repositórios da nossa instância privada do Gitlab para o Github, sem perder absolutamente nada de informação no processo.
Todos os projetos que possuíam issues e Merge Requests foram importados com sucesso no Github.