Автоматическое обновление зависимостей с Renovate

Руководство по автоматическому обновлению зависимостей с Renovate

Строить

Введение

Поддержка зависимостей проекта — часть ежедневной работы разработчиков. Ручная проверка, обновление и тестирование версий зависимостей не только отнимает время, но и приводит к упущениям. Эта статья объясняет, как использовать Renovate для полной автоматизации обновлений зависимостей.

Цели

  • Автоматическая проверка обновлений зависимостей каждый день на рассвете
  • Автоматическое создание PR и их слияние (после прохождения CI)
  • Без ручного вмешательства, работа в фоновом режиме
  • Единое управление в нескольких репозиториях

Установка Renovate

  1. Посетите GitHub Apps - Renovate
  2. Нажмите Установить
  3. Выберите репозитории для включения (все или конкретные)
  4. Завершите авторизацию

Файл конфигурации

Создайте renovate.json в корне репозитория:

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":automergeAll",
":disableDependencyDashboard"
],
"timezone": "Asia/Shanghai",
"schedule": ["before 3:00am"]
}

Коммит и push:

Terminal window
git add renovate.json
git commit -m "chore: configure Renovate for automated dependency updates"
git push

Детали конфигурации

ОпцияОписание
config:recommendedБазовая конфигурация, официально рекомендуемая Renovate
:automergeAllКлючевая опция — автоматическое слияние всех обновлений (включая мажорные версии)
:disableDependencyDashboardОтключить панель задач для фоновой работы
timezoneУстановить часовой пояс на Азия/Шанхай
scheduleЗапускать проверки до 3:00 утра ежедневно

Рабочий процесс

3:00 утра ежедневно
Renovate проверяет зависимости package.json
Обнаружены доступные обновления
Автоматическое создание Pull Request
Запуск проверок CI
CI пройден → Автоматическое слияние в ветку main
Увидеть обновленные зависимости следующим утром

Конфигурация для нескольких репозиториев

Для нескольких проектов скопируйте один и тот же файл конфигурации:

Terminal window
# Создать универсальную конфигурацию
cat > renovate.json << 'EOF'
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended", ":automergeAll", ":disableDependencyDashboard"],
"timezone": "Asia/Shanghai",
"schedule": ["before 3:00am"]
}
EOF
# Применить к нескольким репозиториям
for repo in repo1 repo2 repo3; do
cp renovate.json $repo/
cd $repo && git add . && git commit -m "chore: configure Renovate" && git push
cd ..
done

Часто задаваемые вопросы

PR не сливается автоматически?

Проверьте статус CI. Renovate сливает только после прохождения всех проверок CI. Если CI не пройден, исправьте проблему вручную и перезапустите.

Как немедленно запустить обновления?

  • Если панель задач включена: Перейдите в Issues → Dependency Dashboard → Отметьте пакеты для обновления → Нажмите Rebase
  • Или дождитесь запланированного времени автоматического запуска

Как исключить конкретные зависимости?

Добавьте правила исключения в конфигурацию:

{
"packageRules": [{
"matchPackageNames": ["package-name"],
"enabled": false
}]
}

Поддержка pnpm / yarn / npm?

Renovate автоматически обнаруживает типы lock-файлов, дополнительная конфигурация не требуется.

Проверка

После отправки конфигурации Renovate запустится автоматически (или дождется запланированного времени). Шаги проверки:

  1. Перейдите на страницу Pull requests репозитория
  2. Просмотрите PR, созданные Renovate (формат заголовка: chore(deps): update ...)
  3. Подтвердите, что автоматическое слияние включено для PR
  4. Автоматическое слияние после прохождения CI

Итог

Всего 5 строк основной конфигурации:

{
"extends": [
"config:recommended",
"automergeAll",
"disableDependencyDashboard"
],
"timezone": "Asia/Shanghai",
"schedule": ["before 3:00am"]
}

Достигните полностью автоматизированного управления зависимостями, позволяя разработчикам сосредоточиться на бизнес-коде.

Опубликовано: 6 февр. 2026 г. · Изменено: 6 февр. 2026 г.

Похожие статьи