Skip to main content

Ecosistemas de paquetes admitidos para el gráfico de dependencias

El gráfico de dependencias admite diversos ecosistemas.

Sobre el gráfico de dependencias

Para obtener una introducción al gráfico de dependencias, consulta Acerca del gráfico de dependencias.

Creación del gráfico de dependencias

Si el gráfico de dependencias está habilitado, examinará el repositorio para ver los archivos de manifiesto que usan ecosistemas de paquetes de lenguaje de programación. Cuando encuentres uno de los archivos de manifiesto admitidos, analizará el archivo y creará una representación de su contenido, incluido el nombre y la versión de cada paquete. Esto se denomina "análisis estático".

Algunos archivos definen explícitamente qué versiones se usan para todas las dependencias directas y indirectas. Bloquean las versiones del paquete a las incluidas en la compilación y permiten a Dependabot encontrar versiones vulnerables tanto en dependencias directas como indirectas. Si usas estos formatos, el gráfico de dependencias es más preciso, por lo que se muestran en la columna "Archivos recomendados" de la tabla "Ecosistemas de paquetes admitidos". Consulta Ecosistemas de paquetes admitidos.

Ecosistemas de paquetes admitidos a través de acciones de envío de dependencias

Además del análisis estático y el envío automático del gráfico de dependencias, puedes usar API de envío de dependencias para agregar dependencias de compilación desde el administrador de paquetes o agregar dependencias de los administradores de paquetes y los ecosistema de su elección al gráfico de dependencias, incluso si el ecosistema no está en la tabla "Ecosistemas de paquetes admitidos". La información de dependencia de estas dependencias enviadas fluirá, a su vez, hacia Dependabot updates y Dependabot alerts.

Las dependencias enviadas a un proyecto mediante la API de envío de dependencias mostrarán qué detector se ha usado para su envío y cuándo se han enviado. Para obtener más información sobre API de envío de dependencias, consulta Uso de la Dependency submission API.

Ecosistemas de paquetes compatibles

Administrador de paquetesIdiomasDependencias transitivas estáticasEnvío automático de dependenciasArchivos recomendadosArchivos adicionales
CargoRustCargo.lockCargo.toml
ComposerPHPcomposer.lockcomposer.json
NuGetLenguajes de .NET (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsprojpackages.config
Flujos de trabajo de GitHub ActionsYAML.yml, .yaml
Módulos de GoGogo.mod
GradleJava
MavenJava, Scalapom.xml
npmJavaScriptpackage-lock.jsonpackage.json
pipPythonrequirements.txt, pipfile.lockpipfile, setup.py
pnpmJavaScriptpnpm-lock.yamlpackage.json
pubDartpubspec.lockpubspec.yaml
PoetryPythonpoetry.lockpyproject.toml
RubyGemsRubyGemfile.lockGemfile, *.gemspec
Administrador de paquetes de SwiftSwiftPackage.resolved
YarnJavaScriptyarn.lockpackage.json

Nota:

  • 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 más información, consulta Sintaxis del flujo de trabajo para GitHub Actions.
  • 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 más información, consulta Acerca de las alertas Dependabot y Acerca de las actualizaciones a la versión del Dependabot.

Desduplicación de manifiestos

El gráfico de dependencias puede obtener información sobre las dependencias de tres maneras diferentes: análisis estáticos, envío automático y envío de usuario. Un repositorio puede tener varios métodos configurados, lo que hace que el mismo manifiesto de paquete se examine varias veces, potencialmente con salidas diferentes de cada examen. El gráfico de dependencias usa lógica de desduplicación para analizar las salidas y priorizar la información más precisa para cada archivo de manifiesto.

El gráfico de dependencias muestra solo una instancia de cada archivo de manifiesto mediante las siguientes reglas de precedencia.

  1. Los envíos de usuario tienen la prioridad más alta, ya que normalmente se crean durante las compilaciones de artefactos que tienen la información más completa.
    • Si hay varias instantáneas manuales de diferentes detectores, se ordenan alfabéticamente por correlación y la primera usada.
    • Si hay dos correladores con el mismo detector, se combinan las dependencias resueltas. Para obtener más información sobre los correladores y detectores, consulta Puntos de conexión de la API de REST para el envío de dependencias.
  2. Los envíos automáticos tienen la segunda prioridad más alta, ya que también se crean durante las compilaciones de artefactos, pero los usuarios no los envían.
  3. Los resultados de análisis estáticos se usan cuando no hay otros datos disponibles.