Управление зависимостями
Новый раздел
Этот раздел добавлен как дополнение к исходной структуре — управление зависимостями влияет на безопасность и стабильность.
Принципы
- Минимум зависимостей — каждая зависимость — это риск и ответственность
- Автоматическое обновление — Dependabot/Renovate для патч-версий
- Аудит безопасности — автоматический на каждом PR
- Lock-файлы в репозитории —
go.sum,package-lock.json,Podfile.lock
Добавление новой зависимости
Перед добавлением новой библиотеки проверь:
- [ ] Проблему нельзя решить стандартной библиотекой?
- [ ] Библиотека активно поддерживается (коммиты за последние 6 месяцев)?
- [ ] Лицензия совместима (MIT, Apache 2.0, BSD)?
- [ ] Нет известных критических уязвимостей?
- [ ] Количество транзитивных зависимостей разумно?
WARNING
Добавление зависимости с GPL/LGPL лицензией требует согласования с Tech Lead.
Обновление зависимостей
| Тип обновления | Процесс |
|---|---|
| Patch (x.y.Z) | Авто-мерж через Dependabot, если CI зелёный |
| Minor (x.Y.0) | Ревью + CI |
| Major (X.0.0) | Ревью + тестирование + оценка breaking changes |
Ритм обновлений
- Еженедельно: автоматические patch-обновления
- Ежемесячно: ревью minor-обновлений
- Ежеквартально: аудит major-версий и устаревших зависимостей
Запрещённые лицензии
- GPL v2/v3 (без согласования)
- AGPL
- SSPL
- Unlicensed / No license
Управление уязвимостями
При обнаружении уязвимости в зависимости:
| Severity | SLA на исправление |
|---|---|
| Critical (CVSS ≥ 9.0) | 24 часа |
| High (CVSS 7.0–8.9) | 3 рабочих дня |
| Medium (CVSS 4.0–6.9) | 2 недели |
| Low (CVSS < 4.0) | Следующий спринт |