Skip to content

ci: update libraries daily with deps-auto-update instead of Dependabot - #90

Merged
agentHits merged 1 commit into
AgentHits-Devfrom
ci/deps-auto-update
Oct 27, 2026
Merged

agentHits merged 1 commit into
AgentHits-Devfrom
ci/deps-auto-update

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Библиотеки форка обновлялись Dependabot только по прямым зависимостям: транзитивные пакеты в bun.lock не двигались, и уязвимость в них осталась бы навсегда. Во всех остальных проектах владельца с 2026-10-27 библиотеки обновляет один и тот же workflow deps-auto-update.yml. Этот PR переводит форк на него и ставит порог возраста версии сутки, как там.

Что и когда будет запускаться

Каждый день в 03:00 UTC и по ручному запуску → deps-auto-update.yml

  1. update (токен только на чтение, учётные данные checkout не сохраняются): bun install --frozen-lockfile, затем bun update --recursive --minimum-release-age=86400 — все workspaces (apps/api, apps/dokploy, apps/schedules, packages/server), прямые и транзитивные пакеты, только в пределах диапазонов package.json (minor и patch). Затем bun audit и bun outdated. Если изменилось что-то кроме package.json и bun.lock, job падает.
  2. publish (пишет, но Bun и пакеты не запускает): commit поверх свежей AgentHits-Dev, git push --force в ветку deps/auto-update, один PR «зависимости: автообновление библиотек» с таблицей «пакет — было — стало», итогом bun audit и списком доступных major. Затем запускает pull-request.yml на ветке через workflow_dispatch: push от GITHUB_TOKEN не создаёт событие pull_request.

Пока PR открыт, ветка каждый день пересобирается с новыми версиями. Commit в эту ветку от человека останавливает пересборку до merge или закрытия PR. Обновлений нет — открытый PR закрывается. Workflow не мержит и не деплоит; после merge, как обычно, выходит релиз agenthits-v*.

Замороженные пакеты не двигаются: better-auth, @better-auth/*, stripe, @stepperize/react, @dokploy/trpc-openapi закреплены точными версиями, ssh2 — через ~, overrides в корне точные. Major (сейчас около 27 пакетов: stripe, octokit, date-fns, nanoid, redis, ioredis, bullmq и др.) — вручную, по одному PR.

Остальные изменения

  • pull-request.yml: добавлен workflow_dispatch, группа concurrency для такого запуска берётся по ветке.
  • .github/dependabot.yml удалён: для Bun его заменяет workflow.
  • bunfig.toml: minimumReleaseAge 259200 → 86400 (сутки).
  • CLAUDE.md: раздел Dependencies с правилами.
  • Еженедельный dependency-audit.yml (ci: run bun audit every week #89) остаётся.

Проверки

  • actionlint для deps-auto-update.yml и pull-request.yml — без замечаний к новым строкам.
  • Шаг update из этого файла прогнан локально на временной копии AgentHits-Dev: изменились только bun.lock, apps/dokploy/package.json и packages/server/package.json. Первый PR сдвинет около 617 записей bun.lock, в основном транзитивных. Замороженные пакеты и overrides не изменились, bun audit — No vulnerabilities found (1524 пакета).
  • bun install --frozen-lockfile с новым bunfig.toml проходит.

Что нужно от владельца

  • Включить в репозитории Settings → Actions → General → Workflow permissions → «Allow GitHub Actions to create and approve pull requests» (в организации TaskFlow-Systems уже включено, в репозитории — нет). Без этого ветка обновится, а PR не создастся.
  • После merge запустить первый прогон: gh workflow run deps-auto-update.yml --repo TaskFlow-Systems/dokploy --ref AgentHits-Dev.

Тот же workflow добавляется в agentHits/dokploy-mcp отдельным PR.

🤖 Generated with Claude Code

Что:
- .github/workflows/deps-auto-update.yml: тот же workflow, что в репозиториях hit-proxy. Каждый день в 03:00 UTC и вручную: bun update в пределах диапазонов package.json (minor и patch, прямые и транзитивные пакеты, версии не моложе суток), bun audit, ветка deps/auto-update и один PR «зависимости: автообновление библиотек» в AgentHits-Dev. Пока PR открыт, ветка пересобирается каждый день; чужой commit в ней останавливает пересборку. Проверки ветки - pull-request.yml через workflow_dispatch. Workflow не мержит и не деплоит. Файл одинаковый в dokploy и dokploy-mcp: база AgentHits-Dev, bun workspaces определяются по package.json и обновляются через bun update --recursive.
- pull-request.yml: добавлен workflow_dispatch, чтобы workflow мог запустить проверки своей ветки.
- .github/dependabot.yml удалён: для Bun его заменяет этот workflow.
- bunfig.toml: minimumReleaseAge 259200 → 86400 (сутки); CLAUDE.md: раздел Dependencies.
Зачем:
- Единый процесс обновления библиотек во всех проектах владельца (решение 2026-10-27). Dependabot для Bun двигает только прямые зависимости, транзитивные CVE оставались навсегда.
Риски:
- Для создания PR в настройках репозитория нужно включить «Allow GitHub Actions to create and approve pull requests»; без этого ветка обновляется, а job publish падает с подсказкой.
- Major-версии workflow не берёт: они остаются ручными, по одному PR.
Проверки:
- actionlint для deps-auto-update.yml и pull-request.yml - без замечаний к новым строкам.
- Шаг update из этого файла прогнан локально на временной копии: менялись только разрешённые файлы, bun audit чист.
- bun install --frozen-lockfile с новым bunfig.toml проходит.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits
agentHits merged commit 73931ba into AgentHits-Dev Oct 27, 2026
3 checks passed
@agentHits
agentHits deleted the ci/deps-auto-update branch October 27, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant