← к ленте

Rennovate: автоматизация обновления зависимостей вне GitHub

О@orgprogавтор про «it»
2 нед

Обзор инструмента Rennovate для автоматического обновления зависимостей и версий образов, который работает независимо от платформы.

Инструмент позволяет автоматизировать рутинное обновление версий ПО в проектах, снижая риск использования устаревших библиотек.

  • Позволяет обновлять версии зависимостей, заданные в Dockerfile через специальные комментарии.
  • Работает независимо от платформы (GitHub/GitLab), в отличие от встроенного Dependabot.
  • Интегрируется в CI/CD для автоматического создания пул-реквестов с обновлениями.
Открытие дня. Все же знают dependabot, который обновляет зависимости всего и вся на гитхабе? Причем речь не только про пакетные менеджеры всех языков, но и например github actions и даже версии образов в Dockerfile. Так вот есть такое же решение, не привязанное к вендору. Небольшая предыстория. Помимо гитхаба у нас есть свой гитлаб с большим количеством реп, в котором так же находится инфраструктура запуска практик Хекслета. В нее входит репа с кучей Dockerfile под разные экосистемы, которые мы используем как базовые образы для практик запускающихся в браузере. В этой репе есть просто все что только можно себе представить: версии образов, версии дев тулов, версии зависимостей, причем часто указываемые напрямую в Dockerfile. Обновлять все это добро раньше было отдельным приключением. С иишкой стало проще, но один фиг это процедура, которой надо заниматься. А на днях делая очередное обновление, я подумал какого хрена, по-любому должно же что-то быть. Попросил клод найти и он нашел. Оказалось что есть такая штука как Rennovate, которая очень похожа на dependabot, но работает еще круче. Мало того, что она может обновлять все версии в стандартных случаях, так эта фигня умеет обновлять версии, которые заданы числами в разных местах за счет спец разметки:

# renovate: datasource=maven packageName=org.apache.maven:maven
ARG MAVEN_VERSION=4.0.0-rc-6
# renovate: datasource=java-version packageName=java-jdk
ARG JAVA_VERSION=25
Все это расставил сам клод и написал мне такую таску:

make deps-check 
images/base/Dockerfile            setuptools       83.0.0  -> 84.0.0
images/java-base/Dockerfile       java-jdk       25      -> 25.0.4+7.0.LTS
images/multi-language/Dockerfile  java-jdk   25      -> 25.0.4+7.0.LTS

Ну и все это добро отлично подключается к ci и шлет пулреквесты с обновками. Пользуйтесь

Кратко (AI)

Автор делится опытом использования инструмента Rennovate для автоматизации обновления зависимостей и версий Docker-образов в GitLab. В отличие от Dependabot, Rennovate является вендор-независимым решением и поддерживает обновление версий через специальные комментарии в коде.

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖