Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2026-03-17. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Referencia de opciones de Dependabot

La información detallada para todas las opciones que puedes utilizar para personalizar como el Dependabot mantiene tus repositorios.

¿Quién puede utilizar esta característica?

Users with write access

En este artículo se proporciona información de referencia sobre las opciones de configuración disponibles en el dependabot.yml archivo . Utiliza estas opciones para personalizar cómo Dependabot supervisa los ecosistemas de paquetes, programa las actualizaciones y crea pull requests. Para obtener información general sobre el dependabot.yml archivo y cómo funciona, consulte Acerca del archivo dependabot.yml.

Todas las opciones marcadas con un icono también cambian cómo Dependabot crea solicitudes de incorporación de cambios para las actualizaciones de seguridad, excepto donde se usa target-branch.

Claves necesarias

KeyUbicaciónPropósito
versionNivel superiorSintaxis de configuración de Dependabot que se va a utilizar. Siempre: 2
updatesNivel superiorSección en la que se define cada package-ecosystem que se va a actualizar.
package-ecosystemEn updatesDefine un administrador de paquetes que se va a actualizar.
          [
          `directories` o `directory`](#directories-or-directory--) | Debajo de cada entrada `package-ecosystem` | Definir la ubicación del manifiesto u otros archivos de definición para actualizar. |

| schedule.interval | Debajo de cada entrada package-ecosystem | Definir si se deben buscar actualizaciones de versión: daily, weekly o monthly. |

Opcionalmente, también puede incluir una clave registries de nivel superior para definir los detalles de acceso de los registros privados; consulte Clave registries de nivel superior.

YAML

# 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"

Para ver un ejemplo real de un archivo dependabot.yml, consulte el archivo de configuración propio de Dependabot.

allow

Se usa para definir exactamente qué dependencias mantener para un ecosistema de paquetes. A menudo se usa con la opción ignore. Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

Comportamiento predeterminado de Dependabot:

  • Todas las dependencias definidas explícitamente en un manifiesto se mantienen actualizadas por las actualizaciones de versión.
  • Las actualizaciones de seguridad actualizan todas las dependencias definidas en archivos de bloqueo con dependencias vulnerables.

Cuando se especifica allow, Dependabot usa el siguiente proceso:

  1. Comprueba todas las dependencias permitidas explícitamente.

  2. Después, filtra las dependencias o versiones omitidas.

    Si una dependencia coincide con una instrucción allow y ignore, se omite.

ParámetrosPropósito
dependency-namePermitir actualizaciones de dependencias con nombres que coinciden; opcionalmente, se usa * para que coincida con cero o más caracteres.
dependency-typePermitir actualizaciones de dependencias de tipos específicos.

          `dependency-name` (`allow`)

Para la mayoría de los administradores de paquetes, debe definir un valor que coincida con el nombre de la dependencia especificado en el archivo de bloqueo o manifiesto. Algunos sistemas tienen requisitos más complejos.

Administrador de paquetesFormato necesarioExample
Gradle y MavengroupId:artifactIdorg.kohsuke:github-api
Docker para etiquetas de imagenEl nombre completo del repositorioPara una etiqueta de imagen de <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc, use base/foo/bar/ruby.

          `dependency-type` (`allow`)
Tipos de dependenciaAdministradores de paquete compatiblesPermitir actualizaciones
directTodosTodas las dependencias definidas explícitamente.
indirectbundler, pip, composer, cargo, gomodDependencias de dependencias directas (también conocidas como dependencias secundarias o dependencias transitivas).
allTodosTodas las dependencias definidas explícitamente. Para bundler, pip, composer, cargo, gomod, también las dependencias de las dependencias directas.
production
          `bundler`, `composer`, `mix`, `maven`, `npm`, `pip` (no todos los administradores) | Solo para dependencias definidas por el administrador de paquetes como dependencias de producción. |

| development| bundler, composer, mix, maven, npm, pip (no todos los administradores) | Solo para dependencias definidas por el administrador de paquetes como dependencias de desarrollo. |

assignees

Especifique usuarios asignados individuales para todas las solicitudes de incorporación de cambios generadas para un ecosistema de paquetes. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • Las solicitudes de incorporación cambios se crean sin usuarios asignados.

Cuando se define assignees:

  • Todas las solicitudes de cambios para las actualizaciones de versión se crean con los usuarios asignados elegidos.
  • Todas las solicitudes de cambios para las actualizaciones de seguridad se crean con los usuarios asignados elegidos, a menos que target-branch defina las actualizaciones en una rama no predeterminada.

Los usuarios asignados deben tener acceso de escritura al repositorio. Para repositorios propiedad de la organización, los miembros de la organización con acceso de lectura también son usuarios asignados válidos.

commit-message

Defina el formato para los mensajes de confirmación. Como los títulos de las solicitudes de incorporación de cambios se escriben en función de los mensajes de confirmación, este valor también afecta a los títulos de las solicitudes de incorporación de cambios. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • Los mensajes de confirmación siguen patrones similares a los detectados en el repositorio.

Cuando se define commit-message:

  • Todos los mensajes de confirmación siguen el patrón definido.
  • Todos los mensajes de confirmación siguen el patrón definido, a menos que target-branch defina actualizaciones en una rama no predeterminada.
ParámetrosPropósito
prefixDefine un prefijo para todos los mensajes de confirmación y títulos de solicitud de incorporación de cambios.
prefix-developmentEn los sistemas compatibles, define un prefijo diferente que se usará para confirmaciones que actualizan las dependencias en el grupo de dependencias de desarrollo.
includeDespués del prefijo del mensaje de confirmación debes agregar información adicional.

Sugerencia

Cuando se generan solicitudes de incorporación de cambios para actualizaciones agrupadas, el nombre de rama y el título de la solicitud de incorporación de cambios se definen mediante el grupo IDENTIFIER; consulte groups.

prefix

  • Se usa para todos los mensajes de confirmación a menos que también se defina prefix-development.
  • El valor puede tener hasta 50 caracteres.
  • Dependabot inserta dos puntos después del prefijo antes de agregar el mensaje de confirmación principal cuando el valor termina con una letra, un número, un paréntesis de cierre o un corchete de cierre.
  • Finaliza el valor con un carácter de espacio en blanco para no agregar los dos puntos.

prefix-development

Compatible con: bundler, composer, mix, maven, npm y pip.

  • Solo se usa para los mensajes de confirmación que actualizan las dependencias del grupo de dependencias de desarrollo.
  • De lo contrario, el parámetro se comporta exactamente como el parámetro prefix.

include

  • Solo admite el valor scope
  • Cuando se define, cualquier prefijo va seguido del tipo de las dependencias actualizadas en la confirmación: deps o deps-dev.

          `directories` o `directory` <svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg> <svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>

          **Opción obligatoria**. Se usa para definir la ubicación de los manifiestos de paquetes para cada administrador de paquetes (por ejemplo, _package.json_ o _Gemfile_). Si esta información, Dependabot no puede genera solicitudes de cambios para actualizaciones de versión. Para obtener ejemplos, consulta [Definición de varias ubicaciones para archivos de manifiesto](/code-security/dependabot/dependabot-version-updates/controlling-dependencies-updated#defining-multiple-locations-for-manifest-files).
  • Usa directory para definir un único directorio de manifiestos.

  • Usa directories para definir una lista de varios directorios de manifiestos.

  • Define directorios relativos a la raíz del repositorio para la mayoría de los administradores de paquetes.

  • Para GitHub Actions, usa el valor /. Dependabot buscará en el directorio /.github/workflows, así como en el archivo action.yml/action.yaml desde el directorio raíz.

Si necesitas usar más de un bloque en el archivo de configuración a fin de definir actualizaciones para una sola rama de destino de un ecosistema, debes asegurarte de que todos los valores sean únicos y que los directorios definidos no se superpongan.

Nota:

La clave directories admite comodines y el carácter comodín *. Estas características no son compatibles con la clave directory.

enable-beta-ecosystems

No se usa actualmente.

groups

Define reglas para crear uno o varios conjuntos de dependencias administradas por un administrador de paquetes, para agrupar las actualizaciones en menos solicitudes de cambios dirigidas. Para ejemplos, consulta Optimización de la creación de pull requests para actualizaciones de Dependabot.

Comportamiento predeterminado de Dependabot:

  • Abre una única solicitud de cambios para cada dependencia que se deba actualizar a una versión más reciente para las actualizaciones de versión y para las actualizaciones de seguridad.

Cuando se usa groups para definir reglas:

  • Todas las actualizaciones de las dependencias que coinciden con una regla se combinan en una única solicitud de incorporación de cambios.
  • Si una dependencia coincide con más de una regla, se incluye en el primer grupo que coincide.
  • Las dependencias obsoletas que no coinciden con una regla se actualizan en solicitudes de incorporación de cambios individuales.
ParámetrosPropósito
IDENTIFIERDefinir un identificador para que el grupo lo use en nombres de rama y títulos de solicitud de incorporación de cambios. Debe empezar y acabar por una letra y puede tener letras, barras verticales |, guiones bajos _ o guiones -.
applies-toEspecifica a qué tipo de actualización se aplica el grupo. Cuando no se define, el valor predeterminado son las actualizaciones de versión. Valores admitidos: version-updates o security-updates.
dependency-typeLimita el grupo a un tipo. Valores admitidos: development o production.
exclude-patternsDefinir uno o varios patrones para excluir las dependencias del grupo.
patternsDefinir uno o varios patrones para incluir dependencias con nombres coincidentes.
update-typesLimitar el grupo a uno o varios niveles de versionamiento semántico. Valores admitidos: minor, patchy major.

          `dependency-type` (`groups`)

Compatible con: bundler, composer, mix, maven, npm y pip.

De manera predeterminada, un grupo incluirá todos los tipos de dependencias.

  • Usa development para incluir solo las dependencias en el "Grupo de dependencias de desarrollo".
  • Usa production para incluir solo las dependencias en el "Grupo de dependencias de producción".

          `patterns` y `exclude-patterns` (`groups`)

Las dos opciones admiten el uso de * como comodín para definir coincidencias con nombres de dependencia. Si una dependencia coincide con un patrón y un patrón de exclusión, se excluye del grupo.

          `update-types` (`groups`)

De manera predeterminada, un grupo incluirá actualizaciones para todas las versiones semánticas (SemVer). SemVer es un estándar aceptado para definir versiones de paquetes de software, con el formato x.y.z. Dependabot supone que las versiones con este formato siempre son major.minor.patch.

  • Usa patch para incluir versiones de revisión.
  • Usa minor para incluir versiones secundarias.
  • Usa major para incluir versiones principales.

Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

ignore

Se usa con la opción allow para definir exactamente qué dependencias mantener para un ecosistema de paquetes. El Dependabot revisa las dependencias permitidas y después filtra cualquier dependencia o versión ignorada. Por tanto, se omitirá una dependencia que coincida con permitir y omitir. Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

Comportamiento predeterminado de Dependabot:

  • Todas las dependencias definidas explícitamente en un manifiesto se mantienen actualizadas por las actualizaciones de versión.
  • Las actualizaciones de seguridad actualizan todas las dependencias definidas en archivos de bloqueo con dependencias vulnerables.

Cuando se usa ignore, Dependabot utiliza el siguiente proceso:

  1. Comprueba todas las dependencias permitidas explícitamente.

  2. Después, filtra las dependencias o versiones omitidas.

    Si una dependencia coincide con una instrucción allow y ignore, se omite.

ParámetrosPropósito
dependency-nameOmitir actualizaciones de dependencias con nombres que coinciden; opcionalmente, se usa * para que coincida con cero o más caracteres.
versionsOmitir versiones o rangos específicos de las versiones.
update-typesOmitir las actualizaciones de uno o varios niveles de versionamiento semántico. Valores admitidos: version-update:semver-minor, version-update:semver-patchy version-update:semver-major.

          `dependency-name` (`ignore`)

Para la mayoría de los administradores de paquetes, debe definir un valor que coincida con el nombre de la dependencia especificado en el archivo de bloqueo o manifiesto. Algunos sistemas tienen requisitos más complejos.

Administrador de paquetesFormato necesarioExample
Gradle y MavengroupId:artifactIdorg.kohsuke:github-api
Docker para etiquetas de imagenEl nombre completo del repositorioPara una etiqueta de imagen de <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc, use base/foo/bar/ruby.

          `versions` (`ignore`)

Úsala para omitir versiones concretas o intervalos de versiones. Si quieres definir un rango, usa el patrón estándar para el administrador de paquetes. Por ejemplo:

  • npm: utilizar ^1.0.0
  • Bundler: usa ~> 2.0
  • Docker: uso de la sintaxis de la versión de Bundler
  • NuGet: usa 7.*
  • Maven: use [1.4,)

Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

          `update-types` (`ignore`)

Especifique qué versiones semánticas (SemVer) se omitirán. SemVer es un estándar aceptado para definir versiones de paquetes de software, con el formato x.y.z. Dependabot supone que las versiones de este formulario siempre son major.minor.patch.

  • Usa version-update:semver-patch para incluir versiones de revisión.
  • Usa version-update:semver-minor para incluir versiones secundarias.
  • Usa version-update:semver-major para incluir versiones principales.

insecure-external-code-execution

Compatible con: bundler, mix y pip.

Permite que Dependabot ejecute código externo en el manifiesto durante las actualizaciones. Para ver ejemplos, consulte Permitir la ejecución de código externo.

Comportamiento predeterminado de Dependabot:

  • Al conceder acceso a Dependabot a uno o varios registros, la ejecución de código externo se deshabilita automáticamente para proteger el código de los paquetes en peligro.
  • Es posible que se produzca un error en las actualizaciones de versión sin la capacidad de ejecutar código.

Cuando se permite insecure-external-code-execution:

  • Dependabot ejecutará código en el manifiesto como parte del proceso de actualización de la versión.
  • El código solo tiene acceso a los administradores de paquetes de los registros asociados a ese valor de updates. No se permite el acceso a ninguno de los registros definidos en la configuración de registries de nivel superior.
  • Esto debería permitir que la actualización sea correcta pero también que un paquete que se haya puesto en riesgo robe las credenciales u obtenga acceso a los registros configurados.

Valor admitido: allow.

labels

Especifique sus propias etiquetas para todas las solicitudes de incorporación de cambios generadas para un administrador de paquetes. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • Todas las solicitudes de incorporación de cambios tienen una etiqueta dependencies.
  • Si define más de un administrador de paquetes, se agrega una etiqueta adicional para el ecosistema o el lenguaje a cada solicitud de incorporación de cambios. Por ejemplo, java para actualizaciones de Gradle o submodules para actualizaciones de submódulo de Git.
  • Si las etiquetas de versión semántica (SemVer) están presentes en el repositorio, se aplicarán automáticamente para indicar el tipo de actualización de versión (major, minoro patch).
  • El Dependabot crea estas etiquetas predeterminadas automáticamente, de acuerdo lo necesite tu repositorio.

Cuando se define labels:

  • Se usan las etiquetas especificadas en lugar de las predeterminadas.
  • Las etiquetas semVer (si están presentes en el repositorio) se seguirán aplicando además de las etiquetas personalizadas definidas.
  • Si ninguna de estas etiquetas se define en el repositorio, entonces se ha ignorado.
  • Pude deshabilitar todas las etiquetas, incluidas las predeterminadas, con labels: [ ].

Configurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use target-branch para buscar actualizaciones de versión en una rama diferente a la predeterminada.

milestone

Asocie todas las solicitudes de incorporación de cambios generadas para un administrador de paquetes con un hito. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • No se usan hitos.

Cuando se define milestone:

  • Todas las solicitudes de incorporación de cambios del administrador de paquetes se agregan al hito.

Valor admitido: identificador numérico de un hito.

Sugerencia

Si ve un hito, la parte final de la dirección URL de la página, después de milestone, es el identificador. Por ejemplo: https://github.com/<org>/<repo>/milestone/3; consulta Ver el avance de tu hito.

open-pull-requests-limit

Cambie el límite máximo de solicitudes de incorporación de cambios para las actualizaciones de versión abiertas en cualquier momento.

Comportamiento predeterminado de Dependabot:

  • Si se abren cinco solicitudes de incorporación de cambios con actualizaciones de versión, no se generan más solicitudes de incorporación de cambios hasta que algunas de las abiertas se combinen o se cierren.
  • Las actualizaciones de seguridad que tienen un límite separado e interno de diez solicitudes de incorporación de cambios abiertas que no se puede modificar.

Cuando se define open-pull-requests-limit:

  • Dependabot abre solicitudes de incorporación de cambios hasta el valor entero definido. Se puede establecer un valor grande para quitar de manera efectiva el límite de solicitudes de incorporación abiertas.
  • Puede deshabilitar temporalmente las actualizaciones de versión de un administrador de paquetes si establece esta opción en cero; consulte Deshabilitación de Dependabot version updates.

package-ecosystem

          **Opción obligatoria.** Defina un elemento `package-ecosystem` para cada administrador de paquetes que quiera que Dependabot supervise a fin de encontrar versiones nuevas. El repositorio también debe contener un archivo de bloqueo o de manifiesto de dependencias para cada administrador de paquetes, consulte [Ejemplo de archivo `dependabot.yml`](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#example-dependabotyml-file).
Administrador de paquetesEl valor de YAMLVersiones compatibles
Bundlerbundlerv1, v2
Cargocargov1
Composercomposerv2
Contenedores de desarrollodevcontainersNo aplicable
Dockerdockerv1
Hexmixv1
elm-packageelmv0.19
submódulo de gitgitsubmoduleNo aplicable
GitHub Actionsgithub-actionsNo aplicable
Módulos de Gogomodv1
GradlegradleNo aplicable
MavenmavenNo aplicable
npmnpmv7, v8, v9, v10
NuGetnuget
pippipv24.2
pip-compilepip7.4.1
pipenvpip<= 2024.4.1
pnpmnpmv7, v8
v9, v10 (solo actualizaciones de versión)
poetrypipv2
pubpubv2
Swiftswiftv5
Terraformterraform>= 0,13, <= 1.10.x
Yarnnpmv1, v2, v3, v4

pull-request-branch-name.separator

Especifique un separador que se usará al generar nombres de rama. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • Generar nombres de rama con el formato: dependabot/PACKAGE_MANAGER/DEPENDENCY

Cuando se define pull-request-branch-name.separator:

  • Usa el carácter especificado en lugar de /.

Valores admitidos: "-", _, /.

Sugerencia

Se debe aplicar escape al símbolo de guion para que no se interprete como el inicio de una lista de YAML vacía.

rebase-strategy

Deshabilite la fusión mediante cambio de base automática de las solicitudes de incorporación de cambios generada por Dependabot.

El comportamiento predeterminado de Dependabot es fusionar mediante cambio de base las solicitudes de incorporación de cambios abiertas cuando Dependabot detecta cambios en una solicitud de incorporación de cambios de actualización de seguridad o de versión. Dependabot comprueba si hay cambios cuando:

  • La programación se ejecuta para comprobar si hay actualizaciones de versión.
  • Al volver a abrir una solicitud de incorporación de cambios de Dependabot cerrada.
  • Al cambiar el valor de target-branch en el archivo de configuración de Dependabot, consulte target-branch.
  • Hay una solicitud de incorporación de cambios de Dependabot en conflicto después de una inserción reciente en la rama de destino.

Cuando rebase-strategy se establece en disabled, Dependabot deja de fusionar mediante cambio de base las solicitudes de incorporación de cambios.

Nota:

A las solicitudes de incorporación de cambios abiertas antes de deshabilitar la fusión mediante cambio de base se les sigue aplicando la fusión mediante cambio de base hasta 30 días después de que se hayan abierto. Esto afecta a todas las solicitudes de incorporación de cambios que tienen conflictos con la rama de destino y a todas las solicitudes de incorporación de cambios para las actualizaciones de versión.

registries

Configure el acceso a los registros de paquetes privados para permitir que Dependabot actualice una gama más amplia de dependencias; consulte Configuración del acceso a registros privados para Dependabot y Guía para la configuración de registros privados para Dependabot.

Hay 2 ubicaciones en el archivo dependabot.yml donde puede usar la clave registries:

  1. En el nivel superior, donde define los registros privados que quiere usar y su información de acceso, consulte Configuración del acceso a registros privados para Dependabot.
  2. Dentro de los bloques de updates, donde puede especificar qué registros privados debe usar cada administrador de paquetes.

El comportamiento predeterminado de Dependabot consiste en generar solicitudes de incorporación de cambios solo para actualizar las dependencias almacenadas en registros accesibles públicamente.

Cuando el archivo de configuración de Dependabot tiene una sección registries de nivel superior, en la que se define el acceso a uno o varios registros privados, puede configurar cada package-ecosystem para que use uno o varios de estos registros privados.

Cuando se define registries para un administrador de paquetes:

  • Se comprueba cada registro privado especificado para un administrador de paquetes en busca de actualizaciones de versión y seguridad.
  • Dependabot usa los detalles de acceso definidos en la sección registries de nivel superior.

Valores admitidos: REGISTRY_NAME o "*"

reviewers

Importante

La propiedad reviewers se va a cerrar y se quitará en una versión futura de GitHub Enterprise Server.

También puedes agregar automáticamente revisores y asignar usuarios mediante un archivo CODEOWNERS. Consulta Acerca de los propietarios de código.

Especifica revisores o equipos individuales de revisores para todas las solicitudes de cambios generadas para un administrador de paquetes. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

  • Las solicitudes de incorporación de cambios se crean sin revisores asignados.

Cuando se define reviewers:

  • Todas las solicitudes de cambios para las actualizaciones de versión se crean con los revisores elegidos.
  • Todas las solicitudes de cambios para las actualizaciones de seguridad se crean con los revisores elegidos, a menos que target-branch defina las actualizaciones en una rama no predeterminada.

Los revisores deben tener, como mínimo, acceso de lectura al repositorio.

schedule

          **Opción obligatoria.** Defina la frecuencia para comprobar si hay versiones nuevas para cada administrador de paquetes que configure con el parámetro `interval`. Opcionalmente, para intervalos diarios y semanales, puede personalizar cuándo Dependabot comprueba si hay actualizaciones. Para ejemplos, consulta [AUTOTITLE](/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates).
ParámetrosPropósito
interval
          **Obligatorio.** Define la frecuencia de Dependabot. |

| day | Especificar el día que se ejecutará para un intervalo semanal. | | time | Especifica la hora de ejecución. | | | | timezone | Especifica la zona horaria del valor time. |

interval

Valores admitidos: daily, weekly, monthly

Cada administrador de paquetes debe definir un intervalo de programación.

  • use daily para ejecutarse cada día de la semana, de lunes a viernes.
  • Use weekly para ejecutarse una vez a la semana, de manera predeterminada el lunes.
  • Use monthly para ejecutarse el primer día de cada mes.

Predeterminadamente, el Dependabot asigna una hora aleatoria para aplicar todas las actualizaciones en el archivo de configuración. Puedes usar los parámetros time y timezone para establecer un tiempo de ejecución específico para todos los intervalos.

day

Valores admitidos: monday, tuesday, wednesday, thursday, friday, saturday o sunday

Opcionalmente, ejecute actualizaciones semanales para un administrador de paquetes en un día específico de la semana.

time

Formato: hh:mm

Opcionalmente, ejecute todas las actualizaciones de un administrador de paquetes a una hora específica del día. De manera predeterminada, las horas se interpretan como UTC.

timezone

Especifica una zona horaria para el valor time. La zona horaria predeterminada es UTC.

El identificador de zona horaria debe coincidir con una zona horaria de la base de datos mantenida por iana; consulte Lista de zonas horarias de base de datos de tz.

target-branch

Defina una rama específica para comprobar si hay actualizaciones de versión y para dirigir las solicitudes de incorporación de cambios para las actualizaciones de versión. Para ejemplos, consulta Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.

Comportamiento predeterminado de Dependabot:

Cuando se define target-branch:

  • Solo se comprueban si hay actualizaciones de versión en los archivos de manifiesto de la rama de destino.
  • Todas las solicitudes de cambios para las actualizaciones de versión se abren con la rama especificada como destino.
  • Las opciones definidas para package-ecosystem ya no se aplican a las actualizaciones de seguridad porque las actualizaciones de seguridad siempre usan la rama predeterminada para el repositorio.

exclude-paths

Se usa para especificar rutas de acceso de directorios y archivos que Dependabot debe omitir al buscar manifiestos y dependencias. Esta opción es útil cuando quieres evitar actualizaciones de dependencias en determinadas ubicaciones, como recursos de prueba, código de proveedores o archivos específicos.

Comportamiento predeterminado de Dependabot:

  • Todos los directorios y archivos de la instancia de directory especificada se incluyen en el examen de actualizaciones, a menos que esta opción los excluya.

Cuando se define exclude-paths:

  • Todos los archivos y directorios que coinciden con las rutas de acceso especificadas se omiten durante los exámenes de actualización de la entrada package-ecosystem especificada.
ParámetroPropósito
exclude-pathsLista de patrones globales para archivos o directorios que se van a omitir.

Se admiten patrones globales, como ** para la coincidencia recursiva y * para caracteres comodín de segmento único. Los patrones son relativos al valor directory especificado para la configuración de actualización. Cada ecosistema puede tener su propia configuración de exclude-paths.

Example

YAML
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    exclude-paths:
      - "src/test/assets"
      - "vendor/**"
      - "src/*.js"
      - "src/test/helper.js"

# Sample patterns that can be used-

# Pattern: docs/*.json
# Matches: docs/foo.json, docs/bar.json

# Pattern: *.lock
# Matches: Gemfile.lock, package.lock, foo.lock (in any directory)

# Pattern: test/**
# Matches: test/foo.rb, test/bar/baz.rb, test/any/depth/file.txt

# Pattern: config/settings.yml
# Matches: config/settings.yml

# Pattern: **/*.md
# Matches: README.md, docs/guide.md, any/depth/file.md

# Pattern: src/*
# Matches: src/main.rb, src/app.js
# Does NOT match: src/utils/helper.rb

# Pattern: hidden/.*
# Matches: hidden/.env, hidden/.secret

En este ejemplo, Dependabot omitirá el directorio src/test/assets, todos los archivos de vendor/, todos los archivos JavaScript directamente en src/ y el archivo específico src/test/helper.js al buscar actualizaciones.

vendor

Compatible con: solo bundler y gomod.

Indica a Dependabot que mantenga las dependencias delegadas a proveedores, así como las dependencias definidas por los archivos de manifiesto. Una dependencia se describe como "delegada a proveedores" o "en caché" al almacenar el código en el repositorio; consulte la documentación de bundle cache y la documentación de go mod vendor.

Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

Comportamiento predeterminado de Dependabot:

  • Mantener solo las dependencias registradas en los archivos de manifiesto y bloqueo identificados para Bundler.
  • Generar solicitudes de incorporación de cambios de actualización de seguridad y versión que actualicen los números de versión registrados en los archivos de manifiesto y bloqueo.
  • Para módulos de Go, las dependencias delegadas a proveedores se identifican y mantienen automáticamente como si vendor estuviera habilitado.

Cuando vendor está habilitado:

  • Dependabot también mantiene las dependencias de Bundler que se almacenan en el directorio _vendor/cache_ del repositorio.
  • Las solicitudes de incorporación de cambios a veces contendrán actualizaciones de una dependencia almacenada en el repositorio.

Valores admitidos: true o false

versioning-strategy

Compatible con: bundler, cargo, composer, mix, npm, pip y pub

Defina cómo Dependabot debe editar los archivos de manifiesto. Para ejemplos, consulta Control de qué dependencias actualiza Dependabot.

Comportamiento predeterminado de Dependabot:

  • Intente diferenciar entre dependencias de aplicación y biblioteca.
  • Para las aplicaciones, aumente siempre el requisito de versión mínima para que coincida con la versión nueva. La estrategia increase.
  • Para las bibliotecas, amplíe los requisitos de versión permitida para que incluyan tanto la versión nueva como la anterior, siempre que sea posible. La estrategia widen.

Cuando se define versioning-strategy, Dependabot usa la estrategia especificada.

ImportanciaComportamiento
autoComportamiento predeterminado.
increaseAumentar siempre el requisito de versión mínima para que coincida con la versión nueva. Si ya existe un rango, por lo general solo se aumenta el límite inferior.
increase-if-necessaryDeja el requisito de versión sin cambios si ya permite la nueva versión (Dependabot sigue actualizando la versión resuelta). De lo contrario, amplía el requisito.
lockfile-onlyCrear únicamente solicitudes de cambios para actualizar archivos de bloqueo. Ignorar cualquier versión nueva que pudiera requerir cambios en el paquete del manifiesto.
widenAmpliar los requisitos de versión permitida para que incluyan tanto la versión nueva como la anterior, siempre que sea posible. Por lo general, esto solo aumenta el requisito de versión máxima permitida.

Por ejemplo, si la versión actual es 1.0.0 y la restricción actual es ^1.0.0 las distintas estrategias generarían las siguientes actualizaciones:

Versión nueva 1.2.0

  •         `increase`: restricción nueva `^1.2.0`
    
  •         `increase-if-necessary`: restricción nueva `^1.0.0`
    
  •         `widen`: restricción nueva `^1.0.0`
    

Versión nueva 2.0.0

  •         `increase`: restricción nueva `^2.0.0`
    
  •         `increase-if-necessary`: restricción nueva `^2.0.0 `
    
  •         `widen`: restricción nueva `>=1.0.0 <3.0.0`
    

Nota:

Si el administrador de paquetes que usa aún no admite la configuración del parámetro versioning-strategy o no admite un valor que necesita. El código de estrategia es open source, por lo que si desea que un ecosistema determinado admita una nueva estrategia, siempre le damos la bienvenida a enviar una solicitud de incorporación de cambios en https://github.com/dependabot/dependabot-core/.

Clave registries de nivel superior

Especifique los detalles de autenticación que Dependabot puede utilizar para acceder a los registros de paquetes privados, incluidos los que se hospedan en GitLab o Bitbucket.

Nota:

Se admiten registros privados detrás de firewalls en redes privadas para los siguientes ecosistemas:

  • Bundler
  • Cargo
  • Docker
  • Gradle
  • Maven
  • Npm
  • NuGet
  • Pub
  • Python
  • Yarn

El valor de la clave registries es una matriz asociativa, de la cual cada elemento consiste en una clave que identifica un registro en particular y un valor que es una matriz asociativa que especifica la configuración que se requiere para acceder a dicho registro. El siguiente archivo dependabot.yml configura un registro identificado como dockerhub en la sección registries del archivo y, después, hace referencia a este en la sección updates del archivo.

YAML
# Minimal settings to update dependencies stored in one private registry

version: 2
registries:
  dockerhub: # Define access for a private registry
    type: docker-registry
    url: registry.hub.docker.com
    username: octocat
    password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
  - package-ecosystem: "docker"
    directory: "/docker-registry/dockerhub"
    registries:
      - dockerhub # Allow version updates for dependencies in this registry
    schedule:
      interval: "monthly"

Utilizarás las siguientes opciones para especificar la configuración de acceso. La configuración del registro debe contener un elemento type y otro url, y normalmente incluirán una combinación username y password, o un elemento token.

ParámetrosFin
REGISTRY_NAMEObligatorio: define un identificador para el registro.
typeObligatorio: identifica el tipo de registro.
Detalles de la autenticaciónObligatorio: los parámetros admitidos para proporcionar detalles de autenticación varían para los registros de diferentes tipos.
urlObligatorio: la URL que se usa para acceder a las dependencias en este registro. El protocolo es opcional. Si no se especifica, se da por hecho el valor https://. El Dependabot agrega o ignora las diagonales iniciales conforme sea necesario.
replaces-baseSi el valor booleano es true, Dependabot resuelve las dependencias mediante el valor url especificado en lugar de la URL base de ese ecosistema.

Para obtener información detallada sobre las opciones disponibles, así como recomendaciones y consejos al configurar registros privados, consulta Guía para la configuración de registros privados para Dependabot.

          `type` y detalles de autenticación

Los parámetros usados para proporcionar detalles de autenticación para el acceso a un registro privado varían según el registro type.

Registro typeParámetros de autenticación obligatorios
cargo-registrytoken
composer-repository
          `username` y `password`<br>o OIDC con `tenant-id` y `client-id` |

| docker-registry | username y password
o OIDC con tenant-id y client-id | | git | username y password
o OIDC con tenant-id y client-id | | hex-organization | organization y key | | hex-repository | repo y auth-key opcionalmente con el valor public-key-fingerprintcorrespondiente | | maven-repository | username y password
o OIDC con tenant-id y client-id | | npm-registry | username y password
o bien token
o OIDC con tenant-id y client-id | | nuget-feed | username y password
o bien token
o OIDC con tenant-id y client-id | | pub-registry | token | | python-index | username y password
o bien token
o OIDC con tenant-id y client-id | | rubygems-server | username y password
o bien token
o OIDC con tenant-id y client-id | | terraform-registry | token |

Todos los datos confidenciales usados para la autenticación se deben almacenar de forma segura y hacerles referencia desde esa ubicación segura; consulte Configuración del acceso a registros privados para Dependabot.

Sugerencia

Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Para obtener más información sobre la compatibilidad de OIDC con Dependabot, consulte OpenID Connect y Configuración del acceso a registros privados para Dependabot.

          `url` y `replaces-base`

El parámetro url define dónde acceder a un registro. Cuando se habilita el parámetro opcional replaces-base (true), Dependabot resuelve las dependencias mediante el valor url en lugar de la URL base de ese ecosistema concreto.