Puedes personalizar la configuración de Dependabot para adecuarla a tus necesidades si agregas opciones al archivo dependabot.yml
. Por ejemplo, puedes asegurarte de que Dependabot usa los archivos de manifiesto de paquete correctos y actualiza solo las dependencias que quieras mantener.
En este artículo se intercalan opciones de personalización que pueden resultarte útiles.
Definición de varias ubicaciones para archivos de manifiesto
Si quieres habilitar Dependabot version updates para archivos de manifiesto almacenados en más de una ubicación, puedes usar directories
en lugar de directory
. Por ejemplo, esta configuración establece dos programaciones de actualización diferentes para los archivos de manifiesto almacenados en directorios diferentes.
# Specify the locations of the manifest files to update for each package manager # using both `directories` and `directory` version: 2 updates: - package-ecosystem: "bundler" # Update manifest files stored in these directories weekly directories: - "/frontend" - "/backend" - "/admin" schedule: interval: "weekly" - package-ecosystem: "bundler" # Update manifest files stored in the root directory daily directory: "/" schedule: interval: "daily"
# Specify the locations of the manifest files to update for each package manager
# using both `directories` and `directory`
version: 2
updates:
- package-ecosystem: "bundler"
# Update manifest files stored in these directories weekly
directories:
- "/frontend"
- "/backend"
- "/admin"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
# Update manifest files stored in the root directory daily
directory: "/"
schedule:
interval: "daily"
-
Para especificar un intervalo de directorios mediante un patrón
YAML # Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
# Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
-
Para especificar manifiestos en el directorio actual y subdirectorios recursivos
YAML # Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
# Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
Omisión de dependencias específicas
Si no estás listo para adoptar cambios de determinadas dependencias en el proyecto, puedes configurar Dependabot para omitir esas dependencias cuando abre solicitudes de cambios para actualizaciones de versión y actualizaciones de seguridad. Para ello, emplea uno de los métodos siguientes.
- Configura la opción
ignore
para la dependencia en tu archivodependabot.yml
.- Puedes usar esto para omitir las actualizaciones de dependencias, versiones y tipos específicos de actualizaciones.
- Para más información, consulta
ignore
en Referencia de opciones de Dependabot.
- Usa comandos de comentario
@dependabot ignore
en una solicitud de incorporación de cambios de Dependabot para las actualizaciones de versión y actualizaciones de seguridad.- Puedes usar comandos de comentario para omitir las actualizaciones de dependencias y versiones específicas.
- Para más información, consulta Administrar las solicitudes de extracción para las actualizaciones de dependencia.
Estos son algunos ejemplos en los que se muestra cómo se puede usar ignore
para personalizar qué dependencias se actualizan.
-
Para omitir las actualizaciones más allá de una versión específica
YAML ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
YAML ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
-
Para omitir las actualizaciones de revisiones
YAML ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
-
Para omitir versiones o intervalos de versiones específicos, consultaOmisión de versiones o intervalos específicos de versiones.
Si quieres dejar de omitir una dependencia o condición de omisión, puedes eliminar las condiciones de omisión del archivo dependabot.yml
, o bien volver a abrir la solicitud de cambios.
En el caso de las solicitudes de incorporación de cambios para las actualizaciones agrupadas , también puedes usar los comandos de comentario @dependabot unignore
. Los comandos de comentario @dependabot unignore
te permiten hacer lo siguiente comentando en una solicitud de incorporación de cambios del Dependabot:
- Dejar de ignorar una condición de omisión específica
- Dejar de ignorar una dependencia específica
- Dejar de ignorar todas las condiciones de omisión de todas las dependencias de una solicitud de incorporación de cambios del Dependabot
Para más información, consulta Administrar las solicitudes de extracción para las actualizaciones de dependencia.
Permiso para actualizar dependencias específicas
Puede usar allow
para indicar a Dependabot las dependencias que quieres mantener. allow
se usa habitualmente junto a ignore
.
Para más información, consulta allow
en Referencia de opciones de Dependabot.
De manera predeterminada, Dependabot crea solicitudes de cambios solo para las dependencias que se definen explícitamente en un manifiesto (dependencias direct
). En esta configuración se usa allow
para indicar a Dependabot que queremos que se mantengan los tipos de dependencia all
. Es decir, tanto las dependencias direct
como sus dependencias (también conocidas como dependencias indirectas, subdependencias o dependencias transitorias). Además, la configuración indica a Dependabot que omita todas las dependencias con un nombre que coincida con el patrón org.xwiki.*
porque hay otro proceso para mantenerlas.
Tip
Dependabot comprueba todas las dependencias permitidas y después filtra cualquier dependencia ** ignorada**. Si una dependencia coincide con una instrucción allow e ignore, se omite.
version: 2 registries: # Helps find updates for non Maven Central dependencies maven-xwiki-public: type: maven-repository url: https://nexus.xwiki.org/nexus/content/groups/public/ username: "" password: "" # Required to resolve xwiki-common SNAPSHOT parent pom maven-xwiki-snapshots: type: maven-repository url: https://maven.xwiki.org/snapshots username: "" password: "" updates: - package-ecosystem: "maven" directory: "/" registries: - maven-xwiki-public - maven-xwiki-snapshots schedule: interval: "weekly" allow: # Allow both direct and indirect updates for all packages. - dependency-type: "all" ignore: # Ignore XWiki dependencies. We have a separate process for updating them - dependency-name: "org.xwiki.*" open-pull-requests-limit: 15
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
Omisión de versiones concretas o intervalos de versiones
Puedes usar versions
junto con ignore
para omitir versiones concretas o intervalos de versiones.
Para más información, consulta versions
en Referencia de opciones de Dependabot.
-
Para omitir una versión específica
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
-
Para omitir un intervalo de versiones
YAML ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
Especificación del nivel de versionamiento semántico que se omitirá
Puedes especificar uno o varios niveles de versionamiento semántico (SemVer) para omitir mediante update-types
.
Para más información, consulta update-types
en Referencia de opciones de Dependabot.
En este ejemplo, Dependabot omitirá las versiones de revisión para Node.
version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "daily" ignore: - dependency-name: "express" # For Express, ignore all updates for version 4 and 5 versions: ["4.x", "5.x"] # For Lodash, ignore all updates - dependency-name: "lodash" - dependency-name: "@types/node" # For Node types, ignore any patch versions update-types: ["version-update:semver-patch"]
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: "express"
# For Express, ignore all updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
Definición de una estrategia de control de versiones
De manera predeterminada, Dependabot intenta aumentar el requisito de versión mínima para las dependencias que identifica como aplicaciones y amplía los requisitos de versión permitidos a fin de incluir las versiones nuevas y antiguas para las dependencias que identifica como bibliotecas.
Puedes cambiar esta estrategia predeterminada. Para más información, consulta versioning-strategy
en Referencia de opciones de Dependabot.
En este ejemplo, Dependabot aumentará el requisito de versión mínima para que coincida con la nueva versión de las aplicaciones y las bibliotecas.
version: 2 updates: - package-ecosystem: npm directory: "/" schedule: interval: daily # Increase the minimum version for all npm dependencies versioning-strategy: increase
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
En este ejemplo, Dependabot solo aumentará el requisito de versión mínima si la restricción original no permite la nueva versión.
version: 2 updates: - package-ecosystem: pip directory: "/" schedule: interval: daily open-pull-requests-limit: 20 rebase-strategy: "disabled" # Increase the version requirements for npm # only when required versioning-strategy: increase-if-necessary
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for npm
# only when required
versioning-strategy: increase-if-necessary
Actualización de dependencias delegadas a proveedores
Puedes indicar a Dependabot que delegue a proveedores dependencias concretas cuando se actualicen.
Dependabot mantiene automáticamente las dependencias delegadas a proveedores para los módulos de Go y puede configurar Bundler para actualizarlas también.
Para más información, consulta vendor
en Referencia de opciones de Dependabot.
En este ejemplo, vendor
se establece en true
para Bundler, lo que significa que Dependabot también mantendrá las dependencias de Bundler que se almacenan en el directorio vendor/cache del repositorio.
version: 2 updates: - package-ecosystem: bundler directory: "/" # Vendoring Bundler vendor: true schedule: interval: weekly day: saturday open-pull-requests-limit: 10
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10