Habilitar e inhabilitar las actualizaciones de versión

Puedes configurar tu repositorio para que el Dependabot actualice automáticamente los paquetes que utilizas.

People with write permissions to a repository can enable or disable Actualizaciones de versión del dependabot for the repository.

Acerca de las actualizaciones de versión para las dependencias

Habilitarás Actualizaciones de versión del dependabot mediante la selección de un archivo de configuración de dependabot.yml en el directorio .github dentro de tu repositorio. El Dependabot levanta entonces las solicitudes de extracción para mantener actualizadas las dependencias que configures. Para cada dependencia del administrador de paquete que quieras actualizar, debes especificar la ubicación de los archivos de manifiesto de dicho paquete, así como la periodicidad en la que quieres buscar actualizaciones para las dependencias listadas en esos archivos. Para obtener más información sobre habilitar las actualizaciones de seguridad, consulta la sección "Configurar las Actualizaciones de seguridad del dependabot".

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

Habilitar las Actualizaciones de versión del dependabot

  1. Crea un archivo de configuración dependabot.yml. Para obtener más información, consulta la sección "Opciones de configuración para las actualziaciones de las dependencias".
  2. Agrega una version.
  3. Opcionalmente, si tienes dependencias en un registro privado, agrega una sección de registries que contenga los detalles de autenticación.
  4. Agrega una sección de updates con una entrada para cada administrador de paquetes que quieras que monitoree el Dependabot.
  5. Para cada administrador de paquete, utiliza:
    • package-ecosystem para especificar el administrador de paquetes.
    • directory para especificar la ubicación del manifiesto u otros archivos de definición.
    • schedule.interval para especificar qué tan a menudo se debe revisar si hay nuevas versiones.
  6. Revisa el archivo de configuración dependabot.yml en el directorio .github del repositorio.

Archivo dependabot.yml de ejemplo

El archivo de ejemplo dependabot.yml que se muestra a continuación actualiza dos administradores de paquetes: npm y Docker. Cuando se registra este archivo, el Dependabot revisa los archivos de manifiesto en la rama predeterminada par ver si hay dependencias desactualizadas. Si encuentra dependencias desactualizadas, levantará solicitudes de extracción contra la rama predeterminada para actualizar estas dependencias.

# Basic dependabot.yml file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

En el ejemplo anterior, si las dependencias de Docker estuvieran muy desactualizadas, tal vez quisieras comenzar con una programación de tipo daily hasta que las dependencias estén bien actualizadas y, posteriormente, tomar una programación semanal.

Habilitar las actualizaciones de versión en las bifurcaciones

Si quieres habilitar las actualizaciones de versión en las bifurcaciones, hay un paso extra que debes tomar. Las actualizaciones de versión no se habilitan automáticamente en las bifurcaciones cuando existe un archivo de configuración dependabot.yml. Esto garantiza que los dueños de la bifurcación no habiliten las actualizaciones de versión accidentalmente cuando suben cambios, incluyendo el archivo de configuración dependabot.yml del repositorio original.

En una bifurcación, también necesitas habilitar explícitamente el Dependabot.

  1. En GitHub, visita la página principal del repositorio.
  2. Debajo de tu nombre de repositorio, da clic en Perspectivas. Pestaña de perspectivas en la barra de navegación del repositorio principal
  3. En la barra lateral izquierda, da clic en Gráfica de dependencias. Pestaña de gráfica de dependencias en la barra lateral izquierda
  4. Debajo de "Gráfica de dependencias", da clic en Dependabot. Gráfica de dependencias, pestaña de Dependabot
  5. Debajo de "Habilitar el Dependabot", da clic en Enable Dependabot.

Revisar el estado de las actualizaciones de versión

Después de que habilitas las actualizaciones de versión, verás una nueva pestaña de Dependabot en la gráfica de dependencias del repositorio. Esta pestaña muestra los administradores de paquetes para los cuales se configuró el monitoreo del Dependabot y cuándo éste revisó las últimas versiones.

Pestaña de perspectivas de repositorio, gráfica de dependencias, pestaña de dependabot

Para obtener más información, consulta la sección "Listar las dependencias configuradas para las actualizaciones de versión".

Inhabilitar las Actualizaciones de versión del dependabot

Puedes inhabilitar las actualizaciones de versión completamente si eliminas el archivo dependabot.yml de tu repositorio. Normalmente, tal vez quieras inhabilitar las actualizaciones temporalmente para una o más dependencias o administradores de paquete.

  • Administradores de paquete: inhabilítalas configurando open-pull-requests-limit: 0 o dejando de comentar el package-ecosystem relevante en el archivo de configuración.
  • Dependencias específicas: inhabilítalas agregando los atributos de ignore para los paquetes o aplicaciones que quieras excluir de las actualizaciones.

Cuando inhabilitas las dependencias, puedes utilizar comodines para empatar con un conjunto de bibliotecas relacionadas. También puedes especificar qué versiones excluir. Esto es particularmente útil si necesitas bloquear actualizaciones en una biblioteca, el trabajo pendiente para apoyar un cambio sustancial en su API, pero quieres quieres obtener cualquier arreglo de seguridad para la versión que utilices.

Ejemplo de inhabilitar las actualizaciones de versión para algunas dependencias

En este archivo de dependabot.yml de ejemplo se incluyen ejemplos de las formas diferentes para inhabilitar las actualizaciones en algunas dependencias, mientras que se permite que otras actualizaciones continuen.

# dependabot.yml file with updates
# disabled for Docker and limited for npm

version: 2
updates:
  # Configuration for Dockerfile
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
      # Disable all pull requests for Docker dependencies
    open-pull-requests-limit: 0

  # Configuration for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    ignore:
      # Ignore updates to packages that start with 'aws'
      # Wildcards match zero or more arbitrary characters
      - dependency-name: "aws*"
      # Ignore some updates to the 'express' package
      - dependency-name: "express"
        # Ignore only new versions for 4.x and 5.x
        versions: ["4.x", "5.x"]
      # For all packages, ignore all patch updates
      - dependency-name: "*"
        update-types: ["version-update:semver-patch"]

Para obtener más información acerca de revisar si existen preferencias para ignorar, consulta la sección "Opciones de configuración para las actualizaciones de depdendencias".

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