Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-03-26. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Solución de problemas del gráfico de dependencias

Si la información de la dependencia que se notifica en el gráfico de dependencias no es lo que esperabas, debes tener en cuenta varias cuestiones y comprobar diversos elementos.

Los resultados de la detección de dependencias que reporta GitHub Enterprise Server pueden ser diferentes a aquellos que devuelven otras herramientas. Esto está justificado y es útil el entender cómo GitHub determina las dependencias para tu proyecto.

¿Acaso la gráfica de dependencias solo encuentra depedencias en los manifiestos y lockfiles?

El gráfico de dependencias incluye de forma automática información sobre las dependencias que se declaran explícitamente en el entorno. Esto es, dependencias que se especifican en un manifiesto o en un lockfile. La gráfica de dependencias también incluye dependencias transitivas generalmente, aún cuando no se especifican en un lockfile, mediante la revisión de las dependencias de las dependencias en un archivo de manifiesto.

El gráfico de dependencias no incluye de forma automática dependencias "sueltas". Las dependencias "sueltas" son archivos individuales que se copian de otra fuernte y se revisan directamente en el repositorio o dentro de un archivo (tal como un archivo ZIP o JAR) en ves de que se referencien en un manifiesto de paquete de administrador o en un lockfile.

Sin embargo, puedes usar la API de envío de dependencias (beta) para agregar dependencias al gráfico de dependencias de un proyecto, incluso si las dependencias no se declaran en un archivo de manifiesto o bloqueo, como las dependencias resueltas cuando se compila un proyecto. El gráfico de dependencias mostrará las dependencias enviadas agrupadas por ecosistema, pero por separado de las dependencias analizadas de los archivos de manifiesto o de bloqueo. Para obtener más información sobre la API de envío de dependencias, consulta "Uso de la Dependency submission API".

Comprobación: ¿La dependencia que falta es para un componente sin especificar en el manifiesto o archivo de bloqueo del repositorio?

¿Acaso la gráfica de dependencias detecta dependencias que se especifican utilizando variables?

La gráfica de dependencias analiza los manifiestos mientras se suben a GitHub. Por lo tanto, la gráfica de dependencias no tiene acceso al ambiente de compilación del proyecto, así que no puede resolver variables que se utilizan dentro de los manifiestos. Si usas variables dentro de un manifiesto para especificar el nombre, o más comúnmente la versión de una dependencia, dicha dependencia no se incluirá de forma automática en el gráfico de dependencias.

Aun así, puedes usar la API de envío de dependencias (beta) para agregar dependencias al gráfico de dependencias de un proyecto, incluso si las dependencias solo se resuelven cuando se compila un proyecto. Para obtener más información sobre la API de envío de dependencias, consulta "Uso de la Dependency submission API".

Comprobación: ¿Falta la dependencia declarada en el manifiesto mediante una variable para su nombre o versión?

¿Existen límites que afecten los datos de la gráfica de dependencias?

Sí, el gráfico de dependencias tiene dos categorías de límites:

  1. Límites de procesamiento

    Estos afectan la gráfica de dependencias que se muestra dentro de GitHub y también previenen la creación de Dependabot alerts.

    Los manifiestos mayores a 0.5 MB solo se procesan para las cuentas empresariales. En el caso de otras cuentas, los manifiestos mayores a 0.5 MB se ingoran y no crearán Dependabot alerts.

    De manera predeterminada, GitHub no procesará más de 600 manifiestos por repositorio. Las Dependabot alerts no se crean para los manifiestos más allá de este límite. Si necesitas incrementar el límite, puedes ponerte en contacto con el administrador del sitio.

    Los archivos de manifiesto almacenados en directorios con nombres que suelen usarse para dependencias delegadas no se procesan. Un directorio cuyo nombre coincida con las siguientes expresiones regulares se considera un directorio de dependencias delegadas:

    • (3rd|[Tt]hird)[-_]?[Pp]arty/
    • (^|/)vendors?/
    • (^|/)[Ee]xtern(als?)?/
    • (^|/)[Vv]+endor/

    Ejemplos:

    • third-party/dependencies/dependency1
    • vendors/dependency1
    • /externals/vendor1/dependency1
  2. Límites de visualización

    Estos afectan a lo que se muestra en la gráfica de dependencias dentro de GitHub. Sin embargo, estos no afectan las Dependabot alerts que se crean.

    La vista de dependencias de la gráfica de dependencias para un repositorio solo muestra 1000 manifiestos. Habitualmente, esto es tan adecuado como es significativamente más alto que el límite de procesamiento descrito anteriormente. En situaciones en donde le límite de procesamiento es mayor a 100, las Dependabot alerts se crearán aún para cualquier manifiesto que no se muestre dentro de GitHub.

Comprobación: ¿La dependencia que falta está en un archivo de manifiesto de más de 0,5 MB, o en un repositorio con una gran cantidad de manifiestos?

Información adicional