|
1 | 1 | { |
2 | | - // Validate against Renovate JSON schema |
3 | 2 | $schema: 'https://docs.renovatebot.com/renovate-schema.json', |
4 | | - |
5 | | - // Base configuration presets |
6 | 3 | extends: [ |
7 | | - 'config:best-practices', // Use Renovate's recommended best practices |
8 | | - 'mergeConfidence:all-badges', // Enable merge confidence badges |
9 | | - ':timezone(America/Indiana/Indianapolis)', // Set timezone |
10 | | - ':enableVulnerabilityAlerts', // Enable security vulnerability alerts |
11 | | - ':automergeMinor', // Auto-merge minor updates |
12 | | - 'group:react', // Group React packages together |
13 | | - 'group:reactMonorepo', // Group React monorepo packages |
14 | | - 'group:eslintMonorepo', // Group ESLint monorepo packages |
15 | | - 'group:linters', // Group linting tools |
16 | | - 'group:jestMonorepo', // Group Jest monorepo packages |
17 | | - 'group:jestPlusTypes', // Group Jest with its types |
18 | | - 'group:jestPlusTSJest', // Group Jest with TypeScript Jest |
| 4 | + 'config:best-practices', |
| 5 | + 'mergeConfidence:all-badges', |
| 6 | + ':timezone(America/Indiana/Indianapolis)', |
| 7 | + ':enableVulnerabilityAlerts', |
| 8 | + ':automergeMinor', |
| 9 | + 'group:react', |
| 10 | + 'group:reactMonorepo', |
| 11 | + 'group:eslintMonorepo', |
| 12 | + 'group:linters', |
| 13 | + 'group:jestMonorepo', |
| 14 | + 'group:jestPlusTypes', |
| 15 | + 'group:jestPlusTSJest', |
19 | 16 | ], |
20 | | - |
21 | | - // Version management strategies |
22 | | - rangeStrategy: 'bump', // Bump ranges to next version |
23 | | - bumpVersion: 'patch', // Use patch version for bumping |
24 | | - |
25 | | - // Enable dependency dashboard for overview |
| 17 | + rangeStrategy: 'bump', |
| 18 | + bumpVersion: 'patch', |
26 | 19 | dependencyDashboard: true, |
27 | | - |
28 | | - // Rate limiting to avoid overwhelming CI |
29 | | - prConcurrentLimit: 10, // Max 10 concurrent PRs |
30 | | - prHourlyLimit: 0, // No hourly limit |
31 | | - |
32 | | - // Rebase strategy |
| 20 | + prConcurrentLimit: 10, |
| 21 | + prHourlyLimit: 0, |
33 | 22 | rebaseWhen: 'auto', |
34 | | - |
35 | | - // Schedule for when to run updates |
36 | 23 | schedule: [ |
37 | 24 | 'after 8am and before 5pm on monday', |
38 | 25 | ], |
39 | | - |
40 | | - // Schedule for when to automerge |
41 | 26 | automergeSchedule: [ |
42 | 27 | 'after 8am and before 5pm on weekdays', |
43 | 28 | ], |
44 | | - |
45 | | - // Allow updates outside of schedule |
46 | 29 | updateNotScheduled: false, |
47 | | - |
48 | | - // Give everything some time to bake |
49 | 30 | minimumReleaseAge: '3 days', |
50 | | - |
51 | | - // Automerge via PR by default |
52 | | - automerge: true, // Automerge non-major npm updates |
| 31 | + automerge: true, |
53 | 32 | automergeType: 'pr', |
54 | | - |
55 | | - // Security update configuration |
56 | 33 | vulnerabilityAlerts: { |
57 | | - automerge: true, // Auto-merge security fixes |
| 34 | + automerge: true, |
58 | 35 | labels: [ |
59 | 36 | 'security', |
60 | 37 | ], |
61 | | - vulnerabilityFixStrategy: 'lowest', // Use lowest possible version that fixes vulnerability |
62 | | - prCreation: 'immediate', // Create PRs immediately for security issues |
| 38 | + vulnerabilityFixStrategy: 'lowest', |
| 39 | + prCreation: 'immediate', |
63 | 40 | }, |
64 | | - |
65 | | - // Enable OSV vulnerability alerts |
66 | 41 | osvVulnerabilityAlerts: true, |
67 | | - |
68 | | - // Disable platform automerge (use Renovate's automerge instead) |
69 | 42 | platformAutomerge: false, |
70 | | - |
71 | | - // Assign PRs to myself |
72 | | - "assignees": ["stanlemon"], |
73 | | - |
74 | | - // Add labels to PRs |
75 | | - "labels": ["renovate-pr"], |
76 | | - |
77 | | - |
78 | | - // Package-specific rules |
| 43 | + assignees: [ |
| 44 | + 'stanlemon', |
| 45 | + ], |
| 46 | + labels: [ |
| 47 | + 'renovate-pr', |
| 48 | + ], |
79 | 49 | packageRules: [ |
80 | 50 | { |
81 | | - // Special handling for @stanlemon packages (my own packages) |
82 | 51 | groupName: 'my own packages', |
83 | | - minimumReleaseAge: null, // No waiting period for my own packages |
| 52 | + minimumReleaseAge: null, |
84 | 53 | matchPackageNames: [ |
85 | 54 | '/^@stanlemon/', |
86 | 55 | ], |
|
89 | 58 | 'minor', |
90 | 59 | 'patch', |
91 | 60 | ], |
92 | | - automergeType: 'branch', // Use branch automerge for faster deployment |
| 61 | + automergeType: 'branch', |
93 | 62 | automerge: true, |
94 | 63 | }, |
95 | 64 | { |
96 | | - // Disable updating nodejs package peer dependencies |
97 | 65 | matchDepTypes: [ |
98 | 66 | 'peerDependencies', |
99 | 67 | ], |
100 | 68 | enabled: false, |
101 | 69 | }, |
102 | 70 | { |
103 | | - // Group Node.js minor/patch updates together |
104 | 71 | groupName: 'nodejs updates (non-major)', |
105 | 72 | matchPackageNames: [ |
106 | 73 | 'node', |
|
122 | 89 | 'docker-compose', |
123 | 90 | 'dockerfile', |
124 | 91 | ], |
125 | | - matchFiles: [ |
| 92 | + matchFileNames: [ |
126 | 93 | 'package.json', |
127 | 94 | '.nvmrc', |
128 | 95 | 'Dockerfile', |
129 | 96 | 'docker-compose.yml', |
130 | 97 | ], |
131 | | - minimumReleaseAge: '3 days', // Quick updates for minor/patch |
132 | | - automerge: false, // Don't automerge Node.js updates due to potential breaking changes |
| 98 | + minimumReleaseAge: '3 days', |
| 99 | + automerge: false, |
133 | 100 | }, |
134 | 101 | { |
135 | | - // Override datasource for node package in npm to use node-version |
136 | 102 | groupName: 'nodejs updates (non-major)', |
137 | 103 | matchPackageNames: [ |
138 | 104 | 'node', |
|
144 | 110 | overridePackageName: 'node', |
145 | 111 | }, |
146 | 112 | { |
147 | | - // Override datasource for node package in nvm to use node-version |
148 | 113 | groupName: 'nodejs updates (non-major)', |
149 | 114 | matchPackageNames: [ |
150 | 115 | 'node', |
|
156 | 121 | overridePackageName: 'node', |
157 | 122 | }, |
158 | 123 | { |
159 | | - // Override datasource for @types/node to use node-version |
160 | 124 | groupName: 'nodejs updates (non-major)', |
161 | 125 | matchPackageNames: [ |
162 | 126 | '@types/node', |
|
168 | 132 | overridePackageName: 'node', |
169 | 133 | }, |
170 | 134 | { |
171 | | - // Override datasource for node package in docker to use node-version |
172 | 135 | groupName: 'nodejs updates (non-major)', |
173 | 136 | matchPackageNames: [ |
174 | 137 | 'node', |
|
180 | 143 | overridePackageName: 'node', |
181 | 144 | }, |
182 | 145 | { |
183 | | - // Special LTS gate for Node.js major version updates |
184 | 146 | groupName: 'nodejs major updates (LTS gate)', |
185 | 147 | matchDatasources: [ |
186 | 148 | 'node-version', |
|
192 | 154 | matchUpdateTypes: [ |
193 | 155 | 'major', |
194 | 156 | ], |
195 | | - minimumReleaseAge: '7 months', // Wait longer for major Node.js releases |
196 | | - internalChecksFilter: 'strict', // Strict internal checks for major updates |
197 | | - automerge: false, // Don't automerge major Node.js updates |
| 157 | + minimumReleaseAge: '7 months', |
| 158 | + internalChecksFilter: 'strict', |
| 159 | + automerge: false, |
198 | 160 | matchManagers: [ |
199 | 161 | 'npm', |
200 | 162 | 'nvm', |
201 | 163 | 'docker-compose', |
202 | 164 | 'dockerfile', |
203 | 165 | ], |
204 | | - matchFiles: [ |
| 166 | + matchFileNames: [ |
205 | 167 | 'package.json', |
206 | 168 | '.nvmrc', |
207 | 169 | 'Dockerfile', |
208 | 170 | 'docker-compose.yml', |
209 | 171 | ], |
210 | 172 | }, |
211 | 173 | { |
212 | | - // NPM Major updates (non-grouped) |
213 | 174 | matchManagers: [ |
214 | 175 | 'npm', |
215 | 176 | ], |
216 | 177 | matchUpdateTypes: [ |
217 | 178 | 'major', |
218 | 179 | ], |
219 | | - // Exclude my own packages (handled separately) |
220 | 180 | matchPackageNames: [ |
221 | 181 | '!/^@stanlemon\\//', |
222 | 182 | ], |
223 | | - // Don't automerge major updates |
224 | 183 | automerge: false, |
225 | 184 | }, |
226 | 185 | { |
227 | | - // Group GitHub Actions digest updates together |
228 | 186 | groupName: 'github actions digests', |
229 | 187 | groupSlug: 'github-actions-digests', |
230 | 188 | matchManagers: [ |
|
235 | 193 | ], |
236 | 194 | }, |
237 | 195 | { |
238 | | - // Catch-all rule for npm non-major updates |
239 | 196 | groupName: 'npm non-major (catch-all)', |
240 | 197 | groupSlug: 'npm-all-non-major', |
241 | 198 | matchManagers: [ |
|
245 | 202 | 'minor', |
246 | 203 | 'patch', |
247 | 204 | ], |
248 | | - // Exclude my own packages (handled separately) |
249 | 205 | matchPackageNames: [ |
250 | 206 | '!/^@stanlemon\\//', |
251 | 207 | ], |
|
0 commit comments