Dependabot - бот GitHub, що стежить за залежностями й сам відкриває pull request-и з оновленнями. Розробнику лишається переглянути зміни, дочекатися зеленого CI і злити.
Два режими:
- security updates - PR лише для залежностей з відомими вразливостями (на основі GitHub Advisory Database);
- version updates - регулярні PR з новими версіями за розкладом.
Конфігурація для Laravel-проєкту:
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: composer
directory: /
schedule:
interval: weekly
groups:
laravel:
patterns: ["laravel/*"]
open-pull-requests-limit: 5
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
Що тут налаштовано:
- екосистеми: Composer, npm і навіть версії дій у workflow GitHub Actions;
groups- кілька оновлень в одному PR (усі пакетиlaravel/*разом), щоб не тонути в десятках дрібних PR;open-pull-requests-limit- скільки PR бот тримає відкритими одночасно;schedule- як часто перевіряти.
Чому це варто робити:
- маленькі регулярні оновлення простіші за одне велике раз на рік, коли накопичилися мажорні версії й breaking changes;
- вразливості закриваються швидко, а не після інциденту;
- оновлення проходять той самий процес, що й код: CI, рев'ю, історія.
Без доброго набору тестів Dependabot корисний наполовину: зелений CI має реально означати «оновлення нічого не зламало». Тому тести - передумова для сміливих оновлень.
Корисні опції: ignore - пропускати певні пакети чи мажорні версії, cooldown - не пропонувати версію одразу після публікації, а почекати кілька днів (захист від зламаних чи скомпрометованих релізів).
Докладніше в документації: GitHub: Dependabot version updates