|
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 | | - ':maintainLockFilesMonthly', // Update lock files monthly |
10 | | - ':timezone(America/Indiana/Indianapolis)', // Set timezone |
11 | | - ':enableVulnerabilityAlerts', // Enable security vulnerability alerts |
12 | | - ':automergeMinor', // Auto-merge minor updates |
13 | | - 'group:react', // Group React packages together |
14 | | - 'group:reactMonorepo', // Group React monorepo packages |
15 | | - 'group:eslintMonorepo', // Group ESLint monorepo packages |
16 | | - 'group:linters', // Group linting tools |
17 | | - 'group:jestMonorepo', // Group Jest monorepo packages |
18 | | - 'group:jestPlusTypes', // Group Jest with its types |
19 | | - 'group:jestPlusTSJest', // Group Jest with TypeScript Jest |
| 4 | + 'config:best-practices', |
| 5 | + 'mergeConfidence:all-badges', |
| 6 | + ':maintainLockFilesMonthly', |
| 7 | + ':timezone(America/Indiana/Indianapolis)', |
| 8 | + ':enableVulnerabilityAlerts', |
| 9 | + ':automergeMinor', |
| 10 | + 'group:react', |
| 11 | + 'group:reactMonorepo', |
| 12 | + 'group:eslintMonorepo', |
| 13 | + 'group:linters', |
| 14 | + 'group:jestMonorepo', |
| 15 | + 'group:jestPlusTypes', |
| 16 | + 'group:jestPlusTSJest', |
20 | 17 | ], |
21 | | - |
22 | | - // Version management strategies |
23 | | - rangeStrategy: 'bump', // Bump ranges to next version |
24 | | - bumpVersion: 'patch', // Use patch version for bumping |
25 | | - |
26 | | - // Enable dependency dashboard for overview |
| 18 | + rangeStrategy: 'bump', |
| 19 | + bumpVersion: 'patch', |
27 | 20 | dependencyDashboard: true, |
28 | | - |
29 | | - // Rate limiting to avoid overwhelming CI |
30 | | - prConcurrentLimit: 10, // Max 10 concurrent PRs |
31 | | - prHourlyLimit: 0, // No hourly limit |
32 | | - |
33 | | - // Rebase strategy |
| 21 | + prConcurrentLimit: 10, |
| 22 | + prHourlyLimit: 0, |
34 | 23 | rebaseWhen: 'auto', |
35 | | - |
36 | | - // Schedule for when to run updates |
37 | 24 | schedule: [ |
38 | 25 | 'after 8am and before 5pm on monday', |
39 | 26 | ], |
40 | | - |
41 | | - // Schedule for when to automerge |
42 | 27 | automergeSchedule: [ |
43 | 28 | 'after 8am and before 5pm on monday', |
44 | 29 | ], |
45 | | - |
46 | | - // Allow updates outside of schedule |
47 | 30 | updateNotScheduled: false, |
48 | | - |
49 | | - // Give everything some time to bake |
50 | 31 | minimumReleaseAge: '3 days', |
51 | | - |
52 | | - // Automerge via PR (not branch) |
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 | | - // Package-specific rules |
72 | 43 | packageRules: [ |
73 | 44 | { |
74 | | - // Special handling for @stanlemon packages (my own packages) |
75 | 45 | groupName: 'my own packages', |
76 | | - minimumReleaseAge: null, // No waiting period for my own packages |
| 46 | + minimumReleaseAge: null, |
77 | 47 | matchPackageNames: [ |
78 | 48 | '/^@stanlemon/', |
79 | 49 | ], |
|
82 | 52 | 'minor', |
83 | 53 | 'patch', |
84 | 54 | ], |
85 | | - automergeType: 'branch', // Use branch automerge for faster deployment |
| 55 | + automergeType: 'branch', |
86 | 56 | automerge: true, |
87 | 57 | }, |
88 | 58 | { |
89 | | - // Disable updating nodejs package peer dependencies |
90 | 59 | matchDepTypes: [ |
91 | | - 'peerDependencies' |
| 60 | + 'peerDependencies', |
92 | 61 | ], |
93 | | - enabled: false |
| 62 | + enabled: false, |
94 | 63 | }, |
95 | 64 | { |
96 | | - // Group Node.js updates together |
97 | 65 | groupName: 'nodejs updates', |
98 | 66 | matchPackageNames: [ |
99 | 67 | 'node', |
|
112 | 80 | ], |
113 | 81 | }, |
114 | 82 | { |
115 | | - // Override datasource for node package in npm to use node-version |
116 | 83 | matchPackageNames: [ |
117 | 84 | 'node', |
118 | 85 | ], |
|
123 | 90 | overridePackageName: 'node', |
124 | 91 | }, |
125 | 92 | { |
126 | | - // Override datasource for node package in nvm to use node-version |
127 | 93 | matchPackageNames: [ |
128 | 94 | 'node', |
129 | 95 | ], |
|
134 | 100 | overridePackageName: 'node', |
135 | 101 | }, |
136 | 102 | { |
137 | | - // Override datasource for @types/node to use node-version |
138 | 103 | matchPackageNames: [ |
139 | 104 | '@types/node', |
140 | 105 | ], |
|
145 | 110 | overridePackageName: 'node', |
146 | 111 | }, |
147 | 112 | { |
148 | | - // Override datasource for node package in docker to use node-version |
149 | 113 | matchPackageNames: [ |
150 | 114 | 'node', |
151 | 115 | ], |
|
156 | 120 | overridePackageName: 'node', |
157 | 121 | }, |
158 | 122 | { |
159 | | - // Special handling for Node.js major version updates |
160 | 123 | groupName: 'node majors (LTS gate)', |
161 | 124 | matchDatasources: [ |
162 | | - 'node-version' |
| 125 | + 'node-version', |
163 | 126 | ], |
164 | 127 | matchPackageNames: [ |
165 | 128 | 'node', |
166 | 129 | '@types/node', |
167 | 130 | ], |
168 | 131 | matchUpdateTypes: [ |
169 | | - 'major' |
| 132 | + 'major', |
170 | 133 | ], |
171 | | - minimumReleaseAge: '7 months', // Wait longer for major Node.js releases |
172 | | - internalChecksFilter: 'strict', // Strict internal checks for major updates |
173 | | - automerge: false, // Don't automerge major Node.js updates |
| 134 | + minimumReleaseAge: '7 months', |
| 135 | + internalChecksFilter: 'strict', |
| 136 | + automerge: false, |
174 | 137 | }, |
175 | 138 | { |
176 | | - // Catch-all rule for npm non-major updates |
177 | 139 | groupName: 'npm non-major (catch-all)', |
178 | 140 | groupSlug: 'npm-all-non-major', |
179 | 141 | matchManagers: [ |
180 | | - 'npm' |
| 142 | + 'npm', |
181 | 143 | ], |
182 | 144 | matchUpdateTypes: [ |
183 | 145 | 'minor', |
184 | 146 | 'patch', |
185 | 147 | ], |
186 | | - // Exclude my own packages (handled separately) |
187 | | - excludePackageNames: ['/^@stanlemon\\//'] |
188 | | - } |
| 148 | + matchPackageNames: [ |
| 149 | + '!/^@stanlemon\\//', |
| 150 | + ], |
| 151 | + }, |
189 | 152 | ], |
190 | 153 | } |
0 commit comments