Skip to main content

Acerca del cumplimiento de licencias de código abierto

Defina y aplique la política de licencias para las dependencias de sus repositorios mediante el cumplimiento de licencias de código abierto.

¿Quién puede utilizar esta característica?

Organizations owned by an enterprise account with GitHub Code Security enabled

Nota:

El cumplimiento de las licencias de código abierto se encuentra en versión preliminar pública y está sujeto a cambios.

Visión general

El cumplimiento de licencias de código abierto te ayuda a realizar un seguimiento de las licencias de las dependencias y aplicar políticas para el software de código abierto en tu cadena de suministro. Puede usar el cumplimiento de licencias para reducir el riesgo legal y operativo, detectar dependencias no conformes antes de combinar los cambios.

Funcionamiento de la directiva de licencias

Puede definir una directiva empresarial que controle las licencias que pueden usar las dependencias.

Puede especificar licencias de una lista integrada o, si no aparece una licencia, agregando manualmente un identificador de licencia SPDX.

La directiva se aplica mediante conjuntos de reglas que se pueden definir en el ámbito de la empresa, la organización y el repositorio. También puede agregar excepciones de paquete o licencia cuando un Administrador de licencias de código abierto enterprise aprueba las solicitudes.

La evaluación de licencias usa datos de dependencia de los repositorios, incluidas las dependencias transitivas detectadas en el gráfico de dependencias.

Cómo funciona la aplicación obligatoria de las solicitudes de incorporación de cambios

El cumplimiento de licencias de código abierto se aplica a través de conjuntos de reglas de rama. Cuando una solicitud de extracción cambia los manifiestos de paquetes, GitHub compara los cambios en las dependencias entre las ramas base y de la solicitud de extracción, evalúa las licencias detectadas conforme a la directiva y notifica las infracciones.

Si hay un conjunto de reglas en modo activo que usa la condición "Requiere resultados de cumplimiento de licencias antes de combinar", las solicitudes de incorporación de cambios que introducen dependencias no conformes se bloquean hasta que se resuelvan las infracciones. Un conjunto de reglas de modo Evaluar con esa condición ejecutará comprobaciones de licencia y anotará la solicitud de incorporación de cambios, pero no bloqueará las combinaciones.

Además, una regla de protección de rama que requiera que los comentarios estén resueltos antes de fusionar tendrá en cuenta las anotaciones de las comprobaciones de licencias, por lo que incluso las alertas generadas por conjuntos de reglas de Evaluate también estarán sujetas a dicha protección.

Donde aparecen los resultados

Si la licencia de una dependencia no está en tu política, aparecerán hallazgos en las anotaciones de las solicitudes de extracción. Las anotaciones no generan automáticamente una solicitud de excepción, ya que el desarrollador podría decidir modificar su código para evitar la dependencia no conforme. Si quieren usar la dependencia, GitHub solicitará al desarrollador más información y, a continuación, enviará la solicitud de cierre a los administradores de licencias de código abierto de empresa, que tienen permiso para modificar la directiva.

Para administradores de licencias de código abierto enterprise, las solicitudes de excepción pendientes están disponibles en las vistas de seguridad de la empresa y se envían como notificaciones por correo electrónico.

Modelo de ámbito y gobernanza

Puede crear una directiva en el ámbito empresarial para una línea base común y, a continuación, superponer excepciones específicas del repositorio cuando sea necesario.

En el caso de las grandes empresas, un patrón común es:

  • Definición de una directiva amplia de forma centralizada
  • Asignación del rol Enterprise Open Source License Manager a los revisores de directivas
  • Usar una propiedad personalizada del repositorio para clasificar repositorios como inactivos, evaluar o activos
  • Uso de conjuntos de reglas que tienen como destino los valores de propiedad personalizados para controlar el modo de cumplimiento por repositorio

Los desarrolladores con acceso de escritura pueden ver la directiva efectiva y las excepciones de un repositorio desde la página de configuración de la directiva de licencia del repositorio.

Pasos siguientes

Para comenzar, consulte Configuración de directivas de licencia de código abierto.

Para obtener más información sobre los conjuntos de reglas, consulte Acerca de los conjuntos de reglas.