Solucionar problemas de los errores del Dependabot

Algunas veces, el Dependabot no puede levantar solicitudes de cambios para actualizar tus dependencias. Puedes revisar el error y desbloquear al Dependabot.

Acerca de los errores del Dependabot

El Dependabot levanta solicitudes de extracción para actualizar las dependencias. Dependiendo de cómo se configure tu repositorio, el Dependabot podría levantar solicitudes de extracción para las actualizaciones de versión y/o para las alertas de seguridad. Administrarás estas solicitudes de la misma forma que cualquier otra solicitud de extracción, pero también hay comandos extra disponibles. Para obtener más información sobre cómo habilitar las actualizaciones de dependencias del Dependabot, consulta las secciones "Configurar las Actualizaciones de seguridad del dependabot" y "Habilitar e inhabilitar las actualizaciones de versión".

Si existe algo que impida que el Dependabot levante una solicitud de cambios, esto se reporta como un error.

Investigar los errores de las Actualizaciones de seguridad del dependabot

Cuando se bloquea al Dependabot y no puede crear una solicitud de cambios para arreglar una alerta del Dependabot, éste publica el mensaje de error en la alerta. La vista de Las alertas del dependabot muestra una lista de cualquier alerta que aún no se haya resuelto. Para acceder a la vista de alertas, da clic en Las alertas del dependabot en la pestaña de Seguridad del repositorio. Donde sea que se genere una solicitud de cambios que arregle una dependencia vulnerable, la alerta incluirá un enlace a dicha solicitud.

Vista de las Las alertas del dependabot que muestra un enlace a una solicitud de cambios

Hay tres razones por las cuales una alerta pudiera no tener un enlace a una solicitud de cambios:

  1. No se han habilitado las Actualizaciones de seguridad del dependabot en el repositorio.
  2. La alerta es para una dependencia transitoria o indirecta que no se definió explícitamente en un archivo de bloqueo.
  3. Un error bloqueó al Dependabot y éste no puede crear una solicitud de cambios.

Si existe un error que bloqueó al Dependabot y éste no puede crear una solicitud de cambios, puedes mostrar los detalles del error si das clic en la alerta.

Alerta del Dependabot que mustra el error que bloqueó la creación de una solicitud de cambios

Investigar los errores de las Actualizaciones de versión del dependabot

Cuando el Dependabot se bloquea y no puede crear una solicitud de cambios para actualizar una dependencia en un ecosistema, éste publica el icono de error en el archivo de manifiesto. Los archivos de manifiesto que administra el Dependabot se listan en la pestaña de Dependabot. Para acceder a esta pestaña, en la pestaña de perspectivas del repositorio, da clic en Gráfica de dependencias, y luego en la pestaña Dependabot.

vista del Dependabot que muestra un error

Para ver el archivo de bitácora de cualquier archivo de manifiesto, da clic en el enlace de Última revisión hace TIEMPO. Cuando muestras el archivo de bitácora de un manifiesto que se muestra con un símbolo de error (por ejemplo, Maven en la impresión de pantalla anterior), cualquier error se mostrará también.

Error y bitácora de una actualizacón de versión del Dependabot

Entender los errores del Dependabot

Las solicitudes de cambios para las actualizaciones de seguridad actúan para mejorar una dependencia vulnerable a la versión mínima que incluya un arreglo de la vulnerabilidad. Por el contrario, las solicitudes de cambios para las actualizaciones de versión actúan para mejorar una dependencia a la última versión que permite el paquete de archivos de manifiesto y de configuración del Dependabot. Como consecuencia, algunos errores son específicos de un tipo de actualización.

El Dependabot no puede actualizar la DEPENDENCIA a una versión no-vulnerable

Únicamente actualizaciones de seguridad. El Dependabot no puede crear una solicitud de cambios para actualizar la dependencia vulnerable a una versión segura sin afectar otras dependencias en la gráfica de dependencias de este repositorio.

Cada aplicación que tenga dependencias tiene una gráfica de dependencias, esto es, una gráfica acíclica dirigida de cada versión de paquete de la cual depende la aplicación directa o indirectamente. Cada vez que se actualiza una dependencia, esta gráfica debe resolverse o la aplicación no se compilará. Cuando un ecosistema tiene una gráfica de dependencias profunda y compleja, por ejemplo, npm y RubyGems, es a menudo imposible mejorar una sola dependencia sin mejorar todo el ecosistema.

La mejor forma de evitar este problema es mantenerse actualizado con los lanzamientos de versiones más recientes, por ejemplo, habilitando las actualizaciones de versión. Esto aumenta la probabilidad de que una vulnerabilidad en alguna dependencia pueda resolverse con una mejora simple que no afecte la gráfica de dependencias. Para obtener más información, consulta la sección "Habilitar e inhabilitar las actualizaciones de versión".

El Dependabot no puede actualizar a la versión requerida porque ya existe una solicitud de cambios abierta para la última versión

Únicamente actualizaciones de seguridad. El Dependabotno creará una solicitud de cambios para actualizar la dependencia vulnerable a una versión segura porque ya existe una solicitud de cambios abierta para actualizar dicha dependencia. Verás éste error cuando se detecte una vulnerabilidad en una dependencia específica y ya exista una solicitud de cambios abierta para actualizar dicha dependencia a la última versión disponible.

Existen dos opciones: puedes revisar la solicitud de cambios abierta y fusionarla tan pronto como puedas garantizar que el cambio es seguro, o cerrar la solicitud de cambios y activar una solicitud nueva de actualización de seguridad. Para obtener más información, consulta la sección "Activar una solicitud de cambios del Dependabot manualmente".

El Dependabot agotó el tiempo de espera durante su actualización

El Dependabot tardó más del límite de tiempo máximo permitido para valorar la actualización requerida y preparar una solicitud de cambios. Este error a menudo se ve únicamente en los repositorios grandes con muchos archivos de manifiesto, por ejemplo, en los proyectos de npm o yarn monorepo, que tienen cientos de archivos package.json. Las actualizaciones en el ecosistema de Composer también llevan más tiempo para su valoración y podrían exceder el tiempo de espera.

Es difícil tratar a este error. Si una actualización de versión excede el tiempo de espera, podrías especificar las dependencias más importantes a actualizar utilizando el parámetro allow o, como alternativa, utilizar el parámetro ignore para excluir algunas de las dependencias de estas actualizaciones. El actualizar tu configuración podría permitir que el Dependabot revise la actualización de versión y genere la solicitud de cambios en el tiempo disponible.

Si una actualización de seguridad excede el tiempo de espera, puedes reducir la probabilidad de que esto suceda si mantienes las dependencias actualizadas, por ejemplo, habilitando las actualizaciones de versión. Para obtener más información, consulta la sección "Habilitar e inhabilitar las actualizaciones de versión".

El Dependabot no puede abrir más solicitudes de cambios

Hay un límite en la cantidad de solicitudes de cambios abiertas que el Dependabot puede generar. Cuando se llega a éste límite, no se podrán abrir más solicitudes de cambios y se reportará este error. La mejor forma de resolver este error es revisar y fusionar algunas de las solicitudes de cambios abiertas.

Hay límites separados para las solicitudes de cambios de actualización de seguridad y de versión, y esto es para que aquellas de actualización de versión no bloqueen la creación de las de actualización de seguridad. El límite para las solicitudes de cambios de actualizaciones de seguridad es de 10. Predeterminadamente, el límite para las actualizaciones de versión es de 5, pero puedes cambiar ésto utilizando el parámetro open-pull-requests-limit en el archivo de configuración. Para obtener más información, consulta la sección "Opciones de configuración para las actualizaciones de dependencias".

La mejor forma de resolver este error es fusionar o cerrar algunas de las solicitudes de cambios existentes y activar una solicitud de cambios nueva manualmente. Para obtener más información, consulta la sección "Activar una solicitud de cambios del Dependabot manualmente".

El Dependabot no puede resolver o acceder a tus dependencias

Si el Dependabot intenta verificar si las referencias de la dependencia necesitan actualizarse en un repositorio, pero no puede acceder a uno o más de los archivos referenciados, la operación fallará con el mensaje de error "Dependabot can't resolve your LANGUAGE dependency files". El tipo de error de la API es git_dependencies_not_reachable.

De forma similar, si el Dependabot no puede acceder a un registro de un paquete privado en el cual se ubica la dependencia, se generará alguno de los siguientes errores:

  • "El dependabot no puede llegar a la dependencia en un registro de paquete privado"
    (Tipo de error de la API: private_source_not_reachable)
  • "El Dependabot no puede autenticarse en un registro de paquete privado"
    (Tipo de error de la API:private_source_authentication_failure)
  • "El Dependabot llegó al límite de tiempo de espera para un registro de paquete privado"
    (Tipo de error de la API:private_source_timed_out)
  • "El Dependabot no pudo validar el certificado para un registro de paquete privado"
    (Tipo de error de la API:private_source_certificate_failure)

Para permitir añ Dependabot actualizar las referencias de dependencia exitosamente, asegúrate que todas las dependencias referencias se hospeden en ubicaciones accesibles.

Únicamente actualizaciones de versión 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". Adicionalmente, el Dependabot no es compatible con dependencias de GitHub privadas para todos los administradores de paquetes. Para obtener más información, consulta la sección "Acerca de las actualizaciones de versión del Dependabot".

Activar una solicitud de cambios del Dependabot manualmente

Si desbloqueas al Dependabot, puedes activar manualmente un nuevo intento de crear una solicitud de cambios.

  • Actualizaciones de seguridad—muestra la alerta del Dependabot que presente el error que arreglaste y da clic en Crear una actualización de seguridad del Dependabot.
  • Actualizaciones de versión—en la pestaña de Perspectivas del repositorio, da clic en Gráfica de dependencias y luego en la pestaña de Dependabot. Da clic en Verificado hace TIME para ver el archivo de bitácora que generó el Dependabot durante la última verificación de actualizaciones de versión. Da clic en Verificar actualizaciones.

¿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.