3 pontos por GN⁺ 2025-12-02 | 1 comentários | Compartilhar no WhatsApp
  • Detalho o processo e o resultado de migrar meus projetos pessoais e meu site do GitHub para o Codeberg
  • Usei a função "migrate from GitHub" do Forgejo para migrar completamente repositórios, issues, PR, wiki e releases
  • Realizei a realocação do repositório e a marcação da migração com stubs do GitHub de forma automatizada para deixar explícito que a migração ocorreu
  • Na migração de CI/CD, usei o Forgejo Actions do Codeberg e montei workflows mais leves conforme as restrições do ambiente
  • O site foi migrado sem downtime usando git-pages e Grebedoc, concluindo a migração inteira durante o fim de semana

Visão geral da migração

  • Migrei um site que estava no GitHub Pages e 45 repositórios para o Codeberg
    • Não foi algo que terminasse com um simples clique; exigiu várias etapas manuais
    • O processo completo foi concluído em um fim de semana, sem grandes inconvenientes
  • O objetivo foi mostrar que outros desenvolvedores também conseguem migrar facilmente

1ª etapa: Migração de repositórios

  • O Codeberg é baseado no Forgejo e oferece o recurso "migrate from GitHub"
    • Com a criação de um Personal Access Token (PAT) no GitHub, é possível trazer também metadados como issues
    • Devido ao rate limit da API do GitHub, migrar vários repositórios ao mesmo tempo podia falhar
  • Issues, PR, wiki e releases foram totalmente migrados, tornando desnecessário manter referências ao GitHub

2ª etapa: Redirecionamento de links

  • Converteu em lote os links do GitHub para endereços do Codeberg no repositório local
    • Usei sed e find para substituir texto de forma automática
  • Alterei a URL git remote de cada repositório para o Codeberg e fiz push em todos os repositórios

3ª etapa: Tratamento de stubs de repositórios do GitHub

  • Adicionei um README de anúncio de migração aos repositórios do GitHub e atualizei a descrição e o link da homepage para o Codeberg
    • Escrevi um script de automação para aplicar essa alteração em lote em vários repositórios
    • Archivei os repositórios com o comando gh repo archive

4ª etapa: Migração de CI/CD

  • A documentação de CI do Codeberg destaca o princípio de minimizar consumo de energia
    • Por isso, mantive CI apenas nos projetos em que ela era realmente necessária (site, build de documentação etc.)
  • O Codeberg oferece duas opções de CI: Woodpecker e Forgejo Actions
    • Escolhi o Forgejo Actions, por ser similar ao GitHub Actions
  • Principais diferenças
    • A maior parte dos Actions funciona sem alterações
    • Só há runners Linux, sem suporte para macOS e Windows
    • Há menos software instalado e recursos limitados
    • Com lazy runners, é possível ter distribuição de carga e execução mais ecológica
  • Para melhorar a performance da CI, usei uma imagem Docker com LaTeX pré-instalado, mas voltei para a imagem Ubuntu padrão por problemas de versão

5ª etapa: Rehospedagem do site

  • Tentei migrar o site que rodava no GitHub Pages para Codeberg Pages, porém esse recurso estava em modo de manutenção
    • A atualização ficou atrasada por questões de complexidade e performance
  • Encontrei e usei git-pages e Grebedoc como alternativa
    • Com suporte a upload antes da mudança de DNS, foi possível fazer a transição sem downtime
    • Há suporte para redirecionamento no servidor e cabeçalhos customizados
    • A migração foi concluída mantendo o link antigo (eldred.fr/fortISSimO)
  • O Codeberg tem planos de fazer uma migração gradual para o git-pages no futuro
  • Como o resultado ficou melhor que no GitHub Pages, passei a apoiar no Patreon os desenvolvedores do git-pages

Tempo gasto

  • Migração de repositórios (etapas 1~3): meio dia
  • Migração de CI (etapa 4): meio dia
  • Migração do site (etapa 5): alguns dias, incluindo a quitação de dívida técnica
  • No total, concluído dentro de um fim de semana, com trabalho mais simples do que o esperado

Depois da migração

  • Nenhuma regressão funcional no site; apenas a branch master no GitHub foi reduzida
    • Permalinks continuam funcionando
  • A exclusão dos repositórios do GitHub está pendente por falta de redirecionamento
  • A conta do GitHub foi mantida para contribuições em outros projetos
  • Ao migrar para o Codeberg, pode haver redução no número de contribuidores, mas alguns usuários já criaram conta no Codeberg e seguem contribuindo

Agradecimentos

  • Catherine 'whitequark': operação do git-pages e do Grebedoc
  • Equipe da SERVFAIL network: provimento de DNS
  • Contribuidores do Codeberg e do Forgejo: disponibilização da base para migração

1 comentários

 
GN⁺ 2025-12-02
Opiniões do Hacker News
  • O que chama atenção neste relato de migração não é a parte técnica, mas o fato de que a chamada “paridade de recursos” (feature parity) não é o verdadeiro obstáculo
    O Codeberg é suficiente para fluxos de trabalho do dia a dia, mas não tem os efeitos de rede e a inércia que o GitHub acumulou

    • Projetos como o Tangled.org tentam resolver parte desse problema
      Com base em protocolos como o Bluesky, eles são projetados para que identidade e conectividade sejam mantidas independentemente de onde o Git estiver hospedado
    • O maior incômodo que tive no Codeberg foi a busca de issues fraca
      É difícil reencontrar uma issue que eu tinha certeza de já ter visto antes. O desempenho melhorou recentemente, mas em projetos com centenas de issues vale a pena fazer uma migração de teste primeiro
    • O GitHub tem uma enorme quantidade de documentação e exemplos, então até quem acabou de entrar consegue se adaptar com facilidade
      Em coisas como CI/CD, não é necessário que o time inteiro entenda; basta uma pessoa dominar bem
  • O Codeberg é um fork do Gitea, e o Gitea é um fork do Gogs
    Ambos os forks começaram mais por razões filosóficas do que técnicas, e Joe Chen, criador do Gogs, teve grande mérito nisso

    • Na prática, o Codeberg é um site baseado em Forgejo
      O Gitea surgiu como fork porque um desenvolvedor monopolizou as permissões do repositório, e o Forgejo foi criado como fork para recuperar a marca do Gitea
    • Em tom de brincadeira, também se comenta que um dia a comunidade do Codeberg pode acabar se dividindo por pequenas diferenças ideológicas
  • Fico curioso se alguém já usou Codeberg junto com o F-Droid
    Queria saber se ele consegue detectar releases automaticamente, como o GitHub

    • Não exatamente no F-Droid, mas está aumentando o número de projetos que adicionam suporte ao Codeberg
      Parece que agora chegou a um efeito de limiar (threshold effect)
  • Nos últimos dias vi vários projetos saindo do GitHub
    Fico me perguntando se houve algum incidente ou se existe alguma tendência por trás disso

    • Pode ser por causa de problemas de disponibilidade do GitHub, da integração forçada de IA pela Microsoft, e do fato de melhorias de recursos terem ficado para trás enquanto focavam na migração para o Azure
    • O anúncio da migração do Zig é uma boa referência
    • Parece que o GitHub está passando por um fenômeno de colapso de confiança (trust thermocline)
      As reclamações da comunidade open source foram se acumulando até chegar a um limite
      A polêmica sobre IA e publicidade em torno da Microsoft como um todo, além do fim do suporte ao Windows 10, também parecem influenciar
      O conceito relacionado foi apresentado pela primeira vez nesta thread do Twitter
    • Pessoalmente, já cansei do abuso de IA no GitHub
      Acho que a época em que ele era baseado em Rails era melhor
    • Isso parece meio que um fenômeno de Summer of the Shark
      Pode ser apenas algo temporário, recebendo atenção excessiva em relação ao que realmente é
  • Queria saber se há alguma alternativa ao GitHub adequada para equipes pequenas ou desenvolvedores individuais
    O Codeberg parece centrado em FOSS, então não me parece ideal para uso comercial

    • É possível hospedar por conta própria o Forgejo, que é a base do Codeberg
      O GitLab tem muitos recursos, mas é pesado de manter
      Além disso, há várias outras forjas FOSS, como Gitea, Gogs e Phorge
    • O principal do GitHub não é a tecnologia, e sim a rede social
    • Eu prefiro o sourcehut
      Gosto do fato de ele não tentar copiar a UI do GitHub e de ter uma interface imediata tão rápida quanto algo local
    • Se não houver um motivo específico, continuar usando o GitHub é algo racional
      Não há necessidade de migrar só porque “não gosto da Microsoft”
    • Para uso pessoal, eu estava procurando uma hospedagem privada de baixo custo como a Migadu, mas não encontrei nada ideal
      No fim, subi projetos novos no Codeberg e mantenho alguns como espelho privado no GCP
      Também postei esta thread no Ask HN, mas não houve resposta
  • Olhando o post do blog em eldred.fr, os motivos do autor parecem razoáveis, mas do ponto de vista do usuário a melhoria percebida é quase nenhuma
    Ao usar o Codeberg

    • a tela animada de verificação “confirmando que você não é um bot” aparece com frequência
    • o botão de login com GitHub fica escondido e pequeno
    • a UI é quase idêntica à do GitHub, e o README fica embaixo, o que é incômodo
      Exemplo: https://codeberg.org/dnkl/foot
      Seria melhor deixar o README como página principal
    • no fim, uma estratégia de cópia sem diferenciação não é atraente
    • a “verificação anti-bot” usa uma solução aberta chamada Anubis
      Na versão paga, dá até para personalizar as imagens
    • seguir o GitHub de perto é uma escolha para aproveitar a familiaridade do usuário
      Se ficar diferente demais, a reação negativa pode ser ainda maior
      Esconder o botão de login do GitHub foi uma decisão orientada pela comunidade, e se quiser dá até para sugerir via PR
    • esses problemas podem até ser sinais que revelam questões mais profundas do serviço
    • eu me mudei para o Codeberg por cansaço com a polêmica do treinamento de IA no GitHub e com a centralização
      O objetivo era encontrar uma alternativa ética com os mesmos recursos do GitHub
  • Se o escaneamento por IA no GitHub não for um problema, fico pensando se há mesmo necessidade de migrar por motivos não políticos

    • Houve uma queda recente de disponibilidade no GitHub, mas o grau de incômodo depende de cada um
  • Fico curioso se o Codeberg oferece runners gratuitos de CI
    Estima-se que o GitHub gaste mais de 100 milhões de dólares por ano com CI

    • Segundo a documentação do Codeberg (docs.codeberg.org/ci), a capacidade é limitada e é preciso pedir aprovação
    • Pessoalmente, uso uma instância do Woodpecker junto com o Codeberg e funciona bem
    • O Codeberg enfatiza o custo energético de CI/CD
      Mas mencionar o custo ambiental pode acabar desestimulando a participação dos usuários
      Para pessoas técnicas, costuma ser mais eficaz abordar isso como uma questão de otimização de desempenho
    • Acho que essa infraestrutura de CI é justamente o grande fosso competitivo (moat) do GitHub
  • Fiquei decepcionado ao ver que o Codeberg, no passado, exagerou um incidente de spam como se fosse uma “campanha de ódio de extrema direita” e ainda usou isso para se autopromover
    Bastava ter admitido que falhou na prevenção, mas preferiram enquadrar tudo politicamente
    Links relacionados: issue, discussão no HN, post no blog

    • Essa postura parece autoelogio excessivo
    • Mas se era spam com termos racistas, então considero a resposta do Codeberg justificável
      Se alguém perdeu o respeito por isso, o problema não está no projeto, mas nessa visão
  • Eu também já migrei repositórios para o Codeberg e depois voltei ao GitHub
    Não gosto de vários recursos do GitHub, mas o Codeberg não tem a força de atração para colaboração
    Como mantenedor solo, eu preciso muito de visibilidade e efeito de rede