Público ≠ permitido
Aunque un repositorio sea público en GitHub, si no tiene archivo LICENSE su código no es código abierto. El copyright nace automáticamente al escribir el código (en la mayoría de los países firmantes del Convenio de Berna) y, sin un permiso aparte, solo el titular puede copiarlo, modificarlo, distribuirlo y crear obras derivadas. La documentación de GitHub también indica que, sin licencia, se aplica la ley de propiedad intelectual por defecto: el titular conserva todos los derechos y nadie más puede copiar, distribuir ni crear obras derivadas.
Qué permiten los términos de GitHub
Según los Términos de servicio de GitHub (D.5, 'Licencia concedida a otros usuarios'), quien publica contenido en un repositorio público concede a los usuarios de GitHub el derecho a usar, mostrar y ejecutar ese contenido dentro del servicio de GitHub y a reproducirlo en la medida en que lo permitan las funciones de GitHub, como el fork. Es decir, puedes hacer lo siguiente.
- Ver y leer el código en la web
- Hacer un fork dentro de GitHub
Pero los términos no conceden derechos más allá de eso, como incluirlo en tu producto y distribuirlo o publicar una versión modificada en otro lugar.
Si quieres usar código sin licencia
- Pídeselo al titular: solicita mediante una issue o por correo que añada una licencia. Muchas veces simplemente se olvidó y la añade encantado (MIT u otra).
- Obtén un permiso por escrito: si no es posible añadir una licencia, consigue un permiso aparte que indique el alcance de uso y guárdalo.
- Busca alternativas: busca una biblioteca de código abierto con la misma funcionalidad.
- Impleméntalo tú: escribe el código de nuevo tomando como referencia solo la especificación o el comportamiento, sin mirar el código (la llamada implementación en sala limpia). Ten cuidado: transcribir el código original puede considerarse una copia.
Cuando el README solo dice "úsalo como quieras", la situación es ambigua. Aunque la intención parezca clara, el alcance (modificación, redistribución, uso comercial) no lo es, así que lo más seguro es pedir que se añada una licencia estándar.
Casos ambiguos frecuentes
- No hay LICENSE, pero
package.jsondice"license": "MIT": la intención parece MIT, pero MIT exige incluir el aviso de copyright y el texto de permiso en las copias, y sin el texto completo es difícil cumplir el aviso. Conviene pedir que se añada un archivo LICENSE al repositorio. - Código de respuestas de Stack Overflow: el contenido publicado por los usuarios se ofrece bajo Creative Commons BY-SA (2.5, 3.0 o 4.0 según la fecha de publicación). Tiene condiciones de atribución y de compartir igual, así que revisa la política de tu empresa antes de trasladarlo a código de producto.
- Código de blogs y tutoriales: si las condiciones de uso del sitio o el propio artículo no dicen otra cosa, por defecto el copyright está reservado.
Cómo poner una licencia a tu repositorio
- En el generador, elige la licencia, introduce el año y el titular y descarga el archivo
LICENSE. - Súbelo con un commit a la raíz del repositorio. GitHub reconoce este archivo y muestra la licencia en la información del repositorio.
- Pon el identificador SPDX en el campo license de
package.json,Cargo.toml,pyproject.toml, etc. (guía de SPDX). - Si hay código de otras personas mezclado, organiza por separado la licencia y los avisos de esa parte (aplicación práctica).
Cuando no se pone licencia a propósito
Si solo quieres mostrar el código, como en un portafolio o un trabajo académico, y no quieres que se reutilice, no poner licencia también es una opción. En ese caso, indicar en el README 'Todos los derechos reservados (All rights reserved)' y un contacto reduce malentendidos. Eso sí, al ser un repositorio público, no puedes impedir la consulta y el fork que permiten los términos de GitHub.
Este artículo es información general y no constituye asesoramiento jurídico. Para decisiones importantes, consulta con un profesional.
Fuentes
- GitHub Docs, Licensing a repository — https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
- GitHub Terms of Service, D.5 — https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
- choosealicense.com, No License — https://choosealicense.com/no-permission/
- Licencia del contenido de Stack Overflow — https://stackoverflow.com/help/licensing