Puede personalizar la Dependabot configuración para satisfacer sus necesidades agregando opciones al dependabot.yml archivo. Por ejemplo, puede asegurarse de que Dependabot usa los archivos de manifiesto de paquete correctos y actualiza solo las dependencias que desea 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 desea habilitar Dependabot version updates para los archivos de manifiesto almacenados en más de una ubicación, puede 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á listo para adoptar cambios de determinadas dependencias del proyecto, puede configurar Dependabot para omitir esas dependencias cuando abre solicitudes de incorporación de cambios para actualizaciones de versiones y actualizaciones de seguridad. Para ello, emplea uno de los métodos siguientes.
- Configura la opción
ignorepara 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
ignoreen Referencia de opciones de Dependabot.
- Utilice
@dependabot ignorecomandos de comentario en un Dependabot pull request para las actualizaciones de versión y las 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 ignorar las actualizaciones de parches
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 cambios para las actualizaciones agrupadas, también puedes usar comandos de comentario @dependabot unignore. Los @dependabot unignore comandos de comentario le permiten hacer lo siguiente al comentar en un Dependabot pull request:
- 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 para todas las dependencias en una solicitud de incorporación de cambios Dependabot
Para más información, consulta Administrar las solicitudes de extracción para las actualizaciones de dependencia.
Permiso para que se actualicen dependencias específicas
Puede usar allow para informar Dependabot sobre las dependencias que desea mantener.
allow se usa habitualmente junto a ignore.
Para más información, consulta allow en Referencia de opciones de Dependabot.
De forma predeterminada, Dependabot crea solicitudes de actualización de versiones solo para las dependencias que se definen explícitamente en un manifiesto (direct dependencias). Esta configuración usa allow para indicar Dependabot que queremos que mantenga all tipos de dependencia. 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 Dependabot que omita todas las dependencias con un nombre que coincida con el patrón org.xwiki.* porque tenemos un proceso diferente para mantenerlos.
Sugerencia
Dependabot comprueba todas las dependencias **permitidas** y filtra las dependencias **ignoradas** . Si una dependencia coincide con una **allow** y una **ignore**, entonces se omite. También puede usar `update-types` en `allow` reglas para restringir las actualizaciones a niveles de versionado semántico específicos.
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
Permitir niveles de control de versiones semánticos específicos para las actualizaciones
Puede usar update-types con allow para restringir las actualizaciones a niveles específicos de control de versiones semánticas (SemVer). Esto es útil cuando quieras ser explícito sobre los tipos de actualizaciones para los que Dependabot debe crear pull requests.
Nota:
`update-types` solo afecta a las actualizaciones de _versión_ , no a las actualizaciones _de seguridad_ . Las actualizaciones de seguridad siempre se crearán independientemente de la `update-types` configuración.
Para más información, consulta update-types en Referencia de opciones de Dependabot.
Estos son algunos ejemplos que muestran cómo update-types se puede usar con allow.
-
Para permitir solo actualizaciones secundarias y de revisión para una dependencia específica, puede combinar
update-typescondependency-name.YAML version: 2 updates: - package-ecosystem: "maven" directory: "/" schedule: interval: "weekly" allow: - dependency-name: "io.micrometer:micrometer-core" update-types: - "version-update:semver-minor" - "version-update:semver-patch"version: 2 updates: - package-ecosystem: "maven" directory: "/" schedule: interval: "weekly" allow: - dependency-name: "io.micrometer:micrometer-core" update-types: - "version-update:semver-minor" - "version-update:semver-patch" -
Para aplicar diferentes directivas de actualización para las dependencias de producción y desarrollo, puede combinar
update-typescondependency-type.YAML version: 2 updates: - package-ecosystem: "composer" directory: "/" schedule: interval: "monthly" allow: - dependency-type: "production" update-types: - "version-update:semver-patch" - dependency-type: "development" update-types: - "version-update:semver-minor" - "version-update:semver-patchversion: 2 updates: - package-ecosystem: "composer" directory: "/" schedule: interval: "monthly" allow: - dependency-type: "production" update-types: - "version-update:semver-patch" - dependency-type: "development" update-types: - "version-update:semver-minor" - "version-update:semver-patchEn este ejemplo, las dependencias de producción solo recibirán actualizaciones de parches, mientras que las dependencias de desarrollo recibirán tanto actualizaciones menores como de parches.
Ignorar 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á
Puede especificar uno o varios niveles de control de versiones semánticos (SemVer) para omitir mediante update-types con ignore. Como alternativa, puede usar update-types con allow para especificar explícitamente qué niveles de actualización permitir, consulte Permitir niveles semánticos de control de versiones específicos para las actualizaciones.
Para más información, consulta update-types en Referencia de opciones de Dependabot.
En este ejemplo, Dependabot omitirá las versiones de revisión de 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 forma 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 para 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, Dependabotsolo 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 pip
# 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 pip
# only when required
versioning-strategy: increase-if-necessary
Actualización de dependencias delegadas a proveedores
Puede indicarle Dependabot a las dependencias específicas del proveedor al actualizarlas.
Dependabot mantiene automáticamente las dependencias proporcionadas para los módulos de Go y puede configurar Bundler para actualizar también las dependencias proporcionadas por el proveedor.
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 conservará 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