{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended", "helpers:pinGitHubActionDigests" ], "labels": [ "dependencies" ], "customManagers": [ { "customType": "regex", "managerFilePatterns": [ "/defaults/main.yml$/" ], "matchStrings": [ "# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (?:lookupName|packageName)=(?[^\\s]+?))?(?: versioning=(?[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?(?:_version|_tag)\\s*:\\s*[\"']?(?.+?)[\"']?\\s" ] }, { "description": "Helper container images used by the Molecule scenarios. They are pinned once in molecule-shared/vars.yml rather than inline in each role's verify.yml, so this manager keeps that single pin current.", "customType": "regex", "managerFilePatterns": [ "/^molecule-shared/vars\\.yml$/" ], "matchStrings": [ "# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)\\s+[A-Za-z0-9_]+?\\s*:\\s*[\"'][^:]+:(?[^\"']+)[\"']" ] } ], "packageRules": [ { "ignoreUnstable": false, "versioning": "loose", "matchSourceUrls": [ "https://github.com/devture/com.devture.ansible.role{/,}**", "https://github.com/mother-of-all-self-hosting{/,}**" ] }, { "description": "mautrix images are dual-tagged (v0.YYMM.PATCH and vYY.MM[.PATCH]). Stick to the v0 scheme: it matches the git tags (needed for self-building) and has a consistent number of components (the calver tags do not, which makes Renovate stop offering updates).", "matchPackageNames": [ "dock.mau.dev/mautrix/**" ], "allowedVersions": "/^v0\\./" }, { "description": "Automerge version bumps of roles maintained in the MASH organization and of devture roles (via branch push - no PR)", "matchManagers": [ "ansible-galaxy" ], "matchSourceUrls": [ "https://github.com/devture/com.devture.ansible.role{/,}**", "https://github.com/mother-of-all-self-hosting{/,}**" ], "automerge": true, "automergeType": "branch" }, { "description": "Housekeeping updates merge via branch push (no PR, no email); a failure on the branch still surfaces as a PR. i18n/requirements.txt bumps are exercised by the Matrix i18n workflow before merging.", "matchFileNames": [ ".github/workflows/close-stale-issues.yml", ".github/workflows/i18n.yml", ".github/workflows/lock-threads.yml", ".github/workflows/matrix.yml", ".github/workflows/update-translations.yml", "flake.lock", "i18n/requirements.txt", "mise.toml" ], "automerge": true, "automergeType": "branch" }, { "description": "Molecule's own dependencies merge via branch push (no PR, no email). Anything under molecule-shared/ - the helper container images, Postgres, and the Python pins - triggers the Molecule workflow, and a change to a shared file makes it run every scenario, so an update only merges once the whole suite has passed on it. A failure surfaces as a PR instead. This is how a new Postgres major reaches us: the bump runs every scenario against it before anything is merged.", "matchFileNames": [ "molecule-shared/**", ".github/workflows/molecule.yml" ], "automerge": true, "automergeType": "branch" }, { "description": "Automerge patch bumps of components whose role has a Molecule scenario (via branch push - no PR). A bump touches that role's defaults/main.yml, which makes the Molecule workflow run that role's scenario, so the update only merges once the component has been started on the configuration the role renders. Patch only: a minor carries behaviour changes no static rule can judge, and reading the release notes to decide is a job for a human or an agent. Keep this list in step with the roles that have a scenario - bin/check-molecule-automerge-list.py enforces that.", "matchFileNames": [ "roles/custom/matrix-alertmanager-receiver/defaults/main.yml", "roles/custom/matrix-bot-baibot/defaults/main.yml", "roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml", "roles/custom/matrix-bridge-heisenbridge/defaults/main.yml", "roles/custom/matrix-bridge-hookshot/defaults/main.yml", "roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml", "roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml", "roles/custom/matrix-bridge-mautrix-whatsapp/defaults/main.yml" ], "matchUpdateTypes": [ "patch" ], "automerge": true, "automergeType": "branch" } ], "pre-commit": { "enabled": true }, "nix": { "enabled": true, "lockFileMaintenance": { "enabled": true } } }