Forgejo: Repositorios - crear, clonar, configurar

Por: Artiko
forgejogitrepositoriosmirrortemplate

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:

Inicializar el repositorio: si activas esta opcion, Forgejo hace el primer commit automaticamente con los archivos seleccionados:

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

  1. Crea o usa un repositorio existente con la estructura deseada
  2. Ve a Settings del repositorio
  3. En la seccion Advanced Settings, activa Template Repository
  4. 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:

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

  1. Crea un nuevo repositorio en Forgejo
  2. En lugar de inicializarlo, activa la opcion This repository will be a mirror
  3. Ingresa la URL del repositorio origen:
https://github.com/usuario/repositorio.git
  1. Si el repositorio origen es privado, agrega las credenciales de autenticacion
  2. 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

FeatureDescripcion
IssuesSistema de seguimiento de tareas y bugs
Pull RequestsProceso de revision de codigo
ProjectsTableros Kanban para organizar work items
WikiDocumentacion integrada en el repositorio
PackagesRegistro 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:

El capitulo 10 explica las diferencias entre estas estrategias.


Siguiente: Capitulo 8: SSH y tokens de acceso —>