Appearance
Renovate
Инструмент по автоматическому обновлению зависимостей в репозитории
Зачем нужен этот инструмент?
- Поддерживаем проект в актуальном состоянии Не приведем его к состоянию, когда обновление какой-либо зависимости станет невозможным из-за того, что это обновление потребует обновления других зависимостей, сломается обратная совместимость и проект перестанет работать.
- Безопасность. Менее вероятно что актуальные зависимости содержат известные уязвимости
Почему именно этот инструмент?
- Работает на многих платформах (gitlab, github, ...)
- Много звезд на github, хорошая поддержка
- Этот инструмент используется во многих известных проектах. Например vuejs
Renovate локально для проверки конфига
npm install -g renovate
- Перейти в репозиторий, запустить команду
RENOVATE_CONFIG_FILE=renovate.json renovate-config-validator
Renovate локально для проверки зависимостей репозитория
npm install -g renovate
- GITHUB_COM_TOKEN=... RENOVATE_TOKEN=... renovate --platform=gitlab путь до репозитория
GITHUB_COM_TOKEN - токен из github, любой, можно даже без прав. Нужен, чтобы changelog по зависимостям подтягивать
RENOVATE_TOKEN - в данном случае это access token из gitlab с правами api, read_user, write_repository
В конце указываем путь до репозитория
Renovate на github
- Устанавливаем https://github.com/apps/renovate
- Даем доступ приложению к нужным репозиториям
- Заходим в эти репозитории, там должны были создаться мр, которые конфигурируют renovate. Мерджим ее
- Дополнительно настраиваем конфиг. "rangeStrategy": "bump" (для того чтобы package.json обновлялся) и assignees.
- После установки приложения также есть ui, в котором можно посмотреть репозитории и джобы. https://developer.mend.io/github/upikoth
- Создана issue, которая показывает какие зависимости нужно обновить
- Запустить сканирование можно из issue или из ui. Также можно настроить периодический запуск из конфига renovate
- По умолчанию запускается при изменении в основной ветке
Renovate на gitlab
В гитлабе можно пайплайны по расписанию запускать: ci/cd -> schedules. Можно сделать запуск периодическим
yml
renovate:
variables:
GITHUB_COM_TOKEN: "..."
RENOVATE_TOKEN: "..."
RENOVATE_AUTODISCOVER: 'false'
RENOVATE_GIT_AUTHOR: 'Renovate Bot <bot@renovateapp.com>'
RENOVATE_PLATFORM: 'gitlab'
image: renovate/renovate:latest
script:
- renovate путь до репозитория
only:
- schedules
GITHUB_COM_TOKEN - токен из github, любой, можно даже без прав. Нужен, чтобы changelog по зависимостям подтягивать
RENOVATE_TOKEN - в данном случае это access token из gitlab с правами api, read_user, write_repository