developer tools

Cómo migrar de GitHub a Codeberg

GitHub Codeberg
Dificultad: Fácil Tiempo estimado: 1-2 horas por repositorio (en su mayoría automatizado)

Guía paso a paso para mover tus repositorios de GitHub a Codeberg, la plataforma alemana sin ánimo de lucro de alojamiento Git. Gratis para código abierto, jurisdicción de la UE y construida sobre Forgejo.

Requisitos previos

  • Cuenta de GitHub con acceso de administrador a los repositorios
  • Cuenta de Codeberg (gratuita)
  • Clave SSH configurada localmente
  • Soltura con la gestión de remotos de Git

Pasos

  1. Crea una cuenta de Codeberg

    Regístrate en codeberg.org con correo electrónico o migra directamente desde GitHub usando el registro OAuth.

  2. Decide qué repositorios migrar

    Proyectos de código abierto: migrar completamente. Proyectos personales: migrar o duplicar. Código propietario comercial: considera Forgejo autoalojado en Hetzner.

  3. Usa la importación desde GitHub de Codeberg

    Nuevo Repositorio > Migración > GitHub. Autentica vía OAuth e importa issues, pull requests, wiki y etiquetas.

  4. Actualiza las referencias de CI/CD

    Codeberg admite Woodpecker CI (similar a GitHub Actions). Traduce tus .github/workflows/ a .woodpecker.yml o usa CI externo.

  5. Configura claves SSH y remotos de Git

    Añade tu clave SSH a Codeberg y actualiza los remotos locales de Git de github.com a codeberg.org.

  6. Actualiza las insignias del README y referencias externas

    Sustituye las insignias de GitHub (estado de build, versión) por equivalentes compatibles con Codeberg.

  7. Configura un mirror en GitHub (opcional)

    Mantén GitHub como mirror de solo lectura para visibilidad mientras Codeberg es la fuente de verdad.

  8. Archiva o elimina los repositorios de GitHub

    Tras 30 días de confianza, archiva (eliminación blanda) o elimina completamente la copia en GitHub.

¿Por qué migrar de GitHub a Codeberg?

GitHub es la plataforma de alojamiento Git dominante en 2026. También es propiedad de Microsoft, está alojada en infraestructura estadounidense sujeta a la CLOUD Act y cada vez más se convierte en fuente de datos de entrenamiento de IA tanto si has optado como si no. Para proyectos europeos de código abierto, desarrolladores individuales y organizaciones que quieren su código bajo jurisdicción de la UE, Codeberg es la alternativa creíble.

Codeberg es un servicio alemán sin ánimo de lucro de alojamiento Git construido sobre Forgejo (el fork mantenido por la comunidad de Gitea). Gratis para proyectos de código abierto, financiado por donaciones, residente en la UE y construido explícitamente en torno a los valores de la sostenibilidad FOSS y la soberanía digital. Lo más parecido que tiene la comunidad de código abierto a un ‘GitHub pero europeo’.

Para código propietario comercial, la alternativa natural es Forgejo autoalojado en Hetzner: el mismo software, alojado en tu propia infraestructura, con un coste de unos 5-30 €/mes total sin importar el tamaño del equipo. Esta guía se centra específicamente en Codeberg, pero los pasos de migración funcionan idénticamente para Forgejo autoalojado.

Pasos detallados de la migración

Paso 1: Crea una cuenta de Codeberg

Visita codeberg.org y crea una cuenta. Gratis, solo requiere correo electrónico. Sin tarjeta de crédito.

Para organizaciones que migran, crea una cuenta de organización tras el registro individual: te permite transferir o duplicar repositorios en el namespace de la organización.

Paso 2: Decide qué migrar

Sé selectivo. La migración es más rápida cuando no arrastras diez años de repositorios muertos.

Migrar completamente:

  • Proyectos de código abierto activos
  • Proyectos personales que te dolería perder si GitHub se volviera hostil
  • Repositorios con código sensible o lógica de negocio

Considera duplicar (sincronización de solo lectura GitHub → Codeberg):

  • Repos inactivos pero referenciados
  • Proyectos públicos donde la visibilidad de GitHub aún importa

Saltar / archivar:

  • Experimentos personales hace tiempo muertos
  • Repos que existen solo como referencias o forks

Para código propietario comercial, evalúa Forgejo autoalojado en Hetzner en lugar de Codeberg. La misión de Codeberg es el alojamiento comunitario de código abierto; los repos comerciales se aceptan, pero el carácter de la plataforma encaja mejor con el trabajo FOSS.

Paso 3: Usa la importación desde GitHub de Codeberg

Codeberg tiene una importación integrada desde GitHub:

  1. Haz clic en + → Nueva migración
  2. Elige GitHub
  3. Autentícate con OAuth de GitHub (o usa un token de acceso personal)
  4. Selecciona el repositorio a importar
  5. Elige qué migrar:
    • ✅ Wiki
    • ✅ Issues
    • ✅ Etiquetas
    • ✅ Pull Requests (como Issues, ya que los PRs de GitHub ↔ PRs de Codeberg no son 1:1 compatibles)
    • ✅ Releases
    • ✅ Hitos
  6. Haz clic en Migrar repositorio

Para repositorios con miles de issues, la migración puede llevar 30-60 minutos. No te preocupes por hacer otra cosa mientras: Codeberg lo gestiona de forma asíncrona.

Paso 4: Actualiza las referencias de CI/CD

Codeberg usa Woodpecker CI (análogo a GitHub Actions). Traduce tus .github/workflows/*.yml a .woodpecker.yml:

# Ejemplo: .woodpecker.yml
steps:
  build:
    image: node:20
    commands:
      - npm install
      - npm run build
      - npm test

Para flujos complejos de GitHub Actions, la traducción puede no ser trivial. Alternativas pragmáticas:

  • Proveedores de CI externos que admiten Codeberg: Drone Cloud, CircleCI (con su integración Git genérica)
  • CI autoalojado en Hetzner: GitLab Runner apuntando a Codeberg, o Woodpecker autoalojado

Para la mayoría de los proyectos, la traducción del flujo lleva unas horas y produce una configuración de CI más sencilla y legible.

Paso 5: Configura claves SSH y remotos de Git

Añade tu clave SSH:

  1. Codeberg → Ajustes de usuario → Claves SSH/GPG
  2. Pega tu clave pública

Actualiza los remotos locales de Git:

# Cambia el remoto de GitHub a Codeberg
git remote set-url origin git@codeberg.org:usuario/nombre-repo.git

# O añade Codeberg como remoto adicional (para el periodo de ejecución paralela)
git remote add codeberg git@codeberg.org:usuario/nombre-repo.git
git push codeberg --all
git push codeberg --tags

Paso 6: Actualiza los README e insignias

Las insignias y enlaces específicos de GitHub necesitan actualización:

  • Insignias de estado de build → usa las insignias de Woodpecker CI
  • Insignias de versión → Codeberg admite los patrones de shields.io
  • Recuentos de descarga → las releases de Codeberg tienen APIs similares
  • Enlaces a issues en la documentación → actualiza de github.com/usuario/repo/issues a codeberg.org/usuario/repo/issues

Paso 7: Configura un mirror en GitHub (opcional)

Para proyectos donde la visibilidad de GitHub aún importa (proyectos de código abierto descubiertos a través de la búsqueda de GitHub), mantén GitHub como mirror de solo lectura:

# Codeberg tiene una función integrada de 'Push Mirror'
# Ajustes del repositorio > Repositorio > Push Mirror
# Añade github.com/usuario/repo con un token de acceso personal

Esto mantiene Codeberg como tu fuente de verdad mientras conservas presencia en GitHub.

Paso 8: Archiva o elimina los repos de GitHub

Tras 30 días de confianza:

  • Archivar (recomendado): Ajustes del repositorio → Archivar este repositorio. Solo lectura, preserva el historial, indica ‘movido’ a los visitantes.
  • Eliminar (si estás seguro): Ajustes → Zona de peligro → Eliminar este repositorio.

Ambas opciones funcionan. Archivar es la opción por defecto más segura: preserva el rastro de migración y te da fallback si descubres algo que no migró.

Consejos para una migración fluida

  • Migra un repositorio primero como prueba. Elige un repo de poco riesgo para validar el flujo antes de comprometerte con una migración masiva.
  • La complejidad de GitHub Actions es la principal fricción. Si tus flujos usan mucho Actions de terceros, planifica tiempo para traducirlos o sustituirlos.
  • La API de Codeberg es similar pero no idéntica a la de GitHub. Las herramientas personalizadas que llaman a la API de GitHub necesitarán actualizarse para usar la API compatible con Forgejo de Codeberg.
  • Los límites de recursos de Codeberg están pensados para FOSS. Si tienes repos muy grandes o ejecutas CI intenso, considera Forgejo autoalojado en Hetzner: el mismo software, tus propios recursos.
  • Dona. Codeberg se financia con donaciones. Si lo usas a largo plazo, contribuye para mantenerlo sostenible. 5-10 €/mes son significativos para el proyecto.
  • Para organizaciones que migran grandes bases de código: considera Forgejo autoalojado como principal con un mirror en Codeberg para proyectos de la comunidad. Lo mejor de ambos: control total + visibilidad donde importa.
  • No migres todo de golpe. La mayoría de las empresas que migraron con éxito a Codeberg lo hicieron proyecto por proyecto durante 3-6 meses, validando cada uno antes de seguir.

¿Te resultó útil?