Cómo funciona la hoja de referencia legal de GitHub y por qué desplegar choosealicense.com localmente
Probablemente has encontrado el formulario de selección de licencias al crear un nuevo repositorio en GitHub. Con unos clics, tu proyecto obtiene un archivo con el copyright correcto y el año actual. Pocas personas se dan cuenta de que toda esta lógica, explicaciones concisas y derechos destacados con iconos viven en un repositorio abierto.
El proyecto surgió de una idea simple. Los desarrolladores rara vez comprenden los matices legales y no quieren leer docenas de páginas de texto legal. Necesitan una respuesta directa: qué puedes hacer con el código y qué no puedes hacer. El sitio web satisface esta necesidad, y el repositorio en sí sirve como backend para el sistema de licencias de GitHub.
Por qué existe este repositorio
Ante todo, es un sitio web estático de Jekyll. Su objetivo principal es desglosar documentos legales complejos en categorías comprensibles sin emitir juicios de valor. Los autores no te imponen una licencia específica: te proporcionan una herramienta para tomar tu propia decisión.
Además de ejecutar el sitio web, el contenido del repositorio se importa regularmente a la gema Ruby Licensee. Esta biblioteca es la que impulsa GitHub en sí, determinando el tipo de licencia en tus proyectos, mostrando su estado en la interfaz del repositorio y sirviendo datos a través de la API de GitHub.
Cómo están estructuradas internamente las licencias
Toda la magia del sitio y las integraciones se construye sobre descripciones estructuradas de cada documento. La carpeta contiene archivos Markdown. Cada licencia tiene una cabecera YAML (front matter) y el texto legal completo.
La cabecera YAML define metadatos:
Las reglas se dividen en tres categorías: permisos, condiciones y restricciones. La explicación completa de reglas atómicas individuales como o se almacena por separado en un archivo. Si necesitas agregar una nueva condición, la describes una vez en y la referencias en los archivos de licencia.
Al crear un nuevo repositorio, GitHub toma la plantilla y sustituye valores reales para las variables integradas:
- o el nombre del autor
- el año actual
- para el nombre del repositorio
- para un enlace al proyecto
Compilaciones automáticas y soporte multilingüe
El sitio soporta traducciones de la interfaz y anotaciones breves a través del plugin de Jekyll. Los textos legales reales de las licencias no se traducen intencionalmente para evitar distorsionar el significado legal de los documentos originales.
Dado que no pertenece a la lista estándar de plugins soportados por GitHub Pages, el despliegue se maneja a través de GitHub Actions. El workflow construye el sitio y publica el paquete estático listo en la rama.
Ejecutando el proyecto localmente
Puedes desplegar una copia local del sitio en un par de minutos. Necesitarás los compiladores e instalados.
En macOS, las dependencias se instalan a través de Homebrew:
En Ubuntu o Debian, el gestor de paquetes estándar es suficiente:
Después de eso, clona el repositorio junto con los submódulos y ejecuta los scripts de compilación:
El sitio estará disponible en . Puedes editar archivos en e inmediatamente ver los resultados en tu navegador.
Usando el repositorio en tus proyectos
Una compilación local o bifurcación del proyecto resulta útil en varias situaciones:
- Crear una base de datos interna de documentos legales. Las grandes empresas a menudo tienen sus propias reglas para usar código de terceros. Puedes bifurcar el repositorio, agregar requisitos corporativos y desplegar una guía de referencia interna.
- Generar licencias en utilidades de CLI. Si estás escribiendo tu propio generador de plantillas de proyecto, esta es una fuente conveniente para textos de LICENSE verificados con variables de auto-sustitución.
- Auditorías automatizadas de bases de código. Basándote en los archivos de reglas en, puedes escribir fácilmente un simple linter para verificar dependencias de terceros en tu pipeline de CI/CD.
- Aprender la arquitectura de sitios Jekyll multilingües. El pipeline de compilación personalizado con el plugin sirve como un gran ejemplo para tus propios proyectos estáticos.
Resumen
El repositorio es un gran ejemplo de convertir documentos legales aburridos en una estructura de datos conveniente. El proyecto combina una interfaz web fácil de usar, metadatos legibles por máquina y mecanismos de auto-sustitución. Si necesitas organizar licencias en tus propios proyectos o crear una referencia útil para tu equipo, el código fuente de este sitio es un excelente punto de partida.
Proyectos relacionados