Skip to main content

Ecosistemas y repositorios admitidos por Dependabot

Dependabot admite una variedad de ecosistemas y repositorios

Acerca de Dependabot

Dependabot le ayuda a mantenerse al tanto de los ecosistemas de dependencia. Con Dependabot, puede mantener actualizadas las dependencias de las que depende, y solucionar los posibles problemas de seguridad de la cadena de suministro..

Dependabot consta de tres características diferentes que te ayudan a administrar las dependencias:

  • Dependabot alerts: te informa sobre las vulnerabilidades de las dependencias que usas en el repositorio.
  • Dependabot security updates: genera solicitudes de cambios de forma automática para actualizar las dependencias que usas y que tienen vulnerabilidades de seguridad conocidas.
  • Dependabot version updates: genera solicitudes de cambios de forma automática para mantener actualizadas tus dependencias.

Para más información sobre Dependabot, consulta Guía de inicio rápido de Dependabot.

En este artículo, puede ver cuáles son los ecosistemas y repositorios admitidos.

Ecosistemas y repositorios compatibles

Puede configurar actualizaciones para los repositorios que contengan un manifiesto de dependencias o un archivo de bloqueo para alguno de los administradores de paquetes compatibles. Para algunos administradores de paquetes, también puedes configurar la delegación a proveedores para las dependencias. Para obtener más información, vea vendor. Dependabot también admite dependencias en registros privados. Para más información, consulta Configuración del acceso a registros privados para Dependabot.

Nota:

Para asegurarte de que GitHub Enterprise Server admite Dependabot updates para las versiones de ecosistema compatibles más recientes, el propietario de la empresa debe descargar la versión más reciente de la acción Dependabot. Para obtener más información sobre la acción e instrucciones sobre cómo descargar la versión más reciente, consulta Utilizar la última versión de las acciones empaquetadas oficiales.

Nota:

  • Cuando ejecutas actualizaciones de versión o de seguridad, algunos ecosistemas deberán poder resolver todas las dependencias de su fuente para verificar que las actualizaciones sean exitosas. Si tus archivos de manifiesto o de bloqueo contienen cualquier dependencia privada, el Dependabot deberá poder acceder a la ubicación en la que se hospedan dichas dependencias. Los propietarios de las organizaciones pueden otorgar acceso al Dependabot para los repositorios privados que contengan dependencias para un proyecto dentro de la misma organización. Para más información, consulta Administrar la configuración de seguridad y análisis de su organización. Puede configurar el acceso a los registros privados en el archivo de configuración dependabot.yml de un repositorio. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
  • El Dependabot no es compatible con dependencias privadas de GitHub para todos los administradores de paquetes. Consulta los detalles en la tabla a continuación.

Si tu repositorio ya utiliza una integración para la administración de dependencias, necesitarás inhabilitarlo antes de habilitar el Dependabot.

Administrador de paquetesEl valor de YAMLVersiones compatiblesActualizaciones de versionesActualizaciones de seguridadLos repositorios privadosRegistros privadosDelegamiento a proveedores
Bunbun>=v1.1.39
Bundlerbundlerv2
Cargocargov1
Composercomposerv2
Contenedores de desarrollodevcontainersNo aplicable
Dockerdockerv1No aplicable
Docker Composedocker-composev2, v3No aplicable
SDK de .NETdotnet-sdk>=.NET Core 3.1No aplicableNo aplicableNo aplicable
Gráficos de HelmhelmNot supportedNo aplicable
Hexmixv1
elm-packageelmv0.19
submódulo de gitgitsubmoduleNo aplicableNo aplicable
GitHub Actionsgithub-actionsNo aplicableNo aplicable
Módulos de Gogomodv1
GradlegradleNo aplicable
MavenmavenNo aplicable
npmnpmv7, v8, v9
NuGetnuget<=6.12.0
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7, v8, v9, v10
poetrypipv1
pubpubv2
Swiftswiftv5 (solo Git)
Terraformterraform>= 0,13, <= 1,10.xNo aplicable
uvuvv0No aplicable
Yarnnpmv1, v2, v3

Sugerencia

Para administradores de paquetes como pipenv y poetry, debes usar el valor de YAML pip. Por ejemplo, si utilizas poetry para administrar tus dependencias de Python y quieres que el Dependabot monitoree el archivo de manifiesto de tu dependencia para encontrar versiones, utiliza package-ecosystem: "pip" en tu archivo de dependabot.yml.

Para obtener más información sobre cómo habilitar o deshabilitar Dependabot security updates para un repositorio, consulta Ecosistemas de paquetes admitidos para el gráfico de dependencias.

Bun

Dependabot admite el archivo bun.lock basado en texto predeterminado actual, pero no el archivo binario heredado bun.lockb. El archivo bun.lock se admite en la versión 1.1.39 y posteriores. Para obtener más información, busca Lockfile en la documentación de Bun.

Cargo

La compatibilidad con el registro privado incluye registros de carga, por lo que puedes usar Dependabot para mantener actualizadas las dependencias de Rust. Para más información, consulta Guía para la configuración de registros privados para Dependabot.

Contenedores de desarrollo

Puedes usar devcontainers como package-ecosystem en el archivo dependabot.yml para actualizar características en los archivos de configuración de devcontainer.json. Para obtener más información sobre esta compatibilidad y ejemplos de archivos de configuración, consulta Disponibilidad general de integración de Dependabot en la documentación de contenedores de desarrollo.

Los contenedores de desarrollo se usan en varias herramientas y servicios, incluidos Codespaces. Para obtener más información sobre las características y los servicios compatibles, consulta Características y Compatibilidad de herramientas y servicios en la documentación de contenedores de desarrollo, respectivamente.

Este actualizador garantiza que las características se anclan a la versión major más reciente del archivo devcontainer.json asociado. Si un contenedor de desarrollo tiene un archivo de bloqueo, ese archivo también se actualizará. Para obtener más información sobre las especificaciones del archivo de bloqueo, consulta Archivos de bloqueo en el repositorio devcontainers/spec.

Las características de cualquier ubicación de contenedor de desarrollo válida se actualizarán en una única solicitud de cambios. Para más información sobre la especificación del contenedor de desarrollo, consulta Especificación en la documentación sobre contenedores de desarrollo.

Docker

Dependabot puede agregar metadatos de imágenes de Docker para extraer solicitudes de actualizaciones de versiones. Los metadatos incluyen notas de la versión, registros de cambios y el historial de confirmaciones. Los administradores del repositorio pueden usar los metadatos para evaluar rápidamente el riesgo de estabilidad de la actualización de dependencias.

Para que Dependabot capture los metadatos de Docker, los mantenedores de imágenes de Docker deben agregar la etiqueta org.opencontainers.image.source a Dockerfile e incluir la dirección URL del repositorio de origen. Además, los mantenedores deben etiquetar el repositorio con las mismas etiquetas que las imágenes de Docker publicadas. Para ver un ejemplo, consulta el repositorio dependabot-fixtures/docker-with-source. Para más información sobre las etiquetas de Docker, consulta Etiquetas de imagen de extensión y BUILDX_GIT_LABELS en la documentación de Docker.

Dependabot puede actualizar etiquetas de imagen de Docker en manifiestos de Kubernetes. Agrega una entrada al elemento package-ecosystem de Docker del archivo dependabot.yml para cada directorio que contenga un manifiesto de Kubernetes que haga referencia a etiquetas de imagen de Docker. Los manifiestos de Kubernetes pueden ser archivos YAML de implementación de Kubernetes o gráficos de Helm. Para obtener información sobre cómo configurar el archivo dependabot.yml para docker, consulta "package-ecosystem" en Referencia de opciones de Dependabot.

Dependabot admite registros de Docker públicos y privados. Para una lista de los registros admitidos, consulta "docker-registry" en Configuración del acceso a registros privados para Dependabot.

Dependabot analiza las etiquetas de imagen de Docker para Versionamiento Semántico (SemVer). Si Dependabot detecta una etiqueta con una versión preliminar, solo sugerirá una actualización a la versión más reciente con una versión preliminar coincidente y no sugerirá una versión más reciente que use una etiqueta de versión preliminar diferente. Para obtener más información, consulta el archivo dependabot-docker README.md en el repositorio dependabot/dependabot-core.

Docker Compose

Dependabot admite Docker Compose de forma similar a Docker. Para obtener más información, consulta Docker.

GitHub Actions

Dependabot admite actualizaciones de versiones para GitHub Actions con las siguientes advertencias.

  • Dependabot solo admite actualizaciones de GitHub Actions mediante la sintaxis de repositorio de GitHub, como actions/checkout@v5. Dependabot omitirá las acciones o los flujos de trabajo reutilizables a los que se hace referencia localmente (por ejemplo, ./.github/actions/foo.yml).
  • Actualmente no se admiten Docker Hub y direcciones URL del Container registry de GitHub Packages. Por ejemplo, no se admiten referencias a acciones de contenedor de Docker mediante la sintaxis docker://.
  • Dependabot admite repositorios públicos y privados para GitHub Actions. Para obtener las opciones de configuración del registro privado, consulta "git" en Referencia de opciones de Dependabot.

Para obtener más información sobre el uso de Dependabot version updates con GitHub Actions, consulta Referencia de uso seguro.

Gradle

Dependabot no ejecuta Gradle, pero admite actualizaciones de los siguientes archivos:

  • build.gradle, build.gradle.kts (para proyectos de Kotlin)
  • gradle/libs.versions.toml (para proyectos que usan un catálogo de versiones estándar de Gradle)
  • Archivos incluidos a través de la apply declaración que tienen dependencies en el nombre de archivo. Ten en cuenta que apply no es compatible con apply to, con la recursión o con las sintaxis avanzadas (por ejemplo, el apply de Kotlin con mapOf, que son nombres de archivo que se definen por propiedad).

Dependabot usa información del archivo pom.xml de dependencias para agregar vínculos a información de versión en las solicitudes de cambios de actualización. Si la información se omite desde el archivo pom.xml, entonces no se puede incluir en solicitudes de cambio Dependabot, consulta Optimización de paquetes de Java para actualizaciones de Dependabot.

Para Dependabot security updates, la compatibilidad con Gradle se limita a las cargas manuales de los datos del gráfico de dependencias mediante API de envío de dependencias. Para obtener más información sobre la API de envío de dependencias, consulta Uso de la Dependency submission API.

Nota:

  • Al cargar dependencias de Gradle en el gráfico de dependencias mediante la API de envío de dependencias, todas las dependencias del proyecto se cargan, incluso las dependencias transitivas que no se mencionan explícitamente en ningún archivo de dependencia. Cuando se detecta una alerta en una dependencia transitiva, Dependabot no puede encontrar la dependencia vulnerable en el repositorio y, por tanto, no creará una actualización de seguridad para esa alerta.
  • Sin embargo, Dependabot version updates creará solicitudes de incorporación de cambios cuando la dependencia primaria se declare explícitamente como una dependencia directa en el archivo de manifiesto del proyecto.

Gráficos de Helm

Dependabot admite el uso de un nombre de usuario y una contraseña para los registros. Para más información, consulta Configuración del acceso a registros privados para Dependabot.

Dependabot funciona con cualquier registro compatible con OCI que aplique la Especificación de Distribución de la Iniciativa de Contenedores Abiertos (OCI).

Al configurar Dependabot para gráficos de Helm, también actualizará automáticamente las imágenes de Docker a las que se hace referencia en esos gráficos, lo que garantiza que las versiones del gráfico y sus imágenes contenidas permanezcan actualizadas.

Maven

Dependabot no ejecuta Maven, pero admite actualizaciones de los archivos pom.xml.

Dependabot usa información del archivo pom.xml de dependencias para agregar vínculos a información de versión en las solicitudes de cambios de actualización. Si la información se omite desde el archivo pom.xml, entonces no se puede incluir en solicitudes de cambio Dependabot, consulta Optimización de paquetes de Java para actualizaciones de Dependabot.

CLI de NuGet

Dependabot no ejecuta la CLI de NuGet, pero admite la mayoría de las características hasta la versión 6.8.0.

pip y pip-compile

Dependabot admite actualizaciones en cualquier archivo .txt.

Además, Dependabot admite actualizaciones de los archivos pyproject.toml si siguen el estándar PEP 621.

poetry

La sección project de PEP 621 no se admite actualmente para poetry.

pub

Dependabot no realizará una actualización de pub cuando la versión que intenta actualizar se omite, incluso si hay una versión anterior disponible.

Puedes usar Dependabot para mantener actualizadas las dependencias de Dart si usas repositorios de pub hospedados privados. Para obtener información sobre cómo permitir que Dependabot acceda a dependencias privadas de GitHub, consulta Permitir que Dependabot acceda a dependencias privadas.

Swift

La compatibilidad con el registro privado se aplica solo a los registros de Git. No se admiten los registros de Swift. No se admiten manifiestos no declarativos. Para más información sobre los manifiestos no declarativos, consulta Edición de manifiestos no declarativos en la documentación de Swift Evolution.

Terraform

Terraform es compatible con:

  • Módulos hospedados en Terraform Registry o en un repositorio Git accesible públicamente.
  • Proveedores de Terraform.
  • Registro privado de Terraform. Puede configurar el acceso para repositorios git privados especificando un registro de git en el archivo dependabot.yml. Para obtener más información, vea git.

yarn

Dependabot admite dependencias proporcionadas por el proveedor a partir de la versión 2.