Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2024-08-29. 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.

Acerca del gráfico de dependencias

Puedes utilizar la gráfica de dependencias para identificar todas las dependencias de tus proyectos. La gráfica de dependencias es compatible con una variedad de ecosistemas de paquetes populares.

Acerca del gráfico de dependencias

El gráfico de dependencias es un resumen de los archivos de manifiesto y de bloqueo almacenados en un repositorio y las dependencias que se envían para el repositorio mediante API de envío de dependencias (beta). Para cada repositorio, muestra dependencias, los ecosistemas y paquetes de los cuales depende.

GitHub Enterprise Server no recupera la información de licencia para las dependencias, y no calcula la información sobre las dependencias, los repositorios y los paquetes que dependen de un repositorio.

Al insertar una confirmación en GitHub Enterprise Server que cambie o agregue un archivo de bloqueo o de manifiesto admitido a la rama predeterminada, el gráfico de dependencias se actualizará de forma automática. Para más información sobre los ecosistemas y archivos de manifiesto admitidos, vea "Ecosistemas de paquetes admitidos" a continuación.

De manera adicional, puede usar API de envío de dependencias (versión beta) para enviar dependencias desde el administrador de paquetes o el ecosistema que prefiera, incluso si el ecosistema no es compatible con el gráfico de dependencias para el análisis del archivo de manifiesto o de bloqueo. El gráfico de dependencias mostrará las dependencias enviadas agrupadas por ecosistema, pero independientemente de las dependencias analizadas desde archivos de manifiesto o bloqueo. Para obtener más información sobre API de envío de dependencias, vea "Uso de la Dependency submission API".

Cuando creas una solicitud de cambios que contenga los cambios de las dependencias que apuntan a la rama predeterminada, GitHub utiliza la gráfica de dependencias para agregar revisiones de dependencia a la solicitud de cambios. Estas indican si las dependencias contendrán vulnerabilidades y, si es el caso, la versión de la dependencia en la cual se arregló la vulnerabilidad. Para obtener más información, vea «Acerca de la revisión de dependencias».

Si tienes al menos acceso de lectura al repositorio, puedes exportar el gráfico de dependencias del repositorio como una la lista de materiales de software (SBOM) compatible con SPDX, a través de la interfaz de usuario de GitHub o la API REST de GitHub. Para obtener más información, vea «Exportación de una lista de materiales de software para el repositorio».

Disponibilidad de la gráfica de dependencias

Los propietarios de la empresa pueden configurar el gráfico de dependencias y Dependabot alerts para una empresa. Para más información, consulta "Habilitación del gráfico de dependencias para la empresa" y "Habilitación de Dependabot para la empresa".

Para obtener más información sobre la configuración del gráfico de dependencias, consulta "Configuración del gráfico de dependencias".

Dependencias que se incluyen

El gráfico de dependencias incluye todas las dependencias de un repositorio que se detallan en los archivos de manifiesto y bloqueo, o su equivalente, para los ecosistemas admitidos, así como las dependencias que se envían mediante la API de envío de dependencias (beta). Esto incluye:

  • Las dependencias directas, que se definen explícitamente en un archivo de manifiesto o bloqueo o se han enviado mediante API de envío de dependencias (beta)
  • Las dependencias indirectas de estas dependencias directas, también conocidas como dependencias transitorias o sub-dependencias

El gráfico de dependencias identifica dependencias indirectas de los archivos de bloqueo. Si el ecosistema no tiene archivos de bloqueo, puede usar acciones realizadas previamente que resuelven dependencias transitivas para muchos ecosistemas. Para obtener más información, vea «Uso de la Dependency submission API».

Para obtener más información sobre cómo GitHub Enterprise Server te ayuda a comprender las dependencias de tu entorno, consulta "Acerca de la seguridad de la cadena de suministro".

Utiizar la gráfica de dependencias

Puedes utilizar la gráfica de dependencias para:

Ecosistemas de paquetes compatibles

Los formatos recomendados definen explícitamente qué versiones se utilizan para todas las dependencias directas e indirectas. Si usa estos formatos, el gráfico de dependencias será más preciso. También refleja la configuración de compilación actual y permite que el gráfico de dependencias notifique vulnerabilidades tanto en las dependencias directas como en las indirectas.

Administrador de paquetesIdiomasFormatos recomendadosTodos los formatos admitidos
CargoRustCargo.lockCargo.toml, Cargo.lock
ComposerPHPcomposer.lockcomposer.json, composer.lock
NuGetLenguajes de .NET (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
Flujos de trabajo de GitHub ActionsYAML.yml, .yaml.yml, .yaml
Módulos de GoGogo.modgo.mod
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
pipPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py
pubDartpubspec.lockpubspec.yaml, pubspec.lock
Python PoetryPythonpoetry.lockpoetry.lock, pyproject.toml
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
Administrador de paquetes de SwiftSwiftPackage.resolvedPackage.resolved
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Notas:

  • Si enumera las dependencias de Python dentro de un archivo setup.py, es posible que no podamos analizar y enumerar cada una de las dependencias del proyecto.

  • Los flujos de trabajo de GitHub Actions se deben ubicar en el directorio .github/workflows/ de un repositorio para que se reconozcan como manifiestos. Las acciones o flujos de trabajo a los que se hace referencia mediante la sintaxis jobs[*].steps[*].uses o jobs.<job_id>.uses se analizarán como dependencias. Para obtener más información, consulta "Sintaxis del flujo de trabajo para Acciones de GitHub".

  • Dependabot solo creará Dependabot alerts para los datos de GitHub Actions que usan el control de versiones semántico. No recibirás alertas para una acción vulnerable que use el control de versiones SHA. Si usas GitHub Actions con el control de versiones SHA, se recomienda habilitar Dependabot version updates para el repositorio u organización para mantener las acciones que usas actualizadas a las versiones más recientes. Para obtener más información, consulta «Acerca de las alertas Dependabot» y «Acerca de las actualizaciones a la versión del Dependabot».

Puede usar API de envío de dependencias (beta) para agregar dependencias desde el administrador de paquetes o el ecosistema de su elección al gráfico de dependencias, incluso si el ecosistema no está en la lista de ecosistemas compatibles anterior. 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.

Solo obtendrás Dependabot alerts para las dependencias que proceden de uno de los ecosistemas compatibles de GitHub Advisory Database. Para obtener más información sobre la API de envío de dependencias, consulta "Uso de la Dependency submission API".

Información adicional