3 puntos por GN⁺ 2025-12-02 | 1 comentarios | Compartir por WhatsApp
  • Describe en detalle el proceso y el resultado de migrar mis proyectos personales y mi sitio web de GitHub a Codeberg
  • Utilicé la función "migrate from GitHub" de Forgejo para migrar por completo repositorios, issues, PR, wikis y releases
  • Realicé la reasignación de enlaces y el manejo de stubs de repositorios de GitHub con scripts automatizados para dejar claro que la migración ya se había hecho
  • En la migración de CI/CD usé Forgejo Actions de Codeberg y armé workflows livianos ajustados a las restricciones del entorno
  • El sitio web se migró sin tiempo de inactividad con git-pages y Grebedoc, y la migración completa se terminó en un fin de semana

Resumen de la migración

  • Migré a Codeberg el sitio que estaba alojado en GitHub Pages y 45 repositorios
    • No se resolvió con un simple clic; fueron necesarias varias etapas de trabajo manual
    • El proceso completo se completó durante un fin de semana y se hizo sin inconvenientes
  • Con este proceso quise mostrar que otros desarrolladores también pueden migrar fácilmente

1er paso: Migración de repositorios

  • Codeberg, basado en Forgejo, ofrece la función “migrate from GitHub”
    • Desde GitHub puedes generar un Personal Access Token (PAT) para traer también metadatos como issues
    • Debido al rate limit de la API de GitHub, al importar varios repositorios a la vez podía fallar
  • Issues, PR, wiki y releases se migraron por completo, dejando sin necesidad las referencias a GitHub

2do paso: Reasignación de enlaces

  • Convertí en bloque los enlaces de GitHub dentro de los repositorios locales a direcciones de Codeberg
    • Utilicé los comandos sed y find para reemplazar texto de manera automática
  • También cambié la URL git remote de cada repositorio a Codeberg y hice push a todos los repositorios

3er paso: Manejo de stubs de repositorios de GitHub

  • Agregué un README de anuncio de migración en los repositorios de GitHub y actualicé la descripción y el enlace de la página principal a Codeberg
    • Escribí scripts de automatización para aplicarlo en lote a varios repositorios
    • Archivé los repositorios con el comando gh repo archive

4to paso: Migración de CI/CD

  • En la documentación de CI de Codeberg se enfatiza el principio de minimizar el consumo de energía
    • Por eso mantuve CI solo en los proyectos estrictamente necesarios (sitio web, compilación de documentación, etc.)
  • Codeberg ofrece dos CI: Woodpecker y Forgejo Actions
    • Elegí Forgejo Actions, similar a GitHub Actions
  • Diferencias principales
    • La mayoría de las Actions funcionan tal cual
    • Solo se proporcionan runners de Linux; no hay macOS ni Windows
    • Hay menos software preinstalado y recursos limitados
    • Con lazy runners es posible distribuir la carga y ejecutar de forma más ecológica
  • Para mejorar el rendimiento de CI usé una imagen de Docker con LaTeX preinstalado, pero volví a la imagen base de Ubuntu por un problema de versión

5to paso: Rehospedaje del sitio web

  • Intenté mover el sitio que estaba en GitHub Pages a Codeberg Pages, pero esa función estaba en modo de mantenimiento
    • Las actualizaciones siguen retrasadas por problemas de complejidad y rendimiento
  • Como alternativa encontré y usé git-pages y Grebedoc
    • Permitió una migración sin interrupciones porque acepta subidas antes del cambio de DNS
    • Soporta redirección del lado del servidor y encabezados personalizados
    • Completé la migración conservando el enlace existente (eldred.fr/fortISSimO)
  • Codeberg tiene previsto hacer una migración gradual a git-pages en el futuro
  • Con mejor satisfacción que GitHub Pages, me uní como patrocinador de Patreon del desarrollador de git-pages

Tiempo invertido

  • Migración de repositorios (1–3): medio día
  • Migración de CI (4): medio día
  • Migración de sitio web (5): varios días incluidas tareas de limpieza de deuda técnica
  • En general, se completó dentro de un fin de semana, un trabajo más simple de lo esperado

Después de la migración

  • No hubo cambios funcionales en el sitio web; solo se redujo la rama master de GitHub
    • Los enlaces permanentes (permalink) siguen funcionando
  • La eliminación de repositorios de GitHub está en espera por la falta de redirecciones
  • Mantengo la cuenta de GitHub para seguir contribuyendo a otros proyectos
  • Al pasar a Codeberg puede haber una posible reducción de contribuyentes, pero algunos usuarios ya crearon cuenta en Codeberg y siguen contribuyendo

Agradecimientos

  • Catherine ‘whitequark’: operación de git-pages y Grebedoc
  • Equipo de SERVFAIL network: suministro de DNS
  • Colaboradores de Codeberg y Forgejo: proveer la base de la migración

1 comentarios

 
GN⁺ 2025-12-02
Opinión en Hacker News
  • Lo que destaca en esta historia de migración no es la parte técnica, sino que la ‘paridad de funciones (feature parity)’ no es realmente el obstáculo
    Codeberg es suficiente para los flujos de trabajo cotidianos, pero le faltan los efectos de red y la inercia que GitHub ha acumulado

    • Proyectos como Tangled.org intentan resolver parcialmente este problema
      Basado en protocolos como Bluesky, está diseñado para que la identidad y la conectividad se mantengan sin importar dónde esté alojado Git
    • El mayor inconveniente que tuve en Codeberg es que la búsqueda de issues es débil
      Es difícil volver a encontrar un issue que claramente vi antes. El rendimiento ha mejorado últimamente, pero si es un proyecto con cientos de issues, conviene hacer primero una migración de prueba
    • GitHub tiene una enorme cantidad de documentación y ejemplos, así que incluso la gente que recién se suma puede adaptarse fácilmente
      En cosas como CI/CD no hace falta que todo el equipo sepa; con que una persona lo domine, alcanza
  • Codeberg es un fork de Gitea, y Gitea es un fork de Gogs
    Ambos forks comenzaron más por razones filosóficas que técnicas, y Joe Chen, creador de Gogs, tuvo un gran mérito

    • En la práctica, Codeberg es un sitio web basado en Forgejo
      Gitea fue forkeado porque un desarrollador acaparó los permisos del repositorio, y Forgejo es un fork creado para recuperar la marca de Gitea
    • Es una broma, pero también se comenta que algún día la comunidad de Codeberg podría dividirse por diferencias ideológicas menores
  • Me pregunto si alguien ha usado Codeberg junto con F-Droid
    Quisiera saber si puede detectar releases automáticamente como GitHub

    • No F-Droid, pero cada vez hay más proyectos que añaden soporte para Codeberg
      Parece que ya se llegó a un efecto umbral (threshold effect)
  • En los últimos días he visto varios proyectos irse de GitHub
    Me pregunto si hay algún incidente o tendencia detrás

    • Podrían influir los problemas de disponibilidad de GitHub, la integración forzada de IA por parte de Microsoft, y que las mejoras funcionales hayan quedado rezagadas por enfocarse en la migración a Azure
    • El anuncio de migración de Zig es una buena referencia
    • Da la impresión de que GitHub está pasando por un fenómeno de colapso de confianza (trust thermocline)
      Las quejas de la comunidad open source se han ido acumulando hasta llegar a un límite
      También parecen influir la controversia por IA y publicidad en Microsoft en general, y el fin del soporte de Windows 10
      El concepto relacionado se planteó por primera vez en este hilo de Twitter
    • Personalmente, estoy cansado del abuso de IA en GitHub
      Siento que estaba mejor cuando aún era basado en Rails
    • Esto parece una especie de fenómeno de Summer of the Shark
      Puede que sea un fenómeno temporal que está recibiendo más atención de la que realmente merece
  • Me pregunto si hay alguna alternativa a GitHub adecuada para equipos pequeños o desarrolladores individuales
    Codeberg parece centrado en FOSS, así que no da la impresión de encajar para uso comercial

    • Puedes alojar por tu cuenta Forgejo, que es la base de Codeberg
      GitLab tiene muchas funciones, pero es pesado de mantener
      Además de eso, hay varias forjas FOSS como Gitea, Gogs, Phorge, etc.
    • El núcleo de GitHub no es la tecnología, sino la red social
    • Yo prefiero sourcehut
      No intenta copiar la UI de GitHub, y me gusta su interfaz inmediata y rápida, casi como trabajar en local
    • A menos que haya una razón especial, lo razonable es seguir usando GitHub
      No hace falta mudarse solo porque “no te gusta Microsoft”
    • Para uso personal estaba buscando un hosting privado de bajo costo como Migadu, pero no encontré nada convincente
      Al final subí proyectos nuevos a Codeberg, y mantengo algunos como mirror privado en GCP
      Sobre eso publiqué este hilo de Ask HN, pero no hubo respuesta
  • Si lees la entrada del blog de eldred.fr, las razones del autor son razonables, pero desde la perspectiva del usuario casi no hay mejora perceptible
    Al probar Codeberg

    • aparece seguido una pantalla de verificación animada que dice “comprobando que no eres un bot”
    • el botón de inicio de sesión con GitHub está escondido y es pequeño
    • la UI es casi igual a la de GitHub, y el README está abajo, lo que resulta incómodo
      Ejemplo: https://codeberg.org/dnkl/foot
      Sería mejor que el README estuviera como página principal
    • al final, una estrategia de copia sin diferenciación no resulta atractiva
    • la “verificación de bot” usa una solución abierta llamada Anubis
      En la versión de pago incluso se puede personalizar la imagen
    • seguir de cerca a GitHub es una decisión pensada para la familiaridad del usuario
      Si lo haces demasiado distinto, la reacción en contra puede ser mayor
      Ocultar el botón de login de GitHub fue una decisión centrada en la comunidad, y si quieres puedes proponerlo con un PR
    • estos problemas incluso podrían ser una señal de problemas más profundos del servicio
    • yo me mudé a Codeberg porque me cansé de la controversia por el entrenamiento de IA en GitHub y de la centralización
      El objetivo era encontrar una alternativa ética con las mismas funciones que GitHub
  • Si el escaneo con IA de GitHub no te parece un problema, me pregunto si hay motivos no políticos para cambiarse

    • Ha habido una caída reciente en la disponibilidad de GitHub, pero qué tanto molesta depende de cada quien
  • Me pregunto si Codeberg ofrece runners de CI gratuitos
    Se estima que GitHub gasta más de 100 millones de dólares al año en CI

    • Según la documentación de Codeberg (docs.codeberg.org/ci), la capacidad es limitada y hay que pedir aprobación tras solicitarlo
    • Personalmente, uso una instancia de Woodpecker junto con Codeberg y me funciona bien
    • Codeberg enfatiza el costo energético de CI/CD
      Pero mencionar el costo ambiental podría más bien desanimar la participación de los usuarios
      Para la gente técnica, es más efectivo plantearlo como un problema de optimización de rendimiento
    • Creo que esta infraestructura de CI es precisamente el foso competitivo (moat) de GitHub
  • Me decepcionó ver que Codeberg exageró un antiguo incidente de spam presentándolo como una “campaña de odio de extrema derecha” y además se felicitó a sí mismo por ello
    Bastaba con admitir que fallaron en prevenirlo, pero lo envolvieron en un marco político
    Enlaces relacionados: issue, discusión en HN, entrada del blog

    • Esa actitud parece una autocomplacencia excesiva
    • Pero si era spam con términos racistas, entonces considero justificada la respuesta de Codeberg
      Si por eso se perdió el respeto, el problema no está en el proyecto sino en esa forma de verlo
  • Yo también alguna vez moví repositorios a Codeberg y luego regresé a GitHub
    No me gustan varias funciones de GitHub, pero a Codeberg le falta esa capacidad de atraer colaboración
    Como mantenedor solitario, la visibilidad y los efectos de red son fundamentales