Агент обновления зависимостей
Непрерывно сканируйте устаревшие npm-пакеты, уязвимости безопасности и критические изменения. Автоматически предлагайте PR с путями обновления и оценкой рисков.
Поддержание зависимостей в актуальном состоянии имеет решающее значение для безопасности и стабильности, но отслеживание вручную утомительно. Уведомления о безопасности, новые основные версии и обновления переходных зависимостей накапливаются быстро.
Агент обновления зависимостей отслеживает ваш реестр пакетов, обнаруживает уязвимости и устаревшие пакеты, оценивает безопасность обновления и открывает PR с четкими оценками риска.
Что делает агент
По еженедельному расписанию агент зависимостей:
- Сканирует зависимости — запускает
npm audit,yarn auditилиpnpm auditдля поиска уязвимостей и устаревших пакетов - Фильтрует по риску — разделяет обновления patch/minor от основных версий, которые могут вызвать проблемы
- Оценивает критические изменения — проверяет журналы изменений и выпуски GitHub на предмет критических изменений
- Тестирует обновления — запускает ваш набор тестов для обновленных зависимостей
- Предлагает PR — создает сгруппированные PR (один для плановых обновлений, один для безопасности, один на каждый основной bump) с резюме рисков
- Отслеживает оценки риска — включает серьезность CVE, скорость внедрения и стабильность выпуска в описание PR
Настройка
Предварительные условия
- Рабочая область AACWorkflow с активным агентом
- npm, yarn или pnpm настроены в вашем репозитории
- CI/CD конвейер, который запускает тесты (GitHub Actions, Buildkite и т.д.)
Шаг 1: Создание агента обновления зависимостей
- Перейдите в Settings → Agents и нажмите New Agent
- Выберите ваш runtime и провайдер
- Назовите его
dependency-botилиupgrade-manager - Добавьте эту системную подсказку:
Role: Dependency update manager
Task: Weekly or on-demand:
1. Run npm/yarn/pnpm audit to find vulnerabilities and outdated packages
2. Separate findings:
- Critical/high CVEs → immediate branch
- Patch & minor updates → routine maintenance branch
- Major version updates → per-package branches (evaluate breaking changes)
3. For each major update:
- Check GitHub releases for breaking changes
- Run full test suite with updated version
- Report pass/fail and any deprecation warnings
4. Create GitHub branches and PRs grouped by risk tier
5. Add detailed PR description with:
- Vulnerability CVE-IDs and severity (CVSS score if available)
- Changelog highlights
- Test results summary
- "⚠️ This is a major version bump" flag for breaking updates
Example PR title format:
- "deps: security updates (npm audit)" → patch updates, no breaks
- "deps: urgent | CVE-2025-1234 (critical)" → security hot-fix
- "deps: major | react@19 + breaking changes" → major version bump
5. Auto-request code review from team (post in Slack/Teams)
6. Link PRs to AACWorkflow issues for trackingШаг 2: Планирование агента
Перейдите в Settings → Automations и создайте запланированную задачу:
- Trigger: Еженедельно (например, четверг в 10:00)
- Task: Назначьте
dependency-botагенту - Template:
dependency-update
Или используйте cron-задачу:
# Каждый четверг в 10:00
0 10 * * 4 curl -X POST https://aacworkflow.com/api/tasks \
-H "Authorization: Bearer $TOKEN" \
-d '{"agent_id": "dependency-bot", "title": "Weekly dependency scan"}'Шаг 3: Настройка правил аудита
Добавьте .aacworkflow/dependency-config.yml:
dependency_audit:
package_managers:
- npm
- pnpm
auto_merge:
enabled: true
conditions:
- type: patch
only_if: all_tests_pass
- type: minor
only_if: all_tests_pass_and_no_deprecation_warnings
- type: major
only_if: manual_approval
skip_packages:
- react # pin in package.json, don't auto-update
- react-dom
- expo # mobile pinned
priority:
critical_cve: "auto-merge if tests pass"
high_cve: "create PR, notify team"
medium_cve: "batch with weekly update"
patches: "batch with weekly update"
notification:
slack_channel: "#dependencies"
mention_on_critical: "@security-team"Примеры выходных PR
Плановое обновление (patch + minor)
Title: deps: routine updates (3 packages)
Body:
## Changes
- chalk 5.3.0 → 5.4.1 (patch)
- lodash-es 4.17.21 → 4.18.0 (minor)
- ts-node 10.9.1 → 10.9.2 (patch)
All changes are backwards compatible. Tests: ✅ PASS (1200 tests in 42s)
---
**Risk:** Low | No deprecation warnings | Routine maintenance
Merging this is safe.Обновление безопасности (высокий CVE)
Title: deps: urgent | CVE-2025-1234 (high) in express
Body:
## Vulnerability
**express 4.18.0 → 4.19.5** (patch)
⚠️ **CVE-2025-1234** — Request header parsing DoS
- CVSS Score: 7.5 (High)
- Affected: express < 4.19.5
- Fix: Backport in patch release
https://nvd.nist.gov/vuln/detail/CVE-2025-1234
## Action
This is a security patch with no breaking changes.
Tests: ✅ PASS (1200 tests in 40s)
No deprecation warnings.
---
**Risk:** Low (security patch only)
✅ Safe to merge immediately. Recommend merging today.Обновление основной версии (критическое изменение)
Title: deps: major | typescript@5.6 (from 5.5)
Body:
## Breaking Changes
**typescript 5.5.4 → 5.6.0** (major)
### Highlights
- Stricter null checking (new flag)
- Removed deprecated `ts.transpileOnly` option
- New `verbatimModuleSyntax` requirement for type imports
### Migration Required
Files needing updates:
- `tsconfig.json`: set `verbatimModuleSyntax: true`
- 3 files with bare `import type` → add `type` keyword
## Test ResultsTypecheck: ⚠️ 12 errors (migration required) Unit tests: ⛔ FAIL (due to typecheck failures) E2E: ⛔ SKIP (blocked by typecheck)
This PR is in **DRAFT** mode. Required steps to merge:
1. Fix tsconfig.json
2. Update import statements
3. Re-run tests (target: all green)
4. Get code review from @backend-lead
---
**Risk:** Medium | Requires migration | Recommend 1–2 day sprintСоветы и лучшие практики
Разделяйте по риску. Группируйте плановые патчи, пакетные обновления безопасности и обрабатывайте основные версии как отдельные проекты. Не перегружайте команду одним PR из 50 файлов.
- Тестируйте перед предложением — запустите полный набор тестов для обновленных зависимостей; открывайте PR только если тесты проходят или сбои явно предсуществуют
- Переходные зависимости — используйте
npm audit fix --audit-level=moderateдля автоматического применения безопасных обновлений переходных зависимостей - Стратегия файла блокировки — зафиксируйте файлы блокировки; запустите тесты перед слиянием, чтобы поймать тонкие критические изменения
- Безопасность в первую очередь — если существует критический CVE, откройте PR в тот же день; не пакетируйте с плановыми обновлениями
- Предупреждения об устаревании — захватите выходные данные устаревания
npm listв PR; спланируйте сроки удаления - Уведомления команды — публикуйте PR с высокой серьезностью в Slack/Teams сразу; не ждите еженедельного дайджеста
Связанные руководства
- CI Triage Agent — если обновление зависимостей нарушает тесты, агент CI поможет триажу
- Release Notes Agent — включите обновления зависимостей в примечания к выпуску