Sincronizando Gitea com Github

A sincronização entre o Gitea e o GitHub oferece uma camada extra de versatilidade para o gerenciamento de código, permitindo que repositórios locais e remotos se mantenham em perfeita harmonia. Assim, configurando o espelhamento de forma eficiente, sua equipe pode aproveitar o melhor dos dois mundos: a autonomia e o controle do Gitea aliado à visibilidade e colaboração que o GitHub proporciona. Desse modo, com esses passos, é possível centralizar o desenvolvimento localmente e garantir que as atualizações estejam sempre refletidas na nuvem.

O Gitea tem se destacado como uma solução eficiente e flexível para hospedar e gerenciar repositórios de código de maneira independente, com uma experiência similar ao GitHub. Assim, uma de suas grandes vantagens é a possibilidade de integração com outras plataformas, permitindo que o Gitea funcione em conjunto com repositórios remotos como o próprio GitHub. Então, no artigo Sincronizando Gitea com Github, exploraremos como configurar um espelhamento entre eles.

Bom, além desse artigo, aqui no blog também temos diversos outros artigos sobre kubernetes, desenvolvimento, gestão, devops, etc. Veja alguns exemplos: Diferenças entre Paradigmas, Axiomas e HipótesesDesenvolver na empresa ou comprar prontoFuja da otimização prematura, entre outros.

Compreendendo o Gitea

O Gitea é um sistema OpenSource para armazenamento centralizado de código fonte, muito semelhante ao próprio Github. O artigo Usando um “Github” onpremise explica como instalar e configurar.

Imagem do Gitea com alguns repositórios sincronizados.

Espelhamento de repositório

Pode ser muito conveniente usar o Gitea garantindo que ele esteja sincronizado com outro servidor de Git, que pode ser o próprio Github. A seguir você verá como fazer esse espelhamento do modo mais prático. Note que quando um repositório já existe no Github você quer vê-lo no Gitea bastando clicar no botão ‘Nova Migração’, e assim adicionar o endereço do repositório e o token de acesso. O Gitea chama isso de uma sincronização no sentido pull. O artigo explorará mais detalhadamente o sentido push, ou seja, do Gitea para o Github.

Configurando o Github para receber o espelhamento

Nosso objetivo é sincronizar um repositório chamado ‘AnselmeBlog’ que existe no Gitea mas não no Github. Para tal preciso criar um repositório, que chamo de anselme-blog-sync (https://github.com/Anselming/anselme-blog-sync).

Tela de criação de um novo repositório no github para sincronização

Depois preciso configurar o GitHub para poder receber acesso do Gitea. Então vá em: Settings (Configuração) > Developer Settings (Configurações do desenvolvedor) > Personal Access Token (Tokens pessoais) > Tokens (classic). Crie um token com as permissões de repo.

Tela de criação de um token no Github para sincronização com o Gitea

Após feito isso, o próprio Github te mostrará um token que possibilitará o acesso através do Gitea. A imagem abaixo mascara o token que eu gerei para meus testes.

Tela que exibe o token gerado, para sincronização do Gitea com o Github

Configurando o Gitea para espelhar com o Github

Agora, dentro do Gitea, entre em ‘Configuração’ e procure por ‘Opções de espelhamento’, como pode ver na imagem a seguir. Você deve incluir a URL do repositório git, inserir o usuário (e-mail) e senha (token). Você também pode indicar que a sincronização ocorrerá automaticamente a cada commit, ou ainda em intervalos de tempo definido.

Tela de configuração do Gitea para espelhamento que possibilidade a sincronização dos arquivos do Gitea com o Github

A tela a seguir mostra o espelhamento configurado. Após clicar no botão azul (seta circular) uma sincronização será forçada e a data de atualização deve ser atualizada.

Veja a última imagem que mostra o arquivo ‘novo-arquivo.txt’ sincronizado no seu Github normalmente.

Tela do repositório do Github anselme-blog-sync que sincroniza os dados do rerpositorio AnselmeBlog do Gitea

Conclusão de Sincronizando Gitea com Github

Em resumo, a sincronização entre o Gitea e o GitHub oferece uma camada extra de versatilidade para o gerenciamento de código, permitindo que repositórios locais e remotos se mantenham em perfeita harmonia. Assim, configurando o espelhamento de forma eficiente, sua equipe pode aproveitar o melhor dos dois mundos: a autonomia e o controle do Gitea aliado à visibilidade e colaboração que o GitHub proporciona. Desse modo, com esses passos, é possível centralizar o desenvolvimento localmente e garantir que as atualizações estejam sempre refletidas na nuvem.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.