Skip to main content

Enterprise Server 3.21 actualmente está disponible como versión candidata para lanzamiento.

Configuración de las actualizaciones de versiones de Dependabot

Puede configurar el repositorio para que Dependabot actualice automáticamente los paquetes que use.

¿Quién puede utilizar esta característica?

Users with write access

Nota:

Para poder utilizar esta característica, el administrador del sitio debe configurar Dependabot updates para tu instancia de GitHub Enterprise Server. Para obtener más información, consulta Habilitación de Dependabot para la empresa.

Es posible que no puedas habilitar ni deshabilitar Dependabot updates si un propietario de empresa ha establecido una directiva a nivel empresarial. Para más información, consulta Aplicación de directivas de seguridad y análisis de código de la empresa.

Habilitar Dependabot version updates

Para habilitar Dependabot version updates , confirme un dependabot.yml archivo de configuración en el repositorio.

  1. Crea un archivo de configuración dependabot.yml en el directorio .github del repositorio. Puede usar el fragmento de código siguiente como punto inicial. For information about the options you can use to customize how Dependabot maintains your repositories, see Referencia de opciones de Dependabot.

    YAML
    # To get started with Dependabot version updates, you'll need to specify which
    # package ecosystems to update and where the package manifests are located.
    
    version: 2
    updates:
    - package-ecosystem: "" # See documentation for possible values
      directory: "/" # Location of package manifests
      schedule:
        interval: "weekly"
    
  2. Agrega un version. Esta clave es necesaria. El archivo debe comenzar por version: 2.

  3. Opcionalmente, si tienes dependencias en un registro privado, agrega una sección registries que contenga los detalles de autenticación. Para obtener más información, vea Configuración del acceso a registros privados para Dependabot.

  4. Agregue una updates sección, con una entrada para cada administrador de paquetes que quiera Dependabot supervisar. Esta clave es necesaria. Se usa para configurar cómo Dependabot se actualizan las versiones o las dependencias del proyecto. Cada entrada configura los ajustes de actualización para un administrador de paquetes en particular. Para obtener más información, vea Acerca del archivo dependabot.yml y Referencia de opciones de Dependabot.

  5. Para cada administrador de paquete, utiliza:

    • package-ecosystem para especificar el administrador de paquetes. Para más información sobre los administradores de paquetes admitidos, consulte package-ecosystem.
    • directories o directory para especificar la ubicación de varios archivos de manifiesto o definición. Para más información, consulta Definición de varias ubicaciones para archivos de manifiesto.
    • schedule.interval para especificar la frecuencia con la que se comprueban las nuevas versiones.
  6. Compruebe el archivo de configuración dependabot.yml en el directorio .github del repositorio.

Archivo dependabot.yml de ejemplo

El archivo de ejemplo dependabot.yml siguiente configura las actualizaciones de versión para tres administradores de paquetes: npm, Docker y GitHub Actions. Cuando se incorpora este archivo, Dependabot comprueba los archivos de manifiesto en la rama predeterminada en busca de dependencias obsoletas. Si encuentra dependencias desactualizadas, levantará solicitudes de extracción contra la rama predeterminada para actualizar estas dependencias.

YAML
# Basic `dependabot.yml` file with
# minimum configuration for three 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"

  # Enable version updates for GitHub Actions
  - package-ecosystem: "github-actions"
    # Workflow files stored in the default location of `.github/workflows`
    # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.
    directory: "/"
    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 debe habilitar Dependabotexplícitamente .

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Security" de la barra lateral, haz clic en Advanced Security.

  4. En "Dependabot", a la derecha de "Dependabot version updates", haga clic en Habilitar para permitir Dependabot iniciar actualizaciones de versión.

Recepción de actualizaciones para dependencias indirectas

De forma predeterminada, solo las dependencias directas que se definen explícitamente en un manifiesto se mantienen actualizadas por Dependabot version updates. Puedes decidir recibir actualizaciones de dependencias indirectas definidas en archivos de bloqueo. Para obtener más información, vea Control de qué dependencias actualiza Dependabot.

Habilitación del acceso a dependencias privadas

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.

Además, Dependabot no admite dependencias privadas GitHub para todos los administradores de paquetes. Para obtener más información, vea Ecosistemas y repositorios admitidos por Dependabot y compatibilidad con idiomas de GitHub.

Revisar el estado de las actualizaciones de versión

Después de habilitar las actualizaciones de versión, se rellena la pestaña Dependabot del gráfico de dependencias del repositorio. En esta pestaña se muestra qué administradores Dependabot de paquetes están configurados para supervisar y cuándo Dependabot se comprueban por última vez las nuevas versiones.

Captura de pantalla de la página Gráfico de dependencias. La pestaña con el nombre "Dependabot", está resaltada con un contorno naranja.

Para obtener información, vea Listar dependencias configuradas para las actualizaciones de versión.

Deshabilitar Dependabot version updates

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 paquetes: deshabilítalo estableciendo open-pull-requests-limit: 0 o comentando el package-ecosystem correspondiente en el archivo de configuración.
  • Dependencias específicas: deshabilítalas agregando los atributos 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 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: "weekly"
    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 más información sobre cómo comprobar las preferencias de omisión existentes, consulta Referencia de opciones de Dependabot.