Note
Администратор сайта должен настроить Dependabot updates для ваш экземпляр GitHub Enterprise Server, прежде чем использовать эту функцию. Дополнительные сведения см. в разделе «Включение Dependabot для предприятия».
Возможно, вы не сможете включить или отключить Dependabot updates , если владелец предприятия установил политику на уровне предприятия. Дополнительные сведения см. в разделе «Применение политик безопасности кода и анализа для вашего предприятия».
Сведения об обновлениях версий для зависимостей
Вы включите Dependabot version updates путем проверки dependabot.yml
файла конфигурации в каталоге репозитория .github
. Затем Dependabot создает запросы на вытягивание, чтобы обеспечить актуальность зависимостей. Для зависимостей диспетчера пакетов, которые требуется обновить, необходимо указать расположение файлов манифеста пакета и частоту проверки обновлений зависимостей, указанных в этих файлах. Сведения о включении обновлений системы безопасности см. в разделе Настройка обновлений для системы безопасности Dependabot.
При первом включении обновлений версий может присутствовать много устаревших зависимостей, а некоторые из них могут быть устаревшими на много версий по сравнению с последней. Dependabot проверяет наличие устаревших зависимостей сразу после включения. Новые запросы на вытягивание обновлений версий могут отобразиться в течение нескольких минут после добавления файла конфигурации в зависимости от количества файлов манифеста, для которых настроены обновления. Dependabot также запустит обновление последующих изменений в файле конфигурации.
Dependabot также может создавать запросы на вытягивание при изменении файла манифеста после сбоя обновления. Это связано с тем, что изменения манифеста, такие как удаление зависимости, которая вызвала сбой обновления, может привести к успешному запуску обновления.
Для обеспечения управляемости запросов на вытягивание и упрощения их проверки Dependabot создает не более пяти запросов на вытягивание, чтобы приступить к обновлению зависимостей до последней версии. В случае слияния некоторых из этих первых запросов на вытягивание до следующего запланированного обновления оставшиеся запросы на вытягивание откроются в том же максимальном количестве при следующем обновлении. Вы можете изменить максимальное количество открытых запросов на вытягивание, задав параметр конфигурацииopen-pull-requests-limit
.
Дополнительные сведения см. в разделе Автоматическое обновление зависимостей с помощью обновлений версий Dependabot.
По умолчанию только прямые зависимости, которые явно определены в манифесте, сохраняются в актуальном состоянии Dependabot version updates. Вы можете получать обновления для непрямых зависимостей, определенных в файлах блокировки. Дополнительные сведения см. в разделе Dependabot options reference.
При обновлении системы безопасности или версий некоторые экосистемы должны иметь возможность разрешить все зависимости от источника, чтобы убедиться, что обновления успешно выполнены. Если файлы манифеста или блокировки содержат какие-либо частные зависимости, Dependabot должен иметь доступ к расположению, в котором размещаются эти зависимости. Владельцы организации могут предоставлять Dependabot доступ к частным репозиториям, содержащим зависимости для проекта, в той же организации. Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для организации. Вы можете настроить доступ к частным реестрам в файле конфигурации репозитория dependabot.yml
. Дополнительные сведения см. в разделе Dependabot options reference. Кроме того, Dependabot не поддерживает частные зависимости GitHub для всех менеджеров пакетов. Дополнительные сведения см. в разделе [AUTOTITLE и Поддерживаемые экосистемы и репозитории Dependabot](/get-started/learning-about-github/github-language-support).
Включение Dependabot version updates
Вы включите Dependabot version updates путем фиксации dependabot.yml
файла конфигурации в репозитории.
-
dependabot.yml
Создайте файл конфигурации в каталоге.github
репозитория. Приведенный ниже фрагмент можно использовать в качестве отправной точки. For information about the options you can use to customize how Dependabot maintains your repositories, see Dependabot options reference.YAML # To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
-
Добавьте
version
. Этот ключ является обязательным. Файл должен начинаться сversion: 2
. -
При необходимости, если у вас есть зависимости в частном реестре, добавьте раздел
registries
, содержащий сведения о проверке подлинности. Дополнительные сведения см. в разделеregistries
"Параметры конфигурации дляdependabot.yml
файла". -
Добавьте раздел
updates
с записью для каждого диспетчера пакетов, который должен отслеживаться Dependabot. Этот ключ является обязательным. Он используется для настройки того, как Dependabot обновляет версии или зависимости проекта. Каждая запись настраивает параметры обновления для определенного диспетчера пакетов. -
Для каждого диспетчера пакетов используйте следующие параметры:
-
package-ecosystem
, чтобы указать диспетчер пакетов. Дополнительные сведения о поддерживаемых диспетчерах пакетов см. в разделеpackage-ecosystem
"Параметры конфигурации дляdependabot.yml
файла". -
directory
, чтобы указать расположение файла манифеста или других файлов определений. Дополнительные сведения см. в разделеdirectory
"Параметры конфигурации дляdependabot.yml
файла". -
schedule.interval
, чтобы указать частоту проверки наличия новых версий. Дополнительные сведения см. в разделеschedule.interval
"Параметры конфигурации дляdependabot.yml
файла".
-
-
Проверьте файл конфигурации dependabot.yml в каталоге
.github
репозитория.
Пример файла dependabot.yml
Приведенный ниже пример dependabot.yml
файла настраивает обновления версий для двух диспетчеров пакетов: npm и Docker. При отправке этого файла Dependabot проверяет файлы манифеста в ветви по умолчанию на наличие устаревших зависимостей. При обнаружении устаревших зависимостей в ветвь по умолчанию будут отправлены запросы на вытягивание для обновления зависимостей.
# 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"
В приведенном выше примере, если зависимости Docker сильно устарели, может потребоваться начать с расписания daily
и применять его до тех пор, пока зависимости не будут обновлены, а затем вернуться к еженедельному расписанию.
Включение обновлений версий для вилок
Если вы хотите включить обновления версий для вилок, необходимо выполнить дополнительный шаг. Обновления версий не включены автоматически при наличии файла конфигурации.dependabot.yml
Это гарантирует, что владельцы вилок непреднамеренно включают обновления версий при извлечении изменений, включая dependabot.yml
файл конфигурации из исходного репозитория.
В вилке также необходимо явным образом включить Dependabot.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".
-
В разделе "Безопасность" боковой панели щелкните Code securityCode security and analysis.
-
В разделе "Code security and analysis", справа от "Dependabot version updates" нажмите кнопку "Разрешить Dependabot для запуска обновлений версий.
Проверка состояния обновлений версий
После включения обновлений версий на вкладке Dependabot в графе зависимостей для репозитория появляются сведения. На этой вкладке отображается информация о том, какие диспетчеры пакетов Dependabot отслеживаются и когда в последний раз была выполнена проверка новых версий Dependabot.
Дополнительные сведения см. в разделе Listing dependencies configured for version updates.
Отключение Dependabot version updates
Вы можете полностью отключить обновления версий, удалив dependabot.yml
файл из репозитория. Обычно требуется отключить обновления временно для одной или нескольких зависимостей или для одного или нескольких диспетчеров пакетов.
- Для диспетчеров пакетов: отключите их, задав значение параметра
open-pull-requests-limit: 0
или закомментировав соответствующий разделpackage-ecosystem
в файле конфигурации. - Для конкретных зависимостей: отключите их, добавив атрибуты
ignore
для пакетов или приложений, которые требуется исключить из обновлений.
При отключении зависимостей можно использовать подстановочные знаки для сопоставления с набором связанных библиотек. Можно также указать, какие версии следует исключить. Это особенно удобно, если необходимо заблокировать обновления библиотеки, ожидая поддержки критических изменений в API библиотеки, но при этом требуется получать все исправления безопасности для используемой версии.
Пример отключения обновлений версий для некоторых зависимостей
Приведенный ниже пример dependabot.yml
файла содержит примеры различных способов отключения обновлений для некоторых зависимостей, позволяя другим обновлениям продолжаться.
# `dependabot.yml` file with updates
# disabled for Docker and limited for npm
version: 2
updates:
# Configuration for Dockerfile
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
# Disable all pull requests for Docker dependencies
open-pull-requests-limit: 0
# Configuration for npm
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
ignore:
# Ignore updates to packages that start with 'aws'
# Wildcards match zero or more arbitrary characters
- dependency-name: "aws*"
# Ignore some updates to the 'express' package
- dependency-name: "express"
# Ignore only new versions for 4.x and 5.x
versions: ["4.x", "5.x"]
# For all packages, ignore all patch updates
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
Дополнительные сведения о проверке существующих параметров пропуска см. в разделе Dependabot options reference.