chore(renovate): сузить область — граница и мёртвый код вне схемы, docker-пины отдельно

This commit is contained in:
hh committed 2026-09-10 16:33:27 +02:00
1 parent 1b970c9b41
commit f180a90965
1 file changed
+38 -1
+38 -1
View File
@@ -20,6 +20,35 @@
"extends": ["config:recommended", ":dependencyDashboard"], "extends": ["config:recommended", ":dependencyDashboard"],
"timezone": "Europe/Warsaw", "timezone": "Europe/Warsaw",
// ОБЛАСТЬ. Прогон вхолостую 10.09.2026 показал, что без этих двух ключей
// Renovate в прикладной репе лезет сильно дальше, чем задумано.
//
// enabledManagers: без списка их подхватывается полтора десятка. На
// cars-system это дало `html` (16 файлов вёрстки в _legacy), `pyenv`
// (.python-version — это смена рантайма, а не зависимости), плюс `poetry`
// и `pixi`, которые лезут в тот же backend/pyproject.toml, что и pep621.
"enabledManagers": [
"docker-compose",
"dockerfile",
"npm",
"bun",
"pep621",
"pip_requirements",
"gomod",
"github-actions"
],
// ignorePaths: в репах приложений рядом с рабочим compose лежит ещё и
// caddy/docker-compose.yml. Это ГРАНИЦА — `ghcr.io/caddybuilds/caddy-cloudflare`,
// а граница из схемы исключена намеренно, ей нужен не лаг, а хелсчек с
// автооткатом (docs/image-updates.md §6). В infra/komodo это делает
// includePaths, здесь — вот эта строчка. Заодно выкидываем мёртвый
// _legacy и compose для дев-воркtree, который никто не разворачивает.
"ignorePaths": [
"**/caddy/**",
"_legacy/**",
"**/docker-compose.worktree.yml"
],
// Дайджест: тег в compose остаётся для читаемости, разворачивается всегда // Дайджест: тег в compose остаётся для читаемости, разворачивается всегда
// один и тот же образ. // один и тот же образ.
"pinDigests": true, "pinDigests": true,
@@ -49,6 +78,14 @@
"matchUpdateTypes": ["patch", "minor", "digest", "pinDigest"], "matchUpdateTypes": ["patch", "minor", "digest", "pinDigest"],
"automerge": true "automerge": true
}, },
{
"description":
"Docker: первичный пиннинг дайджеста — ОТДЕЛЬНОЙ веткой. `groupName: null` здесь обязателен: у Renovate есть встроенная группа «Pin dependencies», и без этой строчки docker-пины уезжают в один PR вместе с npm-пинами. Группа берёт самый строгий automerge из своих участников, то есть докер молча переставал мёржиться сам — поймано прогоном вхолостую на placebot, где в pin-dependencies лежали python и caddy-cloudflare вперемешку с фронтовыми пакетами.",
"matchDatasources": ["docker"],
"matchUpdateTypes": ["pin", "pinDigest"],
"groupName": null,
"automerge": true
},
{ {
"description": "Docker: мажор руками. Аппрув в дашборде, PR не создаётся.", "description": "Docker: мажор руками. Аппрув в дашборде, PR не создаётся.",
"matchDatasources": ["docker"], "matchDatasources": ["docker"],
@@ -92,7 +129,7 @@
"description": "description":
"ЗАВИСИМОСТИ КОДА (npm, pip, go.mod, экшены и прочее не-docker): PR собираем, автомёрдж НЕ включаем — решение Бобра от 10.09.2026, первый заход без него, чтобы сначала посмотреть на объём. Сгруппированы в один PR намеренно: иначе они по одному займут весь prConcurrentLimit и вытеснят docker-обновления, а те как раз едут сами.", "ЗАВИСИМОСТИ КОДА (npm, pip, go.mod, экшены и прочее не-docker): PR собираем, автомёрдж НЕ включаем — решение Бобра от 10.09.2026, первый заход без него, чтобы сначала посмотреть на объём. Сгруппированы в один PR намеренно: иначе они по одному займут весь prConcurrentLimit и вытеснят docker-обновления, а те как раз едут сами.",
"matchDatasources": ["!docker"], "matchDatasources": ["!docker"],
"matchUpdateTypes": ["patch", "minor", "digest", "pinDigest"], "matchUpdateTypes": ["pin", "patch", "minor", "digest", "pinDigest"],
"groupName": "зависимости кода", "groupName": "зависимости кода",
"automerge": false, "automerge": false,
"addLabels": ["deps-code"] "addLabels": ["deps-code"]