Acerca de las actualizaciones a la versión del Dependabot

Puede utilizar el Dependabot para mantener los paquetes que utilizas actualizados a su versión más reciente.

Acerca de Actualizaciones de versión del dependabot

El Dependabot hace el esfuerzo de mantener tus dependencias. Puedes utilizarlo para garantizar que tu repositorio se mantenga automáticamente con los últimos lanzamientos de los paquetes y aplicaciones de los que depende.

Se habilitan las Actualizaciones de versión del dependabot al registrar un archivo de configuración en tu repositorio. Este archivo de configuración especifica la ubicación del manifiesto o de otros archivos de definición de paquetes almacenados en tu repositorio. El Dependabot utiliza esta información para revisar los paquetes y las aplicaciones desactualizadas. El Dependabot determina si hay una versión nueva de una dependencia al buscar el versionamiento semántico (semver) de la dependencia para decidir si debería actualizarla a esa versión. Para ciertos administradores de paquetes, Actualizaciones de versión del dependabot también es compatible con su delegación a proveedores. Las dependencias delegadas (o almacenadas en caché) son aquellas que se registran en un directorio específico en un repositorio en vez de que se referencien en un manifiesto. Las dependencias delegadas a proveedores están disponibles desde el momento de su creación, incluso si los servidores de paquetes no se encuentran disponibles. Las Actualizaciones de versión del dependabot pueden configurarse para verificar las dependencias delegadas a proveedores para las nuevas versiones y también pueden actualizarse de ser necesario.

Cuando el Dependabot identifica una dependencia desactualizada, levanta una solicitud de extracción para actualizar el manifiesto a su última versión de la dependencia. Lara las dependencias delegadas a proveedores, el Dependabot levanta una solicitud de cambios para reemplazar la dependencia desactualizada directamente con la versión nueva. Verificas que tu prueba pase, revisas el registro de cambios y notas de lanzamiento que se incluyan en el resumen de la solicitud de extracción y, posteriormente, lo fusionas. Para obtener más información, consulta la sección "Habilitar e inhabilitar las actualizaciones de versión".

Si habilitas las actualizaciones de seguridad, el Dependabot también levantará las solicitudes de extracción para actualizar las dependencias vulnerables. Para obtener más información, consulta la sección "Acerca de las Actualizaciones de seguridad del dependabot".

Cuando el Dependabot levanta solicitudes de cambio, estas podrían ser para actualizaciones de seguridad o de versión:

  • Las Actualizaciones de seguridad del dependabot son solicitudes de cambio automatizadas que te ayudan a actualizar las dependencias con vulnerabilidades conocidas.
  • Las Actualizaciones de versión del dependabot son solicitudes de cambio automatizadas que mantienen tus dependencias actualizadas, aún cuando no tienen ninguna vulnerabilidad. Para verificar el estado de las actualizaciones de versión, navega a la pestaña de perspectivas de tu repositorio, luego a la gráfica de dependencias, y luego al Dependabot.

En las Condiciones de Servicio de GitHub se incluyen al Dependabot y a todas sus características relacionadas.

Frecuencia de las solicitudes de extracción del Dependabot

Tú eres quien especifica qué tan a menudo se revisa cada ecosistema para encontrar nuevas versiones en el archivo de configuración: diario, semanalmente, o mensualmente.

Cuando habilitas las actualizaciones de versión por primera vez, podrías tener muchas dependencias desactualizadas y algunas podrían estar varias versiones debajo de la última. Dependabot verifica las dependencias que estén desactualizadas tan pronto se habilita. Podrías ver nuevas solicitudes de extracción para las actualizaciones de versión después de algunos minutos de haber agregado el archivo de configuración, dependiendo de la cantidad de archivos de manifiesto para los cuales configuras las actualizaciones. El Dependabot también ejecutará una actualización en los cambios subsecuentes al archivo de configuración.

El Dependabot también podría crear solicitudes de cambios cuando cambias un archivo de manifiesto después de que falló una actualización. Esto es porque los cambios al manifiesto, tales como eliminar la dependencia que ocasionó que fallara la actualización, podrían causar que la actualización recién activada tenga éxito.

Para mantener la fácil administración y revisión de las solicitudes de extracción, Dependabot levanta un máximo de cinco solicitudes de extracción para comenzar a actualizar a las dependencias a su versión más reciente. Si fusionas algunas de estas primeras solicitudes de cambios en la siguiente actualización programada, aquellas restantes se abrirán en la siguiente actualización, hasta ese máximo. Puedes cambiar la cantidad máxima de solicitudes de cambios abiertas si configuras la opción de configuración open-pull-requests-limit.

Si habilitaste las actualizaciones de seguridad, algunas veces verás solicitudes de extracción adicionales para actualizaciones de seguridad. Esto se activa con una alerta del Dependabot para una dependencia en tu rama predeterminada. El Dependabot levanta automáticamente una solicitud de extracción para actualizar la dependencia vulnerable.

Repositorios y ecosistemas compatibles

Puedes configurar las actualizaciones de versión para los repositorios que contengan un manifiesto de dependencias o un archivo fijado 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, consulta la sección "Opciones de configuración para las actualizaciones de dependencias".

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 obtener más información, consulta la sección "Administrar la configuración de seguridad y análisis para tu organización". Puedes configurar el acceso a los registros privados en el archivo de configuración dependabot.yml de un repositorio. Para obtener más información, consulta la sección "Opciones de configuración para las actualizaciones de dependencias".

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.

La siguiente tabla muestra, para cada administrador de paquetes:

  • El valor YAML a utilizar en el archivo dependabot.yml
  • Las versiones compatibles del administrador de paquetes
  • Si las dependencias en los repositorios o registros privados de GitHub son compatibles
  • Si las dependencias delegadas a proveedores son compatibles
Administración de paquetesEl valor de YAMLLas versiones compatiblesLos repositorios privadosRegistros privadosDelegamiento a proveedores
Bundlerbundlerv1, v2
Cargocargov1
Composercomposerv1, v2
Dockerdockerv1
Hexmixv1
elm-packageelmv0.19
submódulo de gitgitsubmoduleN/A (sin versión)
GitHub Actionsgithub-actionsN/A (sin versión)
Módulos de Gogomodv1
GradlegradleN/A (sin versión)[1]
MavenmavenN/A (sin versión)[2]
npmnpmv6, v7
NuGetnuget<= 4.8[3]
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
poetrypipv1
Terraformterraform>= 0.13, <= 1.0
yarnnpmv1

[1] El Dependabot no ejecuta Gradle pero es compatible con las actualizaciones de los siguientes archivos: build.gradle, build.gradle.kts (para los proyectos de Kotlin), y los archivos que se incluye a través de la declaración apply que tengan dependencies en el nombre de archivo. Toma 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).

[2] El Dependabot no ejecuta Maven pero es compatible con las actualizaciones a los archivos pom.xml.

[3] El Dependabot no ejecuta el CLI de NuGet pero sí es compatible con la mayoría de las características hasta la versión 4.8.

Para los administradores de paquetes tales como pipenv y poetry, necesitas utilizar el valor pip de YAML. 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 nuevas, utiliza package-ecosystem: "pip" en tu archivo de dependabot.yml.

Si tu repositorio ya utiliza una integración para la administración de dependencias, necesitarás inhabilitarlo antes de habilitar el Dependabot. Para obtener más información, consulta la sección "Acerca de las integraciones".

Acerca de las notificaciones para las actualizaciones de versión del Dependabot

Puedes filtrar tus notificaciones en GitHub para mostrar las actualizaciones de versión del Dependabot. Para recibir más información, consulta la sección "Administrar las notificaciones desde tu bandeja de entrada".

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.