Skip to content

Commit c2efa83

Browse files
committed
Add custom Renovate configuration
1 parent 08d55ca commit c2efa83

1 file changed

Lines changed: 105 additions & 2 deletions

File tree

renovate.json5

Lines changed: 105 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,109 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
33
"extends": [
4-
"config:recommended"
5-
]
4+
// Start with the Renovate recommended config
5+
// https://docs.renovatebot.com/presets-config/#configrecommended
6+
"config:recommended",
7+
// ensure all GHA are pinned to digests
8+
// https://docs.renovatebot.com/presets-helpers/#helperspingithubactiondigests
9+
"helpers:pinGitHubActionDigests",
10+
// report on abandoned pacakges
11+
// https://docs.renovatebot.com/presets-abandonments/
12+
"abandonments:recommended",
13+
// We don't want automated docker/docker-compose/Dockerfile updates
14+
"docker:disable",
15+
// Add the nice badges to PRs
16+
// https://docs.renovatebot.com/presets-mergeConfidence/#mergeconfidenceall-badges
17+
"mergeConfidence:all-badges"
18+
],
19+
// Label all Reonvate PRs with "dependencies"
20+
"labels": ["dependencies"],
21+
//
22+
// NOTE: lockFileMaintenance is currently disabled as it doesn't respect the
23+
// minimumReleaseAge for uv. An open PR for adding it has been put on hold for now.
24+
// https://github.com/renovatebot/renovate/pull/41913#issuecomment-4231423178
25+
// Instead, for now we use the update-dependencies-action to update the
26+
// uv lockfile
27+
"lockFileMaintenance": { "enabled": false},
28+
// update transitive deps by updating the entire lockfile
29+
// We run this on the same schedule; add a note for the reviewer to do the
30+
// default dependencies first to reduce the amount needed for review in the
31+
// full lockfile update
32+
// "lockFileMaintenance": {
33+
// "enabled": true,
34+
// "minimumReleaseAge": "7 days",
35+
// "schedule": [
36+
// "* 0-3 * * WED"
37+
// ],
38+
// "prBodyNotes": [":information_source: Before reviewing this PR, merge any prod/dev dependency PRs and rebase."]
39+
// },
40+
// don't auto-update python-version, we want to manage python updates ourselves
41+
"ignorePaths": [".python-version"],
42+
// Note package rules apply only to direct dependencies
43+
// group dependencies by dev/prod, cooldown 7 days, run early Wed mornings
44+
// rangeStrategy: widen expands the range when a new version is found and updates the lockfile (with respect to the cooldown).
45+
// Assumes that the repo has upper limits (<=) set on pyproject.toml dependencies
46+
// Note that we can't (as of 2026-03-20 at least) use the "bump" strategy to always bump versions. This expands
47+
// the pyproject.toml range with respect to the cooldown, but DOESN'T respect the cooldown when it updates the
48+
// lockfile, which results in a conflict with MinimumReleaseAge.
49+
"packageRules": [
50+
// We handle github runners (ubuntu versions etc) manually
51+
{
52+
"matchDatasources": ["github-runners"],
53+
"enabled": false
54+
},
55+
// pep621 covers pyproject.toml and uv.lock files
56+
// https://docs.renovatebot.com/modules/manager/pep621/
57+
{
58+
"matchManagers": ["pep621"],
59+
"matchDepTypes": ["dependency-groups", "tool.uv.dev-dependencies"],
60+
"addLabels": ["python"],
61+
"groupName": "python dev dependencies",
62+
"rangeStrategy": "widen",
63+
"minimumReleaseAge": "7 days",
64+
"schedule": [
65+
"* 0-3 * * WED"
66+
],
67+
},
68+
{
69+
"matchManagers": ["pep621"],
70+
"matchDepTypes": ["project.dependencies", "project.optional-dependencies", "tool.uv.sources"],
71+
"addLabels": ["python"],
72+
"groupName": "python prod dependencies",
73+
"rangeStrategy": "widen",
74+
"minimumReleaseAge": "7 days",
75+
"schedule": [
76+
"* 0-3 * * WED"
77+
],
78+
},
79+
{
80+
"matchManagers": ["github-actions"],
81+
"addLabels": ["actions"],
82+
"minimumReleaseAge": "7 days",
83+
"schedule": [
84+
"* 0-3 * * WED"
85+
]
86+
},
87+
// disable minimumReleaseAge for pinDigest to avoid the stability-days check showing as pending
88+
// when Renovate opens a PR for pinning GHA dependencies to digests
89+
{
90+
"description": "Disable minimumReleaseAge for pinDigest update types",
91+
"matchUpdateTypes": ["pinDigest"],
92+
"minimumReleaseAge": null,
93+
},
94+
// EXAMPLE: If required, pin a specific dependency to an upper allowed version
95+
// Otherwise renovate will use the general "widen" strategy to change the upper limit in pyproject.toml
96+
// and will bump it anyway
97+
// {
98+
// "matchManagers": ["pep621"],
99+
// "matchDepNames": ["Django"],
100+
// "allowedVersions": "<6.0"
101+
// },
102+
],
103+
// Include vulnerability alerts; this uses dependabot and requires that depenency graph and
104+
// dependabot alerts are enabled in the repo
105+
// https://docs.renovatebot.com/configuration-options/#vulnerabilityalerts
106+
"vulnerabilityAlerts": {
107+
"addLabels": ["security"]
108+
}
6109
}

0 commit comments

Comments
 (0)