From ad67db1806e4f1400e0996f0fe109ba4e3824121 Mon Sep 17 00:00:00 2001 From: Evan Vetere Date: Tue, 8 Sep 2026 20:20:32 -0400 Subject: [PATCH 1/2] chore: Add a shared quiet-by-default update policy Dependency updates open pull requests across the organization on the bot's schedule rather than ours. Sixty-one of them currently request review from a twenty-two person team, the oldest since August 2025, and they bury the pull requests people opened. This adds the policy as a preset under the name Renovate looks for when it onboards a repository, so a new repository starts quiet and an existing one can extend the same file by name. Key changes: - Add renovate-config.json holding the policy, listing updates on each repository's dependency dashboard and opening none until asked - Point this repository's own config at the preset rather than repeating the stock recommendation - Exempt security fixes explicitly, and set osvVulnerabilityAlerts to widen the feed past GitHub's advisories for the language ecosystems OSV covers The name matters. Renovate looks for an organization preset at the renovate-config repository, then at this repository under the preset name renovate-config, which resolves to renovate-config.json. It never reads renovate.json here, which is why the onboarding pull request opened this month still proposes the stock recommendation. Neither OSV nor GitHub advisories cover the docker or helm datasources, so an image or chart security fix arrives as an ordinary dashboard entry rather than through the exemption. The preset description says so. No other repository changes behavior when this merges. This one extends the preset and has no dependencies for Renovate to manage, so the change is inert here too. The twelve repositories awaiting onboarding pick the policy up when their onboarding pull requests regenerate, which Renovate does on its own once the preset changes. Related to datum-cloud/infra#4925 Claude-Session: https://claude.ai/code/session_0196U66w5xh9yRsAosKcA3if --- renovate-config.json | 13 +++++++++++++ renovate.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 renovate-config.json diff --git a/renovate-config.json b/renovate-config.json new file mode 100644 index 0000000..8af2864 --- /dev/null +++ b/renovate-config.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "description": "Datum's shared dependency update policy. Updates are listed on each repository's dependency dashboard and open a pull request only when someone asks for them. Security fixes are exempt and open on their own, for the language ecosystems GitHub advisories and OSV cover. Docker tags and Helm charts have no advisory feed in either source, so a security fix for an image or a chart arrives as an ordinary dashboard entry and depends on someone reviewing that dashboard.", + "extends": [ + "config:recommended" + ], + "dependencyDashboardApproval": true, + "osvVulnerabilityAlerts": true, + "vulnerabilityAlerts": { + "enabled": true, + "dependencyDashboardApproval": false + } +} diff --git a/renovate.json b/renovate.json index 5db72dd..0b03488 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,6 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:recommended" + "local>datum-cloud/.github:renovate-config" ] } From cccdec9b525bd638652a722c115f3fcc7ee7a74a Mon Sep 17 00:00:00 2001 From: Evan Vetere Date: Tue, 8 Sep 2026 21:04:22 -0400 Subject: [PATCH 2/2] chore: Fold repeated settings into the preset An audit of the repositories carrying their own config found the same labelling settings copied across auth-ui, email-templates, agents.datum.net, cloud-portal and datum-ui. Several of the audits proposed the same replacement without knowing about each other. Those are organization convention rather than local decisions. Left in place they get copied into every repository that adopts the preset and drift apart afterwards. Key changes: - Label every update the bot opens, using addLabels rather than a packageRule, because top-level labels replace a consumer's own list while addLabels merges with it, and a packageRule matching on package name never matches a lock file maintenance branch - Move the vulnerability labels into the preset's vulnerabilityAlerts block, where they merge with the existing exemption - Exempt lockFileMaintenance from the approval gate The copied configs also carried a priority boost keyed on a security category. Renovate's categories are the fixed manager set, so that rule matched nothing in any of the five repositories and is left out here rather than inherited organization wide. Vulnerability pull requests already open immediately and ignore concurrency limits by default, so nothing is lost. The lockFileMaintenance carve-out closes a change nobody asked for. Repositories that enable it run it unattended on a schedule today, and under a bare gate those runs would have queued on the dashboard waiting for a manual tick. The setting stays off by default, so this changes nothing for a repository that does not enable it. Related to datum-cloud/infra#4925 Claude-Session: https://claude.ai/code/session_0196U66w5xh9yRsAosKcA3if --- renovate-config.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/renovate-config.json b/renovate-config.json index 8af2864..56cc7db 100644 --- a/renovate-config.json +++ b/renovate-config.json @@ -6,8 +6,13 @@ ], "dependencyDashboardApproval": true, "osvVulnerabilityAlerts": true, + "addLabels": ["renovate"], "vulnerabilityAlerts": { "enabled": true, + "dependencyDashboardApproval": false, + "labels": ["security", "renovate"] + }, + "lockFileMaintenance": { "dependencyDashboardApproval": false } }