-
Notifications
You must be signed in to change notification settings - Fork 0
/
base.json5
96 lines (87 loc) · 3.42 KB
/
base.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
// Shared code between the expected entrypoints (lib and/or app)
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
extends: [ "config:base", ":semanticCommitsDisabled" ],
prConcurrentLimit: 5,
platformAutomerge: true,
automergeType: "branch", // Means no PR created by default if we're automerging
labels: ["dependencies"],
prBodyDefinitions: {
Package: "{{{depNameLinked}}}",
},
timezone: "America/New_York",
schedule: ["after 9pm and before 5am every weekday", "every weekend"],
ignoreDeps: [
"ruby", // Manually control new ruby version rollout
"node", // Manually control new node version rollout
],
hostRules: [
// Enables fetching our private teamshares-rails gem
{
"matchHost": "github.com/teamshares",
"hostType": "rubygems",
"token": "{{ secrets.GITHUB_COM_TOKEN }}"
},
],
packageRules: [
// --- Labels ---
{ matchManagers: ["bundler"], addLabels: ["ruby"] },
{ matchManagers: ["npm"], addLabels: ["js"] },
{ matchManagers: ["github-actions"], addLabels: ["github"] },
{ matchUpdateTypes: ["major"], addLabels: ["update:major"] },
// --- Grouping ---
{
matchPackageNames: ["flipper", "flipper-active_record", "flipper-ui"],
groupName: "flipper",
},
{
packagePatterns: ["^aws-sdk-"],
groupName: "AWS SDK"
},
// --- Auto-Merges ---
{ // Automatically group and merge patch-level updates (for packages w/ version larger than 0) when CI passes
matchUpdateTypes: ["patch"],
matchCurrentVersion: "!/^0/",
groupName: "all patch-level dependencies",
groupSlug: "all-patches",
automerge: true
},
{
matchDepTypes: ["devDependencies"],
matchPackagePatterns: ["eslint", "prettier", "rubocop", "stylelint", "stylelint-config-sass-guidelines", "husky", "is-ci", "lint-staged"],
groupName: "linters",
matchUpdateTypes: ["minor"],
automerge: true
},
{
matchDepTypes: ["devDependencies"],
matchPackagePatterns: ["jest", "jest-esbuild", "jest-environment-jsdom", "jsdom"],
groupName: "jest-ecosystem",
matchUpdateTypes: ["minor"],
automerge: true
},
{ // Specific dependencies that have historically followed semver and feel safe to auto-merge at minor
matchPackageNames: [
"view_component", "bootsnap", "paper_trail", "annotate", "money-rails", "faraday",
"awesome_print", "table_print", "analytics-ruby", "honeybadger", "webmock", "pgsync",
"aasm", "newrelic_rpm", "rspec-rails", "cypress-rails", "slack-ruby-client", "twilio-ruby", "webmock",
"puppeteer-ruby", "faker", "puma", "jsbundling-rails", "cssbundling-rails", "faker", "simplecov", "listen",
// These are dev dependencies of every Rails app
"concurrently", "cypress", "cypress-file-upload", "postcss", "postcss-cli",
],
matchUpdateTypes: ["minor"],
automerge: true,
},
{ // Specific dependency groups that have historically followed semver and feel safe to auto-merge at minor
matchPackagePrefixes: ["@hotwired", "honeybadger", "@honeybadger-io", "pry-", "twilio", "@testing-library"],
matchUpdateTypes: ["minor"],
automerge: true,
},
// --- Exclusions ---
{ // Major rails upgrades will require manual work+scheduling
matchPackagePatterns: ["rails"],
matchUpdateTypes: ["major"],
enabled: false
}
]
}