Вы можете настроить Dependabot конфигурацию под свои нужды, добавив опции в файл dependabot.yml . Например, вы можете убедиться, что используется Dependabot правильный файл пакетного манифеста и обновляет только те зависимости, которые вы хотите поддерживать.
В этой статье можно найти полезные параметры настройки.
Определение нескольких расположений для файлов манифеста
Если вы хотите включить Dependabot version updates файлы манифеста, хранящиеся в нескольких местах, можно использовать directories вместо directory. Например, эта конфигурация задает два разных расписания обновления для файлов манифеста, хранящихся в разных каталогах.
# 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"
-
Указание диапазона каталогов с помощью шаблона
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" -
Указание манифестов в текущем каталоге и рекурсивных подкаталогах
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"
Игнорируние определенных зависимостей
Если вы не готовы принимать изменения из определённых зависимостей в вашем проекте, вы можете настроить Dependabot так, чтобы игнорировать эти зависимости при открытии pull request-запросов на обновления версий и безопасности. Это можно сделать с помощью одного из следующих методов.
-
* Это можно использовать для пропуска обновлений для определенных зависимостей, версий и типов обновлений.`ignore` Настройте параметр зависимости в `dependabot.yml` файле.- Дополнительные сведения см
ignore. в autoTITLE.
- Дополнительные сведения см
- Используйте
@dependabot ignoreкоманды комментариев на Dependabot pull request для обновлений версий и безопасности. * Команды комментариев можно использовать для пропуска обновлений для определенных зависимостей и версий.- Дополнительные сведения см. в разделе Управление запросами на вытягивание для обновлений зависимостей.
Ниже приведены некоторые примеры, показывающие, как ignore можно использовать для настройки зависимостей.
-
Пропуск обновлений за пределами определенной версии
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,)" ] -
Пропуск обновлений исправлений
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"] -
Чтобы игнорировать определенные версии или диапазоны версий, см . раздел "Игнорировать определенные версии" или "Диапазоны версий".
Если вы хотите отменить зависимость или игнорировать условие, можно удалить условия пропуска из dependabot.yml файла или повторно открыть запрос на вытягивание.
Для запросов на вытягивание группированных обновлений можно также использовать @dependabot unignore команды комментариев.
@dependabot unignore Команды комментариев позволяют делать следующее, комментируя Dependabot pull request:
- Отмена пропуска определенного условия пропуска
- Отмена пропуска определенной зависимости
- Отменить игнорирование всех условий игнорирования для всех зависимостей в Dependabot pull request-е
Дополнительные сведения см. в разделе Управление запросами на вытягивание для обновлений зависимостей.
Разрешение обновления определенных зависимостей
Вы можете использовать allow их, чтобы определить Dependabot зависимости, которые хотите поддерживать.
allow обычно используется в сочетании с ignore.
Дополнительные сведения см allow . в autoTITLE.
По умолчанию Dependabot он создаёт pull request на обновление версии только для тех зависимостей, явно определённых в манифесте (direct зависимости). Эта конфигурация allow показывает Dependabot , что мы хотим поддерживать all типы зависимости. То есть как зависимости, так direct и их зависимости (также известные как косвенные зависимости, подзависимости или временные зависимости). Кроме того, конфигурация указывает Dependabot игнорировать все зависимости с именем, соответствующим шаблону org.xwiki.* , поскольку у нас другой процесс их поддержания.
Совет
Dependabot проверяет все **разрешённые** зависимости, затем фильтрует **игнорируемые** зависимости. Если зависимость сопоставлена с **оператором разрешения** и **игнорируем** , то она игнорируется.
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
Игнорируние определенных версий или диапазонов версий
Вы можете использовать versions в сочетании с ignore тем, чтобы игнорировать определенные версии или диапазоны версий.
Дополнительные сведения см versions . в autoTITLE.
-
Игнорировать определенную версию
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ] -
Игнорировать диапазон версий
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"]
Указание уровня семантического управления версиями для пропуска
Вы можете задать один или несколько уровней семантического версионирования (SemVer) для игнорирования с помощью update-types``ignore.
Дополнительные сведения см update-types . в autoTITLE.
В этом примере Dependabot я проигнорирую патчевые версии для 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"]
Определение стратегии управления версиями
По умолчанию Dependabot пытается повысить минимальное требование к версиям зависимостей, которые он идентифицирует как приложения, и расширяет допустимые требования к версиям, включая как новые, так и старые версии зависимостей, которые он идентифицирует как библиотеки.
Эту стратегию по умолчанию можно изменить. Дополнительные сведения см versioning-strategy . в autoTITLE.
В этом примере Dependabot будет увеличено минимальное требование к версии, чтобы соответствовать новой версии как для приложений, так и для библиотек.
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
В этом примере Dependabot минимальное требование к версии увеличится только если исходное ограничение не разрешает новую версию.
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
Обновление зависимостей поставщиков
Вы можете инструктировать Dependabot конкретные зависимости поставщика при их обновлении.
Dependabot Автоматически поддерживает зависимости от поставщиков для модулей Go, и вы можете настроить Bundler на обновление зависимостей, указанных поставщиками.
Дополнительные сведения см vendor . в autoTITLE.
В этом примере vendor установлено как true для Bundler, что означает, Dependabot что он также будет поддерживать зависимости для Bundler, которые хранятся в каталоге vendor/cache в репозитории.
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