{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended"], "description": "ignorePaths overrides config:recommended's :ignoreModulesAndTests, which ignores **/examples/** — an example plugin's dependencies get update PRs like any other manifest here", "ignorePaths": ["**/node_modules/**"], "automerge": true, "packageRules": [ { "description": "The host's own runtime deps. Release-Bump is opt-in per surface (README → CI/CD): updateType rates the dependency's own jump, not whether it reaches a running Plainpages", "matchDepTypes": ["dependencies"], "matchFileNames": ["package.json"], "matchManagers": ["npm"], "commitBody": "Release-Bump: {{{updateType}}}" }, { "description": "The shipped image's base — e2e-tests/Dockerfile is test-only", "matchFileNames": ["Dockerfile"], "matchManagers": ["dockerfile"], "commitBody": "Release-Bump: {{{updateType}}}" }, { "description": "The production topology — compose.override.yml is dev, e2e-tests/compose.*.yml are test", "matchFileNames": ["compose.yml"], "matchManagers": ["docker-compose"], "commitBody": "Release-Bump: {{{updateType}}}" }, { "description": "The production sidecars, wherever they are pinned — compose.yml and the published quick start move in one branch, so the trailer must not depend on which upgrade sorts first. mailpit is dev-only and stays out", "matchDatasources": ["docker"], "matchPackageNames": ["oryd/hydra", "oryd/keto", "oryd/kratos", "postgres"], "commitBody": "Release-Bump: {{{updateType}}}" }, { "description": "node is pinned to one version across Dockerfile, dev, E2E and CI, so Renovate moves them in a single branch whose commitBody would otherwise depend on upgrade order — the Dockerfile copy ships, so any node bump is a product change", "matchDatasources": ["docker"], "matchPackageNames": ["node"], "commitBody": "Release-Bump: {{{updateType}}}" }, { "description": "Ory services share one release train - update kratos, keto and hydra together", "matchDatasources": ["docker"], "matchPackageNames": ["oryd/kratos", "oryd/keto", "oryd/hydra"], "groupName": "Ory stack" }, { "description": "Playwright runner and its browser image are version-locked - bump together", "matchPackageNames": ["@playwright/test", "mcr.microsoft.com/playwright"], "groupName": "Playwright" } ], "customManagers": [ { "customType": "regex", "description": "Pin the Renovate image the Renovate workflow runs", "managerFilePatterns": [".gitea/workflows/renovate.yml"], "matchStrings": ["renovate/renovate:(?[0-9][^\\s\"']*)"], "depNameTemplate": "renovate/renovate", "datasourceTemplate": "docker" }, { "customType": "regex", "description": "The published quick start ships a compose file, so its sidecars move with the repo's own pins. The version group starts at a digit, which skips the {{VERSION}} placeholder the release renders", "managerFilePatterns": ["release-tooling/dockerhub-overview.md.tmpl"], "matchStrings": ["image: (?[^:\\s]+):(?v?\\d[^\\s]*)"], "datasourceTemplate": "docker" }, { "customType": "regex", "description": "Pin the node image workflow run-steps invoke (registry-cleanup, renovate auto-release, release)", "managerFilePatterns": [".gitea/workflows/registry-cleanup.yml", ".gitea/workflows/release.yml", ".gitea/workflows/renovate.yml"], "matchStrings": ["\\snode:(?[0-9][^\\s\"']*)"], "depNameTemplate": "node", "datasourceTemplate": "docker" } ] }