Forgejo: Repositorios - crear, clonar, configurar
Capitulo 7: Repositorios en Forgejo
Un repositorio es la unidad basica de trabajo en Forgejo. Este capitulo cubre todo el ciclo de vida de un repositorio: creacion, clonado, configuracion y funcionalidades avanzadas como mirrors y templates.
Crear un repositorio nuevo
Desde la interfaz web, accede a tu perfil y selecciona + New Repository (o el icono de signo mas en la barra superior).
Opciones de creacion
Nombre del repositorio: debe ser unico dentro de tu usuario u organizacion. Se permite letras, numeros, guiones y guiones bajos.
Descripcion: campo opcional pero recomendado. Aparece en la pagina principal del repositorio y en los listados.
Visibilidad:
- Publico: cualquier persona puede verlo, incluso sin cuenta
- Privado: solo los colaboradores con acceso pueden verlo
- Interno: visible para todos los usuarios autenticados de la instancia
Inicializar el repositorio: si activas esta opcion, Forgejo hace el primer commit automaticamente con los archivos seleccionados:
- README.md
- .gitignore (seleccionas la plantilla por lenguaje)
- Licencia (seleccionas entre MIT, Apache 2.0, GPL v3, etc.)
Si planeas hacer git push desde un repositorio existente, no inicialices el repositorio para evitar conflictos.
Clonar un repositorio
Forgejo ofrece dos protocolos para clonar: HTTP y SSH.
Clonado por HTTP
git clone https://tu-dominio.com/usuario/mi-proyecto.git
Con HTTP necesitas autenticarte en cada operacion remota (push, pull). Puedes evitarlo configurando un token de acceso en la URL:
git clone https://[email protected]/usuario/mi-proyecto.git
O bien configurar el credential helper de git para que recuerde las credenciales.
Clonado por SSH
git clone [email protected]:usuario/mi-proyecto.git
SSH no requiere ingresar credenciales en cada operacion una vez configurada la clave. Es el metodo recomendado para uso diario. El capitulo 8 explica como configurar claves SSH.
Push y Pull basico
# Clonar el repositorio
git clone [email protected]:usuario/mi-proyecto.git
cd mi-proyecto
# Hacer cambios y subirlos
git add archivo.txt
git commit -m "feat: agregar archivo de ejemplo"
git push origin main
# Traer los cambios del remoto
git pull origin main
Para ver los remotos configurados:
git remote -v
# origin [email protected]:usuario/mi-proyecto.git (fetch)
# origin [email protected]:usuario/mi-proyecto.git (push)
Archivos especiales reconocidos por Forgejo
Forgejo detecta y procesa automaticamente los siguientes archivos en la raiz del repositorio (o en .forgejo/):
README.md
Se renderiza en la pagina principal del repositorio. Forgejo soporta Markdown con GFM (GitHub Flavored Markdown), incluyendo tablas, listas de tareas y bloques de codigo con resaltado de sintaxis.
LICENSE
Si el archivo se llama LICENSE, LICENSE.txt o LICENSE.md, Forgejo lo detecta y muestra el tipo de licencia en la sidebar del repositorio.
.gitignore
Git lo usa para excluir archivos del control de versiones. No tiene efecto directo en la UI de Forgejo, pero es una buena practica incluirlo.
CODEOWNERS
Define que usuarios o equipos son responsables de revisar cambios en partes especificas del codigo:
# Sintaxis: patron propietario
* @usuario-defecto
/docs/ @equipo-docs
*.go @usuario-go @usuario-go2
src/api/ @equipo-backend
Cuando un PR toca archivos que coinciden con un patron, Forgejo solicita revision automaticamente a los propietarios definidos.
Templates de repositorio
Un template de repositorio permite crear nuevos repositorios con una estructura predefinida de archivos, ramas y configuracion.
Crear un template
- Crea o usa un repositorio existente con la estructura deseada
- Ve a Settings del repositorio
- En la seccion Advanced Settings, activa Template Repository
- Guarda los cambios
El repositorio aparecera marcado con una insignia de “template” en los listados.
Usar un template
Al crear un nuevo repositorio, aparece la opcion Repository template. Selecciona el template deseado. Forgejo copiara:
- Todos los archivos y directorios
- La rama principal con el historial de commits del template
El nuevo repositorio es completamente independiente del template. Los cambios futuros en el template no se propagan automaticamente.
Mirror repositories
Un mirror sincroniza automaticamente un repositorio de Forgejo con una fuente externa como GitHub, GitLab u otra instancia de Forgejo/Gitea.
Crear un mirror desde una fuente externa
- Crea un nuevo repositorio en Forgejo
- En lugar de inicializarlo, activa la opcion This repository will be a mirror
- Ingresa la URL del repositorio origen:
https://github.com/usuario/repositorio.git
- Si el repositorio origen es privado, agrega las credenciales de autenticacion
- Configura el intervalo de sincronizacion (por defecto: 8 horas)
Forgejo trae automaticamente los cambios del origen segun el intervalo configurado. Los mirrors son de solo lectura: no puedes hacer push directamente.
Forzar sincronizacion manual
En la pagina del repositorio mirror, ve a Settings > Mirror Settings y presiona Synchronize Now.
Configuracion del repositorio
Desde Settings del repositorio puedes activar o desactivar funcionalidades:
Features disponibles
| Feature | Descripcion |
|---|---|
| Issues | Sistema de seguimiento de tareas y bugs |
| Pull Requests | Proceso de revision de codigo |
| Projects | Tableros Kanban para organizar work items |
| Wiki | Documentacion integrada en el repositorio |
| Packages | Registro de paquetes (npm, Docker, etc.) |
Desactivar features que no usas mantiene la interfaz limpia y reduce la confusion para los colaboradores.
Configuracion de merge
En Settings > Merge Button puedes definir que estrategias de merge estan disponibles:
- Merge Commit
- Squash and Merge
- Rebase and Merge
El capitulo 10 explica las diferencias entre estas estrategias.
Siguiente: Capitulo 8: SSH y tokens de acceso —>