Skip to main content

Configuración de directivas de licencia de código abierto

Cree y aplique directivas de licencias de código abierto para controlar qué licencias pueden usar sus dependencias.

¿Quién puede utilizar esta característica?

Organizations owned by a GitHub 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.

Prerrequisitos

Antes de configurar las directivas de licencia, asegúrese de que:

  • Su organización tiene GitHub Code Security
  • Tiene acceso para gestionar la política empresarial y los conjuntos de reglas.
  • El gráfico de dependencias está habilitado para los repositorios que desea evaluar

Acerca del cumplimiento de licencias

El cumplimiento de licencias de código abierto permite definir una directiva que especifica qué licencias pueden usar las dependencias.

Cuando la directiva se aplica con conjuntos de reglas, GitHub evalúa las solicitudes de extracción que modifican los manifiestos de paquetes, comprueba las dependencias directas y transitivas, y compara las licencias detectadas con la directiva. Las solicitudes de incorporación de cambios con dependencias no conformes permanecen bloqueadas hasta que se resuelvan las infracciones.

Normalmente, las infracciones se resuelven mediante:

  • Actualizar la pull request para usar dependencias conformes
  • Aprobación de una excepción para un paquete
  • Actualización de la directiva para permitir una licencia cuando corresponda

Creación de una directiva de licencia

  1. Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
  2. En la parte superior de la página, haga clic en Directivas.
  3. En la barra lateral, haga clic en Cumplimiento de licencias.
  4. Haga clic en Directiva predeterminada.
  5. En la página Editar directiva de licencia , haga clic en Agregar licencias y elija Seleccionar en la lista.
  6. En el selector de licencias, seleccione las licencias que desea permitir. Las licencias de esta lista se clasifican en función de su nivel de riesgo general para su uso en entornos corporativos, pero esto es meramente informativo y no constituye asesoramiento legal. Consulte siempre con el equipo legal de su organización para obtener instrucciones sobre directivas.
  7. Guarde los cambios.

Como alternativa, si tiene una directiva de licencia existente de otra herramienta, puede importarla como una lista de expresiones SPDX.

  1. En la página Editar directiva de licencia , haga clic en Agregar licencias y elija Entrada manual.
  2. Escriba uno o varios identificadores de licencia de SPDX, cada uno en una nueva línea.
  3. Guarde los cambios.

Las licencias que añada forman la directiva base. Más adelante puede agregar excepciones de nivel de paquete al controlar alertas.

Configuración del acceso para administradores de licencias de código abierto enterprise

  1. Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
  2. En la parte superior de la página, haga clic en Personas.
  3. En la barra lateral izquierda, haga clic en Roles empresariales.
  4. Haga clic en Asignaciones de roles.
  5. Haga clic en Asignar rol.
  6. Seleccione el rol Administrador de licencias de código abierto de empresa .
  7. Elija un usuario o equipo al que asignar el rol.
  8. Haga clic en Asignar rol.

La asignación de este rol también inscribe a los revisores en las notificaciones de solicitudes de desestimación para que puedan responder con rapidez.

Opcionalmente, use propiedades personalizadas para controlar la implementación por repositorio.

Si desea un lanzamiento gradual, use una propiedad personalizada del repositorio para controlar si cada repositorio está inactivo, evaluar o activar el modo de cumplimiento.

  1. En GitHub, navega a la página principal de tu organización.

  2. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  3. En la barra lateral izquierda, en la sección "Code, planning, and automation", haz clic en Repository y, luego, haz clic en Custom properties.

    Captura de pantalla de la página de configuración de una organización. En la barra lateral, hay un vínculo destacado en color naranja con la etiqueta «Propiedades personalizadas».

  4. Cree una propiedad personalizada de repositorio de selección única, por ejemplo open_source_license_compliance.

  5. Agregue valores para inactive, evaluatey active.

  6. Establezca el valor predeterminado en inactive.

  7. Decida quién puede cambiar el valor de la propiedad.

  8. Asigne valores de propiedad a repositorios en función de su fase de lanzamiento.

Aplicar políticas en solicitudes de incorporación de cambios con conjuntos de reglas

Se recomienda crear dos conjuntos de reglas, uno para el modo Evaluar y otro para el modo Activo . Si ha creado propiedades personalizadas para controlar el lanzamiento, puede tener como destino esas propiedades aquí.

  1. Vaya a la página de conjuntos de reglas del ámbito en el que desea aplicar la directiva.

  2. Cree un conjunto de reglas de rama.

  3. En el nombre del conjunto de reglas, establezca Estado de cumplimiento:

    • En el primer conjunto de reglas, seleccione Evaluar.
    • En el segundo conjunto de reglas, seleccione Activo.
  4. Elija cómo dirigirse a los repositorios:

    • Si usa propiedades personalizadas, use open_source_license_compliance para seleccionar el destino:
      • Para el conjunto de reglas en modo de evaluación, seleccione los repositorios de destino en los que el valor de la propiedad sea evaluate.
      • Para el conjunto de reglas en modo activo, diríjase a los repositorios de destino donde el valor de la propiedad sea active.
    • Si no usa propiedades personalizadas, diríjase a los repositorios mediante un patrón de repositorio o una selección explícita de repositorios.
  5. Activar Exigir resultados de cumplimiento de licencias antes de fusionar.

  6. Guarde los cambios.

Para obtener más información sobre los conjuntos de reglas, consulte Acerca de los conjuntos de reglas y Creación de conjuntos de reglas para repositorios de la organización.

Aplicación de directivas de prueba

  1. En un repositorio de destino, abra una solicitud de incorporación de cambios que cambie los manifiestos de dependencia.
  2. Confirme que las anotaciones de la pull request muestran los resultados de conformidad de licencias.
  3. Si una dependencia infringe la directiva, revise la alerta generada y solicite el descarte si se necesita una excepción.

Cuando las infracciones no están resueltas, la solicitud de incorporación de cambios permanece bloqueada.

Revisión y control de solicitudes de excepciones

  1. Como administrador de licencias de código abierto de empresa, abra la lista de solicitudes de alertas de licencia pendientes en las vistas de seguridad de la empresa.
  2. Revise cada solicitud y decida si desea denegarla o aprobarla.
  3. Si aprueba, elija si la excepción debe aplicarse a un paquete, una licencia o un patrón de paquete.
  4. Elija si desea aplicar la excepción en el ámbito del repositorio o en el ámbito de empresa.
  5. Guarde la excepción.

Una vez aprobada una solicitud, la alerta se cierra y se desbloquea la solicitud de incorporación de cambios, siempre que no se producen otras comprobaciones necesarias.

Revisión de una directiva efectiva para un repositorio

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la barra lateral, en "Seguridad", haga clic en Directiva de licencia.

  4. Revise la directiva combinada y el conjunto de excepciones en vigor para ese repositorio.

  5. Actualice la directiva de nivel empresarial o de nivel de repositorio según sea necesario.

Lectura adicional