- Ao mover alguns projetos do GitHub para o Codeberg, o texto organiza uma forma de começar a migração com o mínimo de esforço
- Com o recurso de importação de repositórios do Codeberg, é possível fazer uma migração completa, incluindo issues, PRs e releases, e a UI e o fluxo de trabalho são parecidos com os do GitHub
- A hospedagem de páginas estáticas pode ser substituída por
codeberg.page, e também existem alternativas como grebedoc.dev e statichost.eu
- A maior dificuldade é montar o ambiente de CI, pois é preciso abrir mão dos runners macOS e da cota gratuita de execução do GitHub, com possibilidade de substituição por Forgejo Actions ou Woodpecker CI
- Depois da migração, a proposta é manter o repositório no GitHub como arquivo somente leitura ou espelho, para não cortar completamente a conexão com o ecossistema open source
Processo de migração do GitHub para o Codeberg
- Com base na experiência de começar a migrar alguns repositórios do GitHub para o Codeberg, o texto explica o nível real de dificuldade e a praticidade do processo de migração
- O autor vinha adiando a mudança por achar que o Codeberg ainda não estava pronto o suficiente, mas, dependendo do projeto, a migração pode ser surpreendentemente simples
- O objetivo não é uma configuração perfeita, mas sim encontrar a maneira mais fácil de começar a migração
-
Migração de repositórios e issues
- O Codeberg oferece a função de importação (import) de repositórios do GitHub, permitindo migrar junto issues, PRs, releases e seus artefatos
- Nesse processo, números das issues, labels e informações dos autores são preservados
- A UI do Codeberg é quase idêntica à do GitHub, oferecendo uma experiência muito mais simples do que os procedimentos complexos normalmente necessários ao migrar de outros issue trackers para o GitHub
-
Hospedagem de páginas estáticas
- Para quem usava o GitHub Pages, é possível usar codeberg.page como substituto
- Não há garantia formal de disponibilidade (SLO), mas o autor comenta que, na prática, não chegou a enfrentar downtime
- O funcionamento consiste em fazer push do HTML para uma branch, em uma estrutura semelhante ao GitHub Pages
- Como alternativas, também é possível usar grebedoc.dev ou statichost.eu
-
Dificuldades com o ambiente de CI (integração contínua)
- A parte mais complicada da migração é montar o ambiente de CI
- O GitHub oferece runners macOS gratuitos e capacidade de execução ilimitada para repositórios públicos, mas no Codeberg isso precisa ser abandonado
- Como solução, é possível usar cross-compilation por linguagem e self-hosting de runners do Forgejo Actions
-
Forgejo Actions vs Woodpecker CI
- No Codeberg, o Woodpecker CI é mais estável, mas o Forgejo Actions oferece um ambiente mais familiar para quem já usa GitHub Actions
- A UI e a sintaxe YAML são quase idênticas, e a maior parte dos workflows existentes do GitHub Actions funciona sem alterações relevantes
- Como exemplo, em um workflow do GitHub Actions que usava
uses: dtolnay/rust-toolchain, no Forgejo Actions basta trocar para uses: https://github.com/dtolnay/rust-toolchain
- Atualmente, a documentação do Forgejo Actions no Codeberg não está atualizada, e há um PR relacionado a isso
-
Quando é necessário um runner macOS
- Se o build em macOS for indispensável, é possível continuar usando o GitHub Actions e espelhar os commits do repositório no Codeberg para o GitHub
- Também é possível configurar o Forgejo Actions para consultar a API do GitHub e sincronizar o status de CI com o Codeberg
- O autor também testou outros serviços de CI com builds em macOS, mas a integração com o Codeberg não foi tão simples quanto com o GitHub Actions
-
Como lidar com o repositório no GitHub
- Depois da migração, o repositório no GitHub é arquivado após editar o README
- Também é possível configurar o Codeberg para fazer push de commits para o GitHub, mas nesse caso os usuários ainda podem abrir PRs e comentar em issues
- Algumas pessoas desativam a função de issues do repositório no GitHub, mas isso faz com que todas as issues passem a retornar 404, e não é possível desativar PRs
- Como exemplo, o repositório
libvirt/libvirt usa uma GitHub Action que fecha automaticamente todos os PRs
- Essa abordagem pode ter efeitos negativos sobre o self-hosting e o ecossistema open source em geral
- Os usuários podem perder a motivação para melhorar otimizações de build ou a frequência de download de arquivos de release
- Durante o período de transição, também vale considerar manter um espelho somente leitura ou usar GitHub Pages e Actions em paralelo
1 comentários
Comentários do Hacker News
Não desgosto do Codeberg em si, mas ele não é um substituto completo do GitHub
Há muitas limitações para hospedar repositórios de código pessoais ou scripts experimentais, e os repositórios privados são limitados a 100MB
Também não é possível hospedar uma homepage como no GitHub Pages. Para esse tipo de uso, uma alternativa mais realista é fazer self-host do Forgejo
Isso está bem explicado no FAQ do Codeberg
O motivo de eu colocar projetos OSS no GitHub é simples — a comunidade está lá
Se fosse só para subir código, eu hospedaria direto via SSH ou SFTP
Eu publico só na minha instância pessoal do Gitea e não ligo para estrelas nem divulgação
Eu gerencio todos os meus projetos pessoais com Forgejo self-hosted. Não sinto falta nenhuma do GitHub
Também dá para restringir o acesso com Tailscale e bloquear crawlers de IA
Acho que vai ficar cada vez mais importante avaliar alternativas ao GitHub
Mas o GitHub acabou definindo o padrão de CI e builds multi-arquitetura, o que dificulta a competição de alternativas guiadas pela comunidade
O GitHub oferece muita coisa “de graça”, mas em troca há grande chance de isso ser usado para coleta de dados e treinamento
O Codeberg não suporta repositórios privados, então também não dá para impedir que o Copilot vasculhe repositórios públicos
Segundo o FAQ do Codeberg, se você precisa de projetos privados, a recomendação é fazer self-host do Forgejo
Nossa empresa migrou completamente do GitHub para GitLab self-hosted
Colocamos atrás do Tailscale, então não há dor de cabeça com SSO, e os runners de CI rodam em EKS e em clusters com GPU. Posso ajudar quem estiver pensando em fazer uma migração parecida
Simplesmente dizer “vamos substituir o GitHub” não significa muita coisa. É preciso uma nova proposta de hábitos e de valor
Assim como o GitHub substituiu o SourceForge, a próxima geração de plataformas precisa conectar escrita de código e colaboração em tempo real
Por exemplo, poderia virar algo como o Google Docs, com um commit sendo criado a cada prompt
O Codeberg é idealista, mas na prática tem problemas de estabilidade
Como opera sem Cloudflare, fica vulnerável a ataques DDoS e sofre com quedas frequentes. Quando você não consegue acessar o repositório remoto no meio do desenvolvimento, isso é realmente frustrante
Quase não uso GitHub desde a aquisição pela Microsoft. Gosto mais do workflow simples baseado em email do Sourcehut
Também acho que CI basta ser algo baseado em comandos executáveis localmente
Um repositório de código deveria ser, por natureza, uma estrutura distribuída e federada
Graças ao sistema de assinaturas criptográficas (GPG/SSH) do git, dá para separar a confiança no repositório da confiança no commit
Basta deixar no centro apenas um servidor de chaves e a gestão de namespace, e distribuir o resto