-
Notifications
You must be signed in to change notification settings - Fork 3
/
renovate.json5
146 lines (134 loc) · 3.23 KB
/
renovate.json5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
{
// Validate against Renovate JSON schema
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
// Base configuration presets
extends: [
'config:recommended', // Core preset
':configMigration', // Migrate renovate configuration when necessary
'docker:pinDigests', // Pin Docker digests,
'helpers:pinGitHubActionDigests',
],
// Set timezone to Indianapolis
timezone: 'America/Indiana/Indianapolis',
// Version management strategies
rangeStrategy: 'bump', // Bump ranges to next version
bumpVersion: 'patch', // Use patch version for bumping
// Enable dependency dashboard for overview
dependencyDashboard: true,
// Limit concurrent PRs to avoid overwhelming CI
prConcurrentLimit: 10,
// Rebase strategy
rebaseWhen: 'auto',
// Default schedule for when to run updates
schedule: [
'after 8am and before 8pm on saturday',
],
// Give everything some time to bake
minimumReleaseAge: '3 days',
// Automerge on by default via a branch
automerge: true,
automergeType: 'pr',
// Security update configuration
vulnerabilityAlerts: {
enabled: true,
labels: [
'security',
],
schedule: 'at any time', // Process security updates immediately
automergeType: 'branch',
automerge: true,
},
// Disable lock file maintenance
lockFileMaintenance: {
// These updates are hard to reproduce locally and seem to consistently have issues merging
enabled: false,
},
// Package update rules
packageRules: [
{
// Group all non-major dependencies
groupName: 'all non-major dependencies',
groupSlug: 'all-minor-patch',
matchPackageNames: [
'*',
],
'matchUpdateTypes': [
'minor',
'patch',
],
},
{
// Group all eslint related packages
groupName: 'eslint',
matchPackageNames: [
'/^eslint/',
'/^@eslint/',
'typescript-eslint',
'/^@types/eslint/',
],
'matchUpdateTypes': [
'major',
'minor',
'patch',
],
},
{
// Group all react related packages
'groupName': 'react',
'matchPackageNames': [
'react',
'react-dom',
'react-refresh',
'@types/react',
'@types/react-dom',
],
'matchUpdateTypes': [
'major',
'minor',
'patch',
],
},
{
// Special handling for @stanlemon packages
groupName: 'my own packages',
minimumReleaseAge: null, // No waiting period
matchPackageNames: [
'/^@stanlemon/',
],
'matchUpdateTypes': [
'major',
'minor',
'patch',
],
automergeType: 'branch',
},
{
// Disable updating nodejs package peer dependencies
matchDepTypes: [
'peerDependencies'
],
enabled: false
},
{
// Node.js updates
groupName: 'nodejs updates',
matchPackageNames: [
'node',
'@types/node',
],
'matchUpdateTypes': [
'major',
'minor',
'patch',
],
matchDatasources: [
'docker',
'node-version',
'npm',
'nvm',
],
minimumReleaseAge: '9 months',
automerge: false,
},
],
}