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