├── .editorconfig
├── .eslintrc.js
├── .gitattributes
├── .github
└── workflows
│ └── test.yml
├── .gitignore
├── .prettierignore
├── README.md
├── build.js
├── package.json
├── presets.json
├── renovate.json
├── src
├── config.js
├── default.js
├── docker.js
├── group.js
├── helpers.js
├── monorepo.js
├── packages.js
├── preview.js
└── schedule.js
├── validate.js
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [Makefile]
13 | indent_style = tab
14 |
15 | [*.{yaml,yml,conf}]
16 | indent_size = 2
17 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | node: true,
4 | },
5 | extends: ['airbnb-base', 'prettier'],
6 | plugins: ['import', 'promise', 'prettier', 'json'],
7 | rules: {
8 | 'no-console': 0,
9 | 'import/no-extraneous-dependencies': 0,
10 | 'no-use-before-define': 0,
11 | 'no-restricted-syntax': 0,
12 | 'no-await-in-loop': 0,
13 | 'prettier/prettier': ['error', { trailingComma: 'es5', singleQuote: true }],
14 | 'promise/always-return': 'error',
15 | 'promise/no-return-wrap': 'error',
16 | 'promise/param-names': 'error',
17 | 'promise/catch-or-return': 'error',
18 | 'promise/no-native': 'off',
19 | 'promise/no-nesting': 'warn',
20 | 'promise/no-promise-in-callback': 'warn',
21 | 'promise/no-callback-in-promise': 'warn',
22 | 'promise/avoid-new': 'warn',
23 | },
24 | };
25 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.js text eol=lf
3 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test CI
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 |
8 | pull_request:
9 |
10 | env:
11 | CI: true
12 |
13 | jobs:
14 | test:
15 | name: test
16 | runs-on: ${{ matrix.os }}
17 |
18 | strategy:
19 | max-parallel: 4
20 | matrix:
21 | os: [ubuntu-latest]
22 | node-version: [12.x]
23 |
24 | steps:
25 | - name: Set up Node.js ${{ matrix.node-version }}
26 | uses: actions/setup-node@v1
27 | with:
28 | node-version: ${{ matrix.node-version }}
29 |
30 | - name: Init platform
31 | id: init
32 | shell: bash
33 | run: |
34 | echo "::set-output name=yarn_cache::$(yarn cache dir)"
35 | node --version
36 | yarn --version
37 |
38 | - uses: actions/checkout@v2
39 | with:
40 | fetch-depth: 1
41 |
42 | - name: Cache Yarn packages
43 | uses: actions/cache@v1
44 | with:
45 | path: ${{ steps.init.outputs.yarn_cache }}
46 | key: ${{ runner.os }}-yarn_cache-${{ hashFiles('**/yarn.lock') }}
47 | restore-keys: |
48 | ${{ runner.os }}-yarn_cache-
49 |
50 | - name: Cache node_modules
51 | uses: actions/cache@v1
52 | with:
53 | path: node_modules
54 | key: ${{ runner.os }}-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
55 | restore-keys: |
56 | ${{ runner.os }}-${{ matrix.node-version }}-yarn-
57 |
58 | - name: Installing dependencies
59 | shell: bash
60 | run: |
61 | yarn install --frozen-lockfile --link-duplicates
62 |
63 | - name: Build
64 | run: yarn build
65 |
66 | - name: Lint
67 | run: yarn lint
68 |
69 | - name: Prettier
70 | run: yarn prettier
71 |
72 | - name: Validate
73 | run: yarn validate
74 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | package.json
2 | presets.json
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Renovate Presets
2 |
3 | ## Deprecation Warning
4 |
5 | This repository is no longer used to host/publish Renovate's built-in presets. They are instead included within the main Renovate repository: https://github.com/renovatebot/renovate/tree/master/lib/config/presets/internal
6 |
7 | ## Old Content
8 |
9 | This repository hosts all of Renovate's "built-in" presets. Renovate pulls from this repo's `master` branch at runtime whenever a config references presets with any of the following prefixes:
10 |
11 | - None: e.g. `:preserveSemverRanges`
12 | - Default: e.g. `default:preserveSemverRanges` (None is an alias to Default)
13 | - Docker: e.g. `docker:disable`
14 | - Group: e.g. `group:monorepos`
15 | - Helpers: e.g. `helpers:followTypescriptNext`
16 | - Monorepo: e.g. `monorepo:angular`
17 | - Packages: e.g. `packages:apollographql`
18 | - Preview: e.g. `preview:buildkite`
19 | - Schedule: e.g. `schedule:daily`
20 |
21 | ## Contributing
22 |
23 | 1. Fork and clone the repository
24 | 2. Edit one or more files in `src/`. Be sure to include the `description` field if relevant.
25 | 3. Run `yarn build` then `yarn test`
26 | 4. Commit your changes including `presets.json`, push to GitHub, and raise a PR
27 |
28 | Once PRs are committed to `master`, they are effectively "live" - there is no publish step.
29 |
30 | ## Examples
31 |
32 | If you have identified a "monorepo" that's missing, add it to `src/monorepo.js`. A monorepo definition as well as a group will be automatically added by `yarn build`.
33 |
34 | If there is some other non-monorepo group of packages you think should be updated together, then you can contribute them directly to `src/group.js`.
35 |
36 | If you think there is any config you repeat frequently that others could benefit from, add it to `src/default.js`.
37 |
--------------------------------------------------------------------------------
/build.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra');
2 | const is = require('@sindresorhus/is');
3 | const prettyJson = require('json-stringify-pretty-compact');
4 |
5 | /* eslint-disable global-require */
6 | const input = {
7 | config: require('./src/config'),
8 | default: require('./src/default'),
9 | docker: require('./src/docker'),
10 | group: require('./src/group'),
11 | helpers: require('./src/helpers'),
12 | monorepo: require('./src/monorepo'),
13 | packages: require('./src/packages'),
14 | preview: require('./src/preview'),
15 | schedule: require('./src/schedule'),
16 | };
17 |
18 | function sort(inObj) {
19 | const outObj = {};
20 | for (const key of Object.keys(inObj).sort()) {
21 | const val = inObj[key];
22 | outObj[key] = is.object(val) && !is.array(val) ? sort(val) : val;
23 | }
24 | return outObj;
25 | }
26 |
27 | const output = sort(input);
28 | fs.writeFileSync('presets.json', prettyJson(output));
29 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "presets",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "build": "node build",
7 | "lint": "eslint . --ext .json,.js",
8 | "lint-fix": "yarn lint --fix",
9 | "prettier": "prettier --list-different \"**/*.{ts,js,json,md}\"",
10 | "prettier-fix": "prettier --write \"**/*.{ts,js,json,md}\"",
11 | "test": "yarn prettier && yarn lint && yarn validate",
12 | "validate": "node validate"
13 | },
14 | "prettier": {
15 | "singleQuote": true,
16 | "trailingComma": "es5"
17 | },
18 | "devDependencies": {
19 | "@sindresorhus/is": "2.1.1",
20 | "eslint": "6.8.0",
21 | "eslint-config-airbnb-base": "14.1.0",
22 | "eslint-config-prettier": "6.11.0",
23 | "eslint-plugin-import": "2.20.2",
24 | "eslint-plugin-json": "2.1.1",
25 | "eslint-plugin-prettier": "3.1.3",
26 | "eslint-plugin-promise": "4.2.1",
27 | "fs-extra": "9.0.0",
28 | "gh-got": "9.0.0",
29 | "json-stringify-pretty-compact": "2.0.0",
30 | "prettier": "2.0.5",
31 | "renovate": "19.221.1"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/presets.json:
--------------------------------------------------------------------------------
1 | {
2 | "config": {
3 | "base": {
4 | "description": "Default base configuration for all languages",
5 | "extends": [
6 | ":separateMajorReleases",
7 | ":combinePatchMinorReleases",
8 | ":ignoreUnstable",
9 | ":prImmediately",
10 | ":semanticPrefixFixDepsChoreOthers",
11 | ":updateNotScheduled",
12 | ":automergeDisabled",
13 | ":ignoreModulesAndTests",
14 | ":autodetectPinVersions",
15 | ":prHourlyLimit2",
16 | ":prConcurrentLimit20",
17 | "group:monorepos",
18 | "group:recommended",
19 | "helpers:disableTypesNodeMajor"
20 | ]
21 | },
22 | "base-js": {
23 | "description": "Base configuration for Javascript (deprecated)",
24 | "extends": ["config:base"]
25 | },
26 | "js-app": {
27 | "description": "Default configuration for webapps",
28 | "extends": ["config:base", ":pinAllExceptPeerDependencies"]
29 | },
30 | "js-lib": {
31 | "description": "Default configuration for libraries",
32 | "extends": ["config:base", ":pinOnlyDevDependencies"]
33 | },
34 | "semverAllMonthly": {
35 | "description": "Preserve semver ranges and update everything together once a month",
36 | "extends": [
37 | ":preserveSemverRanges",
38 | "group:all",
39 | "schedule:monthly",
40 | ":maintainLockFilesMonthly"
41 | ],
42 | "lockFileMaintenance": {
43 | "commitMessageAction": "Update",
44 | "extends": ["group:all"]
45 | },
46 | "separateMajorMinor": false
47 | }
48 | },
49 | "default": {
50 | "app": {
51 | "description": "deprecated alias for config:js-app",
52 | "extends": ["config:js-app"]
53 | },
54 | "assignAndReview": {
55 | "description": "Set {{arg0}}
as assignee and reviewer of PRs",
56 | "extends": [":assignee({{arg0}})", ":reviewer({{arg0}})"]
57 | },
58 | "assignee": {
59 | "assignees": ["{{arg0}}"],
60 | "description": "Assign PRs to {{arg0}}
"
61 | },
62 | "autodetectPinVersions": {
63 | "description": "Autodetect whether to pin dependencies or maintain ranges",
64 | "rangeStrategy": "auto"
65 | },
66 | "automergeAll": {
67 | "automerge": true,
68 | "description": "Automerge all upgrades (including major) if they pass tests"
69 | },
70 | "automergeBranch": {
71 | "automergeType": "branch",
72 | "description": "If automerging, push the new commit directly to base branch (no PR)"
73 | },
74 | "automergeBranchMergeCommit": {
75 | "automergeType": "branch-merge-commit",
76 | "description": "If automerging, perform a merge-commit on branch (no PR) - deprecated, use :automergeBranch instead"
77 | },
78 | "automergeBranchPush": {
79 | "automergeType": "branch-push",
80 | "description": "If automerging, push the new commit directly to base branch (no PR) - deprecated, use :automergeBranch instead"
81 | },
82 | "automergeDigest": {
83 | "description": "Automerge digest upgrades if they pass tests",
84 | "digest": {"automerge": true}
85 | },
86 | "automergeDisabled": {
87 | "automerge": false,
88 | "description": "Disable automerging feature - wait for humans to merge all PRs"
89 | },
90 | "automergeLinters": {
91 | "description": "Update lint packages automatically if tests pass",
92 | "packageRules": [{"extends": ["packages:linters"], "automerge": true}]
93 | },
94 | "automergeMajor": {
95 | "automerge": true,
96 | "description": "Automerge all upgrades (including major) if they pass tests"
97 | },
98 | "automergeMinor": {
99 | "description": "Automerge patch and minor upgrades if they pass tests",
100 | "lockFileMaintenance": {"automerge": true},
101 | "minor": {"automerge": true},
102 | "patch": {"automerge": true},
103 | "pin": {"automerge": true}
104 | },
105 | "automergePatch": {
106 | "description": "Automerge patch upgrades if they pass tests",
107 | "lockFileMaintenance": {"automerge": true},
108 | "patch": {"automerge": true},
109 | "pin": {"automerge": true},
110 | "separateMinorPatch": true
111 | },
112 | "automergePr": {
113 | "automergeType": "pr",
114 | "description": "Raise a PR first before any automerging"
115 | },
116 | "automergeRequireAllStatusChecks": {
117 | "description": "Require all status checks to pass before any automerging",
118 | "requiredStatusChecks": []
119 | },
120 | "automergeTesters": {
121 | "description": "Update testing packages automatically if tests pass",
122 | "packageRules": [{"extends": ["packages:test"], "automerge": true}]
123 | },
124 | "automergeTypes": {
125 | "description": "Update @types/* packages automatically if tests pass",
126 | "packageRules": [{"packagePatterns": ["^@types/"], "automerge": true}]
127 | },
128 | "base": {
129 | "description": "deprecated alias for config:base",
130 | "extends": ["config:base"]
131 | },
132 | "combinePatchMinorReleases": {
133 | "description": "Do not separate patch and minor upgrades into separate PRs for the same dependency",
134 | "separateMinorPatch": false
135 | },
136 | "description": "This presets file is intended for simple and commonly used presets. This is a special preset file, because each element below can be accessed using the `:` prefix e.g `:enableRenovate`.",
137 | "disableDevDependencies": {
138 | "description": "Do not renovate devDependencies
versions/ranges",
139 | "packageRules": [{"depTypeList": ["devDependencies"], "enabled": false}]
140 | },
141 | "disableDigestUpdates": {
142 | "description": "Disable digest and git hash updates",
143 | "digest": {"enabled": false}
144 | },
145 | "disableLockFiles": {
146 | "description": "Disable lock file updates",
147 | "updateLockFiles": false
148 | },
149 | "disableMajorUpdates": {
150 | "description": "Disables major updates",
151 | "major": {"enabled": false}
152 | },
153 | "disablePeerDependencies": {
154 | "description": "Do not renovate peerDependencies
versions/ranges",
155 | "packageRules": [{"depTypeList": ["peerDependencies"], "enabled": false}]
156 | },
157 | "disableRateLimiting": {
158 | "description": "Remove hourly and concurrent rate limits",
159 | "prConcurrentLimit": 0,
160 | "prHourlyLimit": 0
161 | },
162 | "disableRenovate": {"description": "Disable renovate", "enabled": false},
163 | "disableVulnerabilityAlerts": {
164 | "description": "Disable vulnerability alerts completely",
165 | "vulnerabilityAlerts": {"enabled": false}
166 | },
167 | "doNotPinPackage": {
168 | "description": "Disable version pinning for {{arg0}}
",
169 | "packageRules": [
170 | {"packageNames": ["{{arg0}}"], "rangeStrategy": "replace"}
171 | ]
172 | },
173 | "docker": {
174 | "description": "Keep Dockerfile FROM sources updated",
175 | "docker": {"enabled": true}
176 | },
177 | "enableRenovate": {"description": "Enable renovate", "enabled": true},
178 | "enableVulnerabilityAlerts": {
179 | "description": "Raise PR when vulnerability alerts are detected",
180 | "vulnerabilityAlerts": {"enabled": true}
181 | },
182 | "enableVulnerabilityAlertsWithLabel": {
183 | "description": "Raise PR when vulnerability alerts are detected with label {{arg0}}
",
184 | "vulnerabilityAlerts": {"enabled": true, "labels": ["{{arg0}}"]}
185 | },
186 | "followTag": {
187 | "description": "For package {{arg0}}
, strictly follow release tag {{arg1}}
",
188 | "packageRules": [{"packageNames": ["{{arg0}}"], "followTag": "{{arg1}}"}]
189 | },
190 | "gitSignOff": {
191 | "commitBody": "Signed-off-by: {{{gitAuthor}}}",
192 | "description": "Append git Signed-off-by signature to git commits."
193 | },
194 | "githubComToken": {
195 | "description": "Use provided token for github.com lookups",
196 | "hostRules": [
197 | {"domainName": "github.com", "encrypted": {"token": "{{arg0}}"}}
198 | ]
199 | },
200 | "gomod": {
201 | "description": "Enable Go modules support",
202 | "gomod": {"enabled": true}
203 | },
204 | "group": {
205 | "description": "Group {{arg1}} packages into same branch/PR",
206 | "packageRules": [{"extends": ["{{arg0}}"], "groupName": "{{arg1}}"}]
207 | },
208 | "ignoreModulesAndTests": {
209 | "description": "Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories",
210 | "ignorePaths": [
211 | "**/node_modules/**",
212 | "**/bower_components/**",
213 | "**/vendor/**",
214 | "**/examples/**",
215 | "**/__tests__/**",
216 | "**/test/**",
217 | "**/tests/**",
218 | "**/__fixtures__/**"
219 | ]
220 | },
221 | "ignoreUnstable": {
222 | "description": "Upgrade to unstable versions only if the existing version is unstable",
223 | "ignoreUnstable": true
224 | },
225 | "includeNodeModules": {
226 | "description": "Include package.json
files found within node_modules
folders or bower_components
.",
227 | "ignorePaths": []
228 | },
229 | "label": {
230 | "description": "Apply label {{arg0}}
to PRs",
231 | "labels": ["{{arg0}}"]
232 | },
233 | "labels": {
234 | "description": "Apply labels {{arg0}}
and {{arg1}}
to PRs",
235 | "labels": ["{{arg0}}", "{{arg1}}"]
236 | },
237 | "library": {
238 | "description": "deprecated alias for config:js-lib",
239 | "extends": ["config:js-lib"]
240 | },
241 | "maintainLockFilesDisabled": {
242 | "description": "Update existing lock files only when package.json
is modified",
243 | "lockFileMaintenance": {"enabled": false}
244 | },
245 | "maintainLockFilesMonthly": {
246 | "description": "Run lock file maintenance (updates) on the first day of each month",
247 | "lockFileMaintenance": {"enabled": true, "extends": "schedule:monthly"}
248 | },
249 | "maintainLockFilesWeekly": {
250 | "description": "Run lock file maintenance (updates) early Monday mornings",
251 | "lockFileMaintenance": {"enabled": true, "extends": "schedule:weekly"}
252 | },
253 | "masterIssue": {
254 | "description": "Enable Renovate master issue creation",
255 | "masterIssue": true
256 | },
257 | "masterIssueApproval": {
258 | "description": "Enable Renovate master issue approval workflow",
259 | "masterIssueApproval": true
260 | },
261 | "meteor": {
262 | "description": "Keep Meteor Npm.depends packages updated",
263 | "meteor": {"enabled": true}
264 | },
265 | "noUnscheduledUpdates": {
266 | "description": "Make no updates to branches when not scheduled",
267 | "updateNotScheduled": false
268 | },
269 | "npm": {
270 | "description": "Keep package.json npm dependencies updated",
271 | "npm": {"enabled": true}
272 | },
273 | "onlyNpm": {
274 | "description": "Renovate only npm dependencies",
275 | "docker": {"enabled": false},
276 | "meteor": {"enabled": false}
277 | },
278 | "pathSemanticCommitType": {
279 | "description": "Use semanticCommitType {{arg0}} for all package files matching path {{arg1}}",
280 | "packageRules": [
281 | {"paths": ["{{arg0}}"], "semanticCommitType": "{{arg1}}"}
282 | ]
283 | },
284 | "pinAllExceptPeerDependencies": {
285 | "description": "Pin dependency versions for all except peerDependencies
",
286 | "packageRules": [
287 | {"packagePatterns": ["*"], "rangeStrategy": "pin"},
288 | {
289 | "depTypeList": ["engines", "peerDependencies"],
290 | "rangeStrategy": "auto"
291 | }
292 | ]
293 | },
294 | "pinDependencies": {
295 | "description": "Pin dependency versions for dependencies
",
296 | "packageRules": [
297 | {"depTypeList": ["dependencies"], "rangeStrategy": "pin"}
298 | ]
299 | },
300 | "pinDevDependencies": {
301 | "description": "Pin dependency versions for devDependencies
",
302 | "packageRules": [
303 | {"depTypeList": ["devDependencies"], "rangeStrategy": "pin"}
304 | ]
305 | },
306 | "pinDigestsDisabled": {
307 | "description": "Disable pinning of docker dependency digests",
308 | "pinDigests": false
309 | },
310 | "pinOnlyDevDependencies": {
311 | "description": "Pin dependency versions for devDependencies
and retain semver ranges for others",
312 | "packageRules": [
313 | {"packagePatterns": ["*"], "rangeStrategy": "replace"},
314 | {"depTypeList": ["devDependencies"], "rangeStrategy": "pin"},
315 | {"depTypeList": ["peerDependencies"], "rangeStrategy": "widen"}
316 | ]
317 | },
318 | "pinSkipCi": {
319 | "description": "Add [skip ci] to commit message body whenever pinning",
320 | "pin": {"commitBody": "[skip ci]"}
321 | },
322 | "pinVersions": {
323 | "description": "Use version pinning (maintain a single version only and not semver ranges)",
324 | "rangeStrategy": "pin"
325 | },
326 | "prConcurrentLimit10": {
327 | "description": "Limit to maximum 10 open PRs",
328 | "prConcurrentLimit": 10
329 | },
330 | "prConcurrentLimit20": {
331 | "description": "Limit to maximum 20 open PRs at any time",
332 | "prConcurrentLimit": 20
333 | },
334 | "prConcurrentLimitNone": {
335 | "description": "Remove limit for open PRs",
336 | "prConcurrentLimit": 0
337 | },
338 | "prHourlyLimit1": {
339 | "description": "Rate limit PR creation to a maximum of one per hour",
340 | "prHourlyLimit": 1
341 | },
342 | "prHourlyLimit2": {
343 | "description": "Rate limit PR creation to a maximum of two per hour",
344 | "prHourlyLimit": 2
345 | },
346 | "prHourlyLimit4": {
347 | "description": "Rate limit PR creation to a maximum of four per hour",
348 | "prHourlyLimit": 4
349 | },
350 | "prHourlyLimitNone": {
351 | "description": "Removes rate limit for PR creation per hour",
352 | "prHourlyLimit": 0
353 | },
354 | "prImmediately": {
355 | "description": "Raise PRs immediately (after branch is created)",
356 | "prCreation": "immediate"
357 | },
358 | "prNotPending": {
359 | "description": "Wait until branch tests have passed or failed before creating the PR",
360 | "prCreation": "not-pending"
361 | },
362 | "preserveSemverRanges": {
363 | "description": "Preserve (but continue to upgrade) any existing semver ranges",
364 | "rangeStrategy": "replace"
365 | },
366 | "rebaseStalePrs": {
367 | "description": "Rebase existing PRs any time the base branch has been updated",
368 | "rebaseWhen": "behind-base-branch"
369 | },
370 | "renovatePrefix": {
371 | "branchPrefix": "renovate/",
372 | "description": "Use renovate/
as prefix for all branch names"
373 | },
374 | "respectLatest": {
375 | "description": "Upgrade versions up to the \"latest\" tag in npm registry",
376 | "respectLatest": true
377 | },
378 | "reviewer": {
379 | "description": "Add {{arg0}}
as reviewer for PRs",
380 | "reviewers": ["{{arg0}}"]
381 | },
382 | "semanticCommitScope": {
383 | "description": "Use semantic commit scope {{arg0}}
for all commits and PR titles",
384 | "semanticCommitScope": "{{arg0}}"
385 | },
386 | "semanticCommitScopeDisabled": {
387 | "description": "Disable semantic commit scope for all commits and PR titles",
388 | "semanticCommitScope": null
389 | },
390 | "semanticCommitType": {
391 | "description": "Use {{arg0}}
as semantic commit type for commit messages and PR titles",
392 | "semanticCommitType": "{{arg0}}"
393 | },
394 | "semanticCommitTypeAll": {
395 | "description": "If semantic commits detected, use semantic commit type {{arg0}}
for all",
396 | "packageRules": [
397 | {"packagePatterns": ["*"], "semanticCommitType": "{{arg0}}"}
398 | ]
399 | },
400 | "semanticCommits": {
401 | "description": "Use semantic prefixes for commit messages and PR titles",
402 | "semanticCommits": true
403 | },
404 | "semanticCommitsDisabled": {
405 | "description": "Disable semantic prefixes for commit messages and PR titles",
406 | "semanticCommits": false
407 | },
408 | "semanticPrefixChore": {
409 | "description": "Use chore
as semantic commit type for commit messages and PR titles",
410 | "extends": [":semanticCommitType(chore)"]
411 | },
412 | "semanticPrefixFix": {
413 | "description": "Use fix
as semantic commit type for commit messages and PR titles",
414 | "extends": [":semanticCommitType(fix)"]
415 | },
416 | "semanticPrefixFixDepsChoreOthers": {
417 | "description": "If semantic commits detected, use semantic commit type fix
for dependencies and chore
for all others",
418 | "packageRules": [
419 | {"packagePatterns": ["*"], "semanticCommitType": "chore"},
420 | {"depTypeList": ["dependencies"], "semanticCommitType": "fix"}
421 | ]
422 | },
423 | "separateMajorReleases": {
424 | "description": "Separate major versions of dependencies into individual branches/PRs",
425 | "separateMajorMinor": true
426 | },
427 | "separateMultipleMajorReleases": {
428 | "description": "Separate each available major versions of dependencies into individual branches/PRs",
429 | "separateMajorMinor": true,
430 | "separateMultipleMajor": true
431 | },
432 | "separatePatchReleases": {
433 | "description": "Separate patch and minor releases of dependencies into separate PRs",
434 | "separateMinorPatch": true
435 | },
436 | "skipStatusChecks": {
437 | "description": "Skip status checks and automerge right away",
438 | "requiredStatusChecks": null
439 | },
440 | "timezone": {
441 | "description": "Evaluate schedules according to timezone {{arg0}}",
442 | "timezone": "{{arg0}}"
443 | },
444 | "unpublishSafe": {
445 | "description": "Set a status check to warn when upgrades < 24 hours old might get unpublished",
446 | "unpublishSafe": true
447 | },
448 | "unpublishSafeDisabled": {
449 | "description": "Create branches/PRs for dependency upgrades as soon as they're available",
450 | "unpublishSafe": false
451 | },
452 | "updateNotScheduled": {
453 | "description": "Keep existing branches updated even when not scheduled",
454 | "updateNotScheduled": true
455 | },
456 | "widenPeerDependencies": {
457 | "description": "Always widen peerDependencies semver ranges when updating, instead of replacing",
458 | "packageRules": [
459 | {"depTypeList": ["peerDependencies"], "rangeStrategy": "widen"}
460 | ]
461 | }
462 | },
463 | "docker": {
464 | "disable": {
465 | "circleci": {"enabled": false},
466 | "docker": {"enabled": false},
467 | "docker-compose": {"enabled": false}
468 | },
469 | "disableMajor": {"docker": {"major": {"enabled": false}}},
470 | "enableMajor": {"docker": {"major": {"enabled": true}}},
471 | "pinDigests": {
472 | "description": "Pin Docker digests",
473 | "docker": {"pinDigests": true}
474 | }
475 | },
476 | "group": {
477 | "SwashbuckleMonorepo": {
478 | "packageRules": [
479 | {
480 | "description": "Group packages from Swashbuckle monorepo together",
481 | "extends": "monorepo:Swashbuckle",
482 | "groupName": "Swashbuckle monorepo"
483 | }
484 | ]
485 | },
486 | "accountsMonorepo": {
487 | "packageRules": [
488 | {
489 | "description": "Group packages from accounts monorepo together",
490 | "extends": "monorepo:accounts",
491 | "groupName": "accounts monorepo"
492 | }
493 | ]
494 | },
495 | "ag-gridMonorepo": {
496 | "packageRules": [
497 | {
498 | "description": "Group packages from ag-grid monorepo together",
499 | "extends": "monorepo:ag-grid",
500 | "groupName": "ag-grid monorepo"
501 | }
502 | ]
503 | },
504 | "algolia-react-instantsearchMonorepo": {
505 | "packageRules": [
506 | {
507 | "description": "Group packages from algolia-react-instantsearch monorepo together",
508 | "extends": "monorepo:algolia-react-instantsearch",
509 | "groupName": "algolia-react-instantsearch monorepo"
510 | }
511 | ]
512 | },
513 | "all": {
514 | "description": "Group all updates together",
515 | "groupName": "all dependencies",
516 | "groupSlug": "all",
517 | "lockFileMaintenance": {"enabled": false},
518 | "packageRules": [
519 | {
520 | "packagePatterns": ["*"],
521 | "groupName": "all dependencies",
522 | "groupSlug": "all"
523 | }
524 | ],
525 | "separateMajorMinor": false
526 | },
527 | "allApollographql": {
528 | "description": "Group all packages published by Apollo GraphQL together",
529 | "packageRules": [
530 | {
531 | "extends": "packages:apollographql",
532 | "groupName": "Apollo GraphQL packages"
533 | }
534 | ]
535 | },
536 | "allNonMajor": {
537 | "description": "Group all minor and patch updates together",
538 | "packageRules": [
539 | {
540 | "packagePatterns": ["*"],
541 | "minor": {
542 | "groupName": "all non-major dependencies",
543 | "groupSlug": "all-minor-patch"
544 | }
545 | }
546 | ]
547 | },
548 | "angular1Monorepo": {
549 | "packageRules": [
550 | {
551 | "description": "Group packages from angular1 monorepo together",
552 | "extends": "monorepo:angular1",
553 | "groupName": "angular1 monorepo"
554 | }
555 | ]
556 | },
557 | "angularMonorepo": {
558 | "packageRules": [
559 | {
560 | "description": "Group packages from angular monorepo together",
561 | "extends": "monorepo:angular",
562 | "groupName": "angular monorepo"
563 | }
564 | ]
565 | },
566 | "angularcliMonorepo": {
567 | "packageRules": [
568 | {
569 | "description": "Group packages from angularcli monorepo together",
570 | "extends": "monorepo:angularcli",
571 | "groupName": "angularcli monorepo"
572 | }
573 | ]
574 | },
575 | "angularmaterialMonorepo": {
576 | "packageRules": [
577 | {
578 | "description": "Group packages from angularmaterial monorepo together",
579 | "extends": "monorepo:angularmaterial",
580 | "groupName": "angularmaterial monorepo"
581 | }
582 | ]
583 | },
584 | "apollo-serverMonorepo": {
585 | "packageRules": [
586 | {
587 | "description": "Group packages from apollo-server monorepo together",
588 | "extends": "monorepo:apollo-server",
589 | "groupName": "apollo-server monorepo"
590 | }
591 | ]
592 | },
593 | "apolloclientMonorepo": {
594 | "packageRules": [
595 | {
596 | "description": "Group packages from apolloclient monorepo together",
597 | "extends": "monorepo:apolloclient",
598 | "groupName": "apolloclient monorepo"
599 | }
600 | ]
601 | },
602 | "apollolinkMonorepo": {
603 | "packageRules": [
604 | {
605 | "description": "Group packages from apollolink monorepo together",
606 | "extends": "monorepo:apollolink",
607 | "groupName": "apollolink monorepo"
608 | }
609 | ]
610 | },
611 | "arcus background-jobsMonorepo": {
612 | "packageRules": [
613 | {
614 | "description": "Group packages from arcus background-jobs monorepo together",
615 | "extends": "monorepo:arcus background-jobs",
616 | "groupName": "arcus background-jobs monorepo"
617 | }
618 | ]
619 | },
620 | "arcus event-gridMonorepo": {
621 | "packageRules": [
622 | {
623 | "description": "Group packages from arcus event-grid monorepo together",
624 | "extends": "monorepo:arcus event-grid",
625 | "groupName": "arcus event-grid monorepo"
626 | }
627 | ]
628 | },
629 | "arcus messagingMonorepo": {
630 | "packageRules": [
631 | {
632 | "description": "Group packages from arcus messaging monorepo together",
633 | "extends": "monorepo:arcus messaging",
634 | "groupName": "arcus messaging monorepo"
635 | }
636 | ]
637 | },
638 | "arcus observabilityMonorepo": {
639 | "packageRules": [
640 | {
641 | "description": "Group packages from arcus observability monorepo together",
642 | "extends": "monorepo:arcus observability",
643 | "groupName": "arcus observability monorepo"
644 | }
645 | ]
646 | },
647 | "arcus securityMonorepo": {
648 | "packageRules": [
649 | {
650 | "description": "Group packages from arcus security monorepo together",
651 | "extends": "monorepo:arcus security",
652 | "groupName": "arcus security monorepo"
653 | }
654 | ]
655 | },
656 | "arcus webapiMonorepo": {
657 | "packageRules": [
658 | {
659 | "description": "Group packages from arcus webapi monorepo together",
660 | "extends": "monorepo:arcus webapi",
661 | "groupName": "arcus webapi monorepo"
662 | }
663 | ]
664 | },
665 | "aspnet AspNetWebStackMonorepo": {
666 | "packageRules": [
667 | {
668 | "description": "Group packages from aspnet AspNetWebStack monorepo together",
669 | "extends": "monorepo:aspnet AspNetWebStack",
670 | "groupName": "aspnet AspNetWebStack monorepo"
671 | }
672 | ]
673 | },
674 | "aspnet ExtensionsMonorepo": {
675 | "packageRules": [
676 | {
677 | "description": "Group packages from aspnet Extensions monorepo together",
678 | "extends": "monorepo:aspnet Extensions",
679 | "groupName": "aspnet Extensions monorepo"
680 | }
681 | ]
682 | },
683 | "aws-cdkMonorepo": {
684 | "packageRules": [
685 | {
686 | "description": "Group packages from aws-cdk monorepo together",
687 | "extends": "monorepo:aws-cdk",
688 | "groupName": "aws-cdk monorepo"
689 | }
690 | ]
691 | },
692 | "aws-java-sdkMonorepo": {
693 | "packageRules": [
694 | {
695 | "description": "Group packages from aws-java-sdk monorepo together",
696 | "extends": "monorepo:aws-java-sdk",
697 | "groupName": "aws-java-sdk monorepo"
698 | }
699 | ]
700 | },
701 | "awsappsyncMonorepo": {
702 | "packageRules": [
703 | {
704 | "description": "Group packages from awsappsync monorepo together",
705 | "extends": "monorepo:awsappsync",
706 | "groupName": "awsappsync monorepo"
707 | }
708 | ]
709 | },
710 | "azure azure-libraries-for-netMonorepo": {
711 | "packageRules": [
712 | {
713 | "description": "Group packages from azure azure-libraries-for-net monorepo together",
714 | "extends": "monorepo:azure azure-libraries-for-net",
715 | "groupName": "azure azure-libraries-for-net monorepo"
716 | }
717 | ]
718 | },
719 | "azure azure-sdk-for-netMonorepo": {
720 | "packageRules": [
721 | {
722 | "description": "Group packages from azure azure-sdk-for-net monorepo together",
723 | "extends": "monorepo:azure azure-sdk-for-net",
724 | "groupName": "azure azure-sdk-for-net monorepo"
725 | }
726 | ]
727 | },
728 | "azure azure-storage-netMonorepo": {
729 | "packageRules": [
730 | {
731 | "description": "Group packages from azure azure-storage-net monorepo together",
732 | "extends": "monorepo:azure azure-storage-net",
733 | "groupName": "azure azure-storage-net monorepo"
734 | }
735 | ]
736 | },
737 | "babel6Monorepo": {
738 | "packageRules": [
739 | {
740 | "description": "Group packages from babel6 monorepo together",
741 | "extends": "monorepo:babel6",
742 | "groupName": "babel6 monorepo"
743 | }
744 | ]
745 | },
746 | "babelMonorepo": {
747 | "packageRules": [
748 | {
749 | "description": "Group packages from babel monorepo together",
750 | "extends": "monorepo:babel",
751 | "groupName": "babel monorepo"
752 | }
753 | ]
754 | },
755 | "basetMonorepo": {
756 | "packageRules": [
757 | {
758 | "description": "Group packages from baset monorepo together",
759 | "extends": "monorepo:baset",
760 | "groupName": "baset monorepo"
761 | }
762 | ]
763 | },
764 | "braveMonorepo": {
765 | "packageRules": [
766 | {
767 | "description": "Group packages from brave monorepo together",
768 | "extends": "monorepo:brave",
769 | "groupName": "brave monorepo"
770 | }
771 | ]
772 | },
773 | "bugsnag-jsMonorepo": {
774 | "packageRules": [
775 | {
776 | "description": "Group packages from bugsnag-js monorepo together",
777 | "extends": "monorepo:bugsnag-js",
778 | "groupName": "bugsnag-js monorepo"
779 | }
780 | ]
781 | },
782 | "capacitorMonorepo": {
783 | "packageRules": [
784 | {
785 | "description": "Group packages from capacitor monorepo together",
786 | "extends": "monorepo:capacitor",
787 | "groupName": "capacitor monorepo"
788 | }
789 | ]
790 | },
791 | "clarityMonorepo": {
792 | "packageRules": [
793 | {
794 | "description": "Group packages from clarity monorepo together",
795 | "extends": "monorepo:clarity",
796 | "groupName": "clarity monorepo"
797 | }
798 | ]
799 | },
800 | "commitlintMonorepo": {
801 | "packageRules": [
802 | {
803 | "description": "Group packages from commitlint monorepo together",
804 | "extends": "monorepo:commitlint",
805 | "groupName": "commitlint monorepo"
806 | }
807 | ]
808 | },
809 | "definitelyTyped": {
810 | "description": "Group all @types packages together",
811 | "packageRules": [
812 | {"groupName": "definitelyTyped", "packagePatterns": ["^@types/"]}
813 | ]
814 | },
815 | "devextreme-reactiveMonorepo": {
816 | "packageRules": [
817 | {
818 | "description": "Group packages from devextreme-reactive monorepo together",
819 | "extends": "monorepo:devextreme-reactive",
820 | "groupName": "devextreme-reactive monorepo"
821 | }
822 | ]
823 | },
824 | "dotNetCore": {
825 | "description": ".NET Core Docker containers",
826 | "packageRules": [
827 | {
828 | "datasources": ["docker"],
829 | "packagePatterns": ["^mcr.microsoft.com/dotnet/core/"],
830 | "groupName": ".NET Core Docker containers"
831 | }
832 | ]
833 | },
834 | "dropwizardMonorepo": {
835 | "packageRules": [
836 | {
837 | "description": "Group packages from dropwizard monorepo together",
838 | "extends": "monorepo:dropwizard",
839 | "groupName": "dropwizard monorepo"
840 | }
841 | ]
842 | },
843 | "electron-forgeMonorepo": {
844 | "packageRules": [
845 | {
846 | "description": "Group packages from electron-forge monorepo together",
847 | "extends": "monorepo:electron-forge",
848 | "groupName": "electron-forge monorepo"
849 | }
850 | ]
851 | },
852 | "ember-decoratorsMonorepo": {
853 | "packageRules": [
854 | {
855 | "description": "Group packages from ember-decorators monorepo together",
856 | "extends": "monorepo:ember-decorators",
857 | "groupName": "ember-decorators monorepo"
858 | }
859 | ]
860 | },
861 | "emotionMonorepo": {
862 | "packageRules": [
863 | {
864 | "description": "Group packages from emotion monorepo together",
865 | "extends": "monorepo:emotion",
866 | "groupName": "emotion monorepo"
867 | }
868 | ]
869 | },
870 | "expoMonorepo": {
871 | "packageRules": [
872 | {
873 | "description": "Group packages from expo monorepo together",
874 | "extends": "monorepo:expo",
875 | "groupName": "expo monorepo"
876 | }
877 | ]
878 | },
879 | "fimbullinterMonorepo": {
880 | "packageRules": [
881 | {
882 | "description": "Group packages from fimbullinter monorepo together",
883 | "extends": "monorepo:fimbullinter",
884 | "groupName": "fimbullinter monorepo"
885 | }
886 | ]
887 | },
888 | "flopflipMonorepo": {
889 | "packageRules": [
890 | {
891 | "description": "Group packages from flopflip monorepo together",
892 | "extends": "monorepo:flopflip",
893 | "groupName": "flopflip monorepo"
894 | }
895 | ]
896 | },
897 | "fortawesome": {
898 | "description": "Group all packages by Font Awesome together",
899 | "packageRules": [
900 | {"groupName": "Font Awesome", "packagePatterns": ["^@fortawesome/"]}
901 | ]
902 | },
903 | "framework7Monorepo": {
904 | "packageRules": [
905 | {
906 | "description": "Group packages from framework7 monorepo together",
907 | "extends": "monorepo:framework7",
908 | "groupName": "framework7 monorepo"
909 | }
910 | ]
911 | },
912 | "fusionjs": {
913 | "description": "Fusion.js packages",
914 | "packageNames": [
915 | "fusion-cli",
916 | "fusion-core",
917 | "fusion-test-utils",
918 | "fusion-tokens"
919 | ],
920 | "packagePatterns": [
921 | "^fusion-plugin-*",
922 | "^fusion-react*",
923 | "^fusion-apollo*"
924 | ]
925 | },
926 | "gatsbyMonorepo": {
927 | "packageRules": [
928 | {
929 | "description": "Group packages from gatsby monorepo together",
930 | "extends": "monorepo:gatsby",
931 | "groupName": "gatsby monorepo"
932 | }
933 | ]
934 | },
935 | "goOpenapi": {
936 | "description": "Group go-openapi packages together",
937 | "packageRules": [
938 | {
939 | "datasources": ["go"],
940 | "groupName": "go-openapi packages",
941 | "groupSlug": "go-openapi",
942 | "packagePatterns": ["^github.com/go-openapi/"]
943 | }
944 | ]
945 | },
946 | "graphql-modulesMonorepo": {
947 | "packageRules": [
948 | {
949 | "description": "Group packages from graphql-modules monorepo together",
950 | "extends": "monorepo:graphql-modules",
951 | "groupName": "graphql-modules monorepo"
952 | }
953 | ]
954 | },
955 | "graphql-toolkitMonorepo": {
956 | "packageRules": [
957 | {
958 | "description": "Group packages from graphql-toolkit monorepo together",
959 | "extends": "monorepo:graphql-toolkit",
960 | "groupName": "graphql-toolkit monorepo"
961 | }
962 | ]
963 | },
964 | "graphqlcodegeneratorMonorepo": {
965 | "packageRules": [
966 | {
967 | "description": "Group packages from graphqlcodegenerator monorepo together",
968 | "extends": "monorepo:graphqlcodegenerator",
969 | "groupName": "graphqlcodegenerator monorepo"
970 | }
971 | ]
972 | },
973 | "hamcrestMonorepo": {
974 | "packageRules": [
975 | {
976 | "description": "Group packages from hamcrest monorepo together",
977 | "extends": "monorepo:hamcrest",
978 | "groupName": "hamcrest monorepo"
979 | }
980 | ]
981 | },
982 | "hapijsMonorepo": {
983 | "packageRules": [
984 | {
985 | "description": "Group packages from hapijs monorepo together",
986 | "extends": "monorepo:hapijs",
987 | "groupName": "hapijs monorepo"
988 | }
989 | ]
990 | },
991 | "hibernateCommons": {
992 | "description": "Group Java Hibernate Commons packages",
993 | "packageRules": [
994 | {
995 | "packagePatterns": ["^org.hibernate.common:"],
996 | "groupName": "hibernate commons"
997 | }
998 | ]
999 | },
1000 | "hibernateCore": {
1001 | "description": "Group Java Hibernate Core packages",
1002 | "packageRules": [
1003 | {"packagePatterns": ["^org.hibernate:"], "groupName": "hibernate core"}
1004 | ]
1005 | },
1006 | "hibernateOgm": {
1007 | "description": "Group Java Hibernate OGM packages",
1008 | "packageRules": [
1009 | {
1010 | "packagePatterns": ["^org.hibernate.ogm:"],
1011 | "groupName": "hibernate ogm"
1012 | }
1013 | ]
1014 | },
1015 | "hibernateValidator": {
1016 | "description": "Group Java Hibernate Validator packages",
1017 | "packageRules": [
1018 | {
1019 | "packagePatterns": ["^org.hibernate.validator:"],
1020 | "groupName": "hibernate validator"
1021 | }
1022 | ]
1023 | },
1024 | "illuminate": {
1025 | "description": "Group PHP illuminate packages together",
1026 | "packageRules": [
1027 | {
1028 | "packagePatterns": ["^illuminate/"],
1029 | "groupName": "illuminate packages",
1030 | "groupSlug": "illuminate"
1031 | }
1032 | ]
1033 | },
1034 | "infrastructureMonorepo": {
1035 | "packageRules": [
1036 | {
1037 | "description": "Group packages from infrastructure monorepo together",
1038 | "extends": "monorepo:infrastructure",
1039 | "groupName": "infrastructure monorepo"
1040 | }
1041 | ]
1042 | },
1043 | "ionic-nativeMonorepo": {
1044 | "packageRules": [
1045 | {
1046 | "description": "Group packages from ionic-native monorepo together",
1047 | "extends": "monorepo:ionic-native",
1048 | "groupName": "ionic-native monorepo"
1049 | }
1050 | ]
1051 | },
1052 | "jasmineMonorepo": {
1053 | "packageRules": [
1054 | {
1055 | "description": "Group packages from jasmine monorepo together",
1056 | "extends": "monorepo:jasmine",
1057 | "groupName": "jasmine monorepo"
1058 | }
1059 | ]
1060 | },
1061 | "jekyllEcosystem": {
1062 | "description": "Group jekyll and related ruby packages together",
1063 | "packageRules": [
1064 | {
1065 | "sourceUrlPrefixes": [
1066 | "https://github.com/jekyll/",
1067 | "https://github.com/github/pages-gem"
1068 | ],
1069 | "groupName": "jekyll ecosystem packages"
1070 | }
1071 | ]
1072 | },
1073 | "jerseyMonorepo": {
1074 | "packageRules": [
1075 | {
1076 | "description": "Group packages from jersey monorepo together",
1077 | "extends": "monorepo:jersey",
1078 | "groupName": "jersey monorepo"
1079 | }
1080 | ]
1081 | },
1082 | "jestMonorepo": {
1083 | "packageRules": [
1084 | {
1085 | "description": "Group packages from jest monorepo together",
1086 | "extends": "monorepo:jest",
1087 | "groupName": "jest monorepo"
1088 | }
1089 | ]
1090 | },
1091 | "jsTest": {
1092 | "description": "Group JS test packages together",
1093 | "packageRules": [
1094 | {"extends": "packages:jsTest", "groupName": "JS test packages"}
1095 | ]
1096 | },
1097 | "jsTestMonMajor": {
1098 | "description": "Group non-major JS test package updates together",
1099 | "packageRules": [
1100 | {
1101 | "extends": "packages:jsTest",
1102 | "minor": {"groupName": "JS test packages"}
1103 | }
1104 | ]
1105 | },
1106 | "jsUnitTest": {
1107 | "description": "Group JS unit test packages together",
1108 | "packageRules": [
1109 | {"extends": "packages:jsUnitTest", "groupName": "JS unit test packages"}
1110 | ]
1111 | },
1112 | "jsUnitTestNonMajor": {
1113 | "description": "Group JS unit test packages together",
1114 | "packageRules": [
1115 | {
1116 | "extends": "packages:jsUnitTest",
1117 | "minor": {"groupName": "JS unit test packages"}
1118 | }
1119 | ]
1120 | },
1121 | "lernaMonorepo": {
1122 | "packageRules": [
1123 | {
1124 | "description": "Group packages from lerna monorepo together",
1125 | "extends": "monorepo:lerna",
1126 | "groupName": "lerna monorepo"
1127 | }
1128 | ]
1129 | },
1130 | "linguiMonorepo": {
1131 | "packageRules": [
1132 | {
1133 | "description": "Group packages from lingui monorepo together",
1134 | "extends": "monorepo:lingui",
1135 | "groupName": "lingui monorepo"
1136 | }
1137 | ]
1138 | },
1139 | "linters": {
1140 | "description": "Group various lint packages together",
1141 | "packageRules": [{"extends": "packages:linters", "groupName": "linters"}]
1142 | },
1143 | "lodashMonorepo": {
1144 | "packageRules": [
1145 | {
1146 | "description": "Group packages from lodash monorepo together",
1147 | "extends": "monorepo:lodash",
1148 | "groupName": "lodash monorepo"
1149 | }
1150 | ]
1151 | },
1152 | "loopbackMonorepo": {
1153 | "packageRules": [
1154 | {
1155 | "description": "Group packages from loopback monorepo together",
1156 | "extends": "monorepo:loopback",
1157 | "groupName": "loopback monorepo"
1158 | }
1159 | ]
1160 | },
1161 | "materialMonorepo": {
1162 | "packageRules": [
1163 | {
1164 | "description": "Group packages from material monorepo together",
1165 | "extends": "monorepo:material",
1166 | "groupName": "material monorepo"
1167 | }
1168 | ]
1169 | },
1170 | "mdc-reactMonorepo": {
1171 | "packageRules": [
1172 | {
1173 | "description": "Group packages from mdc-react monorepo together",
1174 | "extends": "monorepo:mdc-react",
1175 | "groupName": "mdc-react monorepo"
1176 | }
1177 | ]
1178 | },
1179 | "mdxMonorepo": {
1180 | "packageRules": [
1181 | {
1182 | "description": "Group packages from mdx monorepo together",
1183 | "extends": "monorepo:mdx",
1184 | "groupName": "mdx monorepo"
1185 | }
1186 | ]
1187 | },
1188 | "monorepos": {
1189 | "description": "Group known monorepo packages together",
1190 | "extends": [
1191 | "group:ag-gridMonorepo",
1192 | "group:arcus event-gridMonorepo",
1193 | "group:arcus securityMonorepo",
1194 | "group:arcus messagingMonorepo",
1195 | "group:arcus observabilityMonorepo",
1196 | "group:arcus webapiMonorepo",
1197 | "group:arcus background-jobsMonorepo",
1198 | "group:algolia-react-instantsearchMonorepo",
1199 | "group:apollo-serverMonorepo",
1200 | "group:aspnet AspNetWebStackMonorepo",
1201 | "group:aspnet ExtensionsMonorepo",
1202 | "group:aws-cdkMonorepo",
1203 | "group:azure azure-libraries-for-netMonorepo",
1204 | "group:azure azure-sdk-for-netMonorepo",
1205 | "group:azure azure-storage-netMonorepo",
1206 | "group:bugsnag-jsMonorepo",
1207 | "group:devextreme-reactiveMonorepo",
1208 | "group:electron-forgeMonorepo",
1209 | "group:ember-decoratorsMonorepo",
1210 | "group:graphql-modulesMonorepo",
1211 | "group:ionic-nativeMonorepo",
1212 | "group:mdc-reactMonorepo",
1213 | "group:ngx-formlyMonorepo",
1214 | "group:ngxs-storeMonorepo",
1215 | "group:react-apolloMonorepo",
1216 | "group:react-dndMonorepo",
1217 | "group:react-navigationMonorepo",
1218 | "group:reactivestack-cookiesMonorepo",
1219 | "group:semantic-releaseMonorepo",
1220 | "group:telus-tdsMonorepo",
1221 | "group:typescript-eslintMonorepo",
1222 | "group:typography-jsMonorepo",
1223 | "group:vue-cliMonorepo",
1224 | "group:accountsMonorepo",
1225 | "group:angular1Monorepo",
1226 | "group:angularMonorepo",
1227 | "group:angularcliMonorepo",
1228 | "group:apolloclientMonorepo",
1229 | "group:apollolinkMonorepo",
1230 | "group:awsappsyncMonorepo",
1231 | "group:babelMonorepo",
1232 | "group:basetMonorepo",
1233 | "group:braveMonorepo",
1234 | "group:capacitorMonorepo",
1235 | "group:clarityMonorepo",
1236 | "group:commitlintMonorepo",
1237 | "group:dropwizardMonorepo",
1238 | "group:emotionMonorepo",
1239 | "group:expoMonorepo",
1240 | "group:fimbullinterMonorepo",
1241 | "group:flopflipMonorepo",
1242 | "group:framework7Monorepo",
1243 | "group:gatsbyMonorepo",
1244 | "group:graphqlcodegeneratorMonorepo",
1245 | "group:graphql-toolkitMonorepo",
1246 | "group:hamcrestMonorepo",
1247 | "group:hapijsMonorepo",
1248 | "group:infrastructureMonorepo",
1249 | "group:jasmineMonorepo",
1250 | "group:jerseyMonorepo",
1251 | "group:jestMonorepo",
1252 | "group:lernaMonorepo",
1253 | "group:linguiMonorepo",
1254 | "group:lodashMonorepo",
1255 | "group:loopbackMonorepo",
1256 | "group:materialMonorepo",
1257 | "group:mdxMonorepo",
1258 | "group:muiMonorepo",
1259 | "group:nestMonorepo",
1260 | "group:neutrinoMonorepo",
1261 | "group:nextjsMonorepo",
1262 | "group:ngrxMonorepo",
1263 | "group:nrwlMonorepo",
1264 | "group:nuxtjsMonorepo",
1265 | "group:openfeignMonorepo",
1266 | "group:picassoMonorepo",
1267 | "group:pollyjsMonorepo",
1268 | "group:pouchdbMonorepo",
1269 | "group:reactMonorepo",
1270 | "group:reactrouterMonorepo",
1271 | "group:reakitMonorepo",
1272 | "group:remarkMonorepo",
1273 | "group:router5Monorepo",
1274 | "group:sentryMonorepo",
1275 | "group:springfoxMonorepo",
1276 | "group:sanityMonorepo",
1277 | "group:storybookMonorepo",
1278 | "group:strapiMonorepo",
1279 | "group:strykerMonorepo",
1280 | "group:surveyjsMonorepo",
1281 | "group:SwashbuckleMonorepo",
1282 | "group:treatMonorepo",
1283 | "group:typefacesMonorepo",
1284 | "group:uppyMonorepo",
1285 | "group:vueMonorepo",
1286 | "group:vuepressMonorepo",
1287 | "group:webdriverioMonorepo",
1288 | "group:workboxMonorepo",
1289 | "group:babel6Monorepo",
1290 | "group:wordpressMonorepo",
1291 | "group:angularmaterialMonorepo",
1292 | "group:aws-java-sdkMonorepo"
1293 | ],
1294 | "ignoreDeps": []
1295 | },
1296 | "muiMonorepo": {
1297 | "packageRules": [
1298 | {
1299 | "description": "Group packages from mui monorepo together",
1300 | "extends": "monorepo:mui",
1301 | "groupName": "mui monorepo"
1302 | }
1303 | ]
1304 | },
1305 | "nestMonorepo": {
1306 | "packageRules": [
1307 | {
1308 | "description": "Group packages from nest monorepo together",
1309 | "extends": "monorepo:nest",
1310 | "groupName": "nest monorepo"
1311 | }
1312 | ]
1313 | },
1314 | "neutrinoMonorepo": {
1315 | "packageRules": [
1316 | {
1317 | "description": "Group packages from neutrino monorepo together",
1318 | "extends": "monorepo:neutrino",
1319 | "groupName": "neutrino monorepo"
1320 | }
1321 | ]
1322 | },
1323 | "nextjsMonorepo": {
1324 | "packageRules": [
1325 | {
1326 | "description": "Group packages from nextjs monorepo together",
1327 | "extends": "monorepo:nextjs",
1328 | "groupName": "nextjs monorepo"
1329 | }
1330 | ]
1331 | },
1332 | "ngrxMonorepo": {
1333 | "packageRules": [
1334 | {
1335 | "description": "Group packages from ngrx monorepo together",
1336 | "extends": "monorepo:ngrx",
1337 | "groupName": "ngrx monorepo"
1338 | }
1339 | ]
1340 | },
1341 | "ngx-formlyMonorepo": {
1342 | "packageRules": [
1343 | {
1344 | "description": "Group packages from ngx-formly monorepo together",
1345 | "extends": "monorepo:ngx-formly",
1346 | "groupName": "ngx-formly monorepo"
1347 | }
1348 | ]
1349 | },
1350 | "ngxs-storeMonorepo": {
1351 | "packageRules": [
1352 | {
1353 | "description": "Group packages from ngxs-store monorepo together",
1354 | "extends": "monorepo:ngxs-store",
1355 | "groupName": "ngxs-store monorepo"
1356 | }
1357 | ]
1358 | },
1359 | "nrwlMonorepo": {
1360 | "packageRules": [
1361 | {
1362 | "description": "Group packages from nrwl monorepo together",
1363 | "extends": "monorepo:nrwl",
1364 | "groupName": "nrwl monorepo"
1365 | }
1366 | ]
1367 | },
1368 | "nuxtjsMonorepo": {
1369 | "packageRules": [
1370 | {
1371 | "description": "Group packages from nuxtjs monorepo together",
1372 | "extends": "monorepo:nuxtjs",
1373 | "groupName": "nuxtjs monorepo"
1374 | }
1375 | ]
1376 | },
1377 | "openfeignMonorepo": {
1378 | "packageRules": [
1379 | {
1380 | "description": "Group packages from openfeign monorepo together",
1381 | "extends": "monorepo:openfeign",
1382 | "groupName": "openfeign monorepo"
1383 | }
1384 | ]
1385 | },
1386 | "picassoMonorepo": {
1387 | "packageRules": [
1388 | {
1389 | "description": "Group packages from picasso monorepo together",
1390 | "extends": "monorepo:picasso",
1391 | "groupName": "picasso monorepo"
1392 | }
1393 | ]
1394 | },
1395 | "pollyjsMonorepo": {
1396 | "packageRules": [
1397 | {
1398 | "description": "Group packages from pollyjs monorepo together",
1399 | "extends": "monorepo:pollyjs",
1400 | "groupName": "pollyjs monorepo"
1401 | }
1402 | ]
1403 | },
1404 | "polymer": {
1405 | "description": "Group all @polymer packages together",
1406 | "packageRules": [
1407 | {"groupName": "polymer packages", "packagePatterns": ["^@polymer/"]}
1408 | ]
1409 | },
1410 | "postcss": {
1411 | "description": "Group postcss packages together",
1412 | "packageRules": [
1413 | {"extends": "packages:postcss", "groupName": "postcss packages"}
1414 | ]
1415 | },
1416 | "pouchdbMonorepo": {
1417 | "packageRules": [
1418 | {
1419 | "description": "Group packages from pouchdb monorepo together",
1420 | "extends": "monorepo:pouchdb",
1421 | "groupName": "pouchdb monorepo"
1422 | }
1423 | ]
1424 | },
1425 | "react-apolloMonorepo": {
1426 | "packageRules": [
1427 | {
1428 | "description": "Group packages from react-apollo monorepo together",
1429 | "extends": "monorepo:react-apollo",
1430 | "groupName": "react-apollo monorepo"
1431 | }
1432 | ]
1433 | },
1434 | "react-dndMonorepo": {
1435 | "packageRules": [
1436 | {
1437 | "description": "Group packages from react-dnd monorepo together",
1438 | "extends": "monorepo:react-dnd",
1439 | "groupName": "react-dnd monorepo"
1440 | }
1441 | ]
1442 | },
1443 | "react-navigationMonorepo": {
1444 | "packageRules": [
1445 | {
1446 | "description": "Group packages from react-navigation monorepo together",
1447 | "extends": "monorepo:react-navigation",
1448 | "groupName": "react-navigation monorepo"
1449 | }
1450 | ]
1451 | },
1452 | "reactMonorepo": {
1453 | "packageRules": [
1454 | {
1455 | "description": "Group packages from react monorepo together",
1456 | "extends": "monorepo:react",
1457 | "groupName": "react monorepo"
1458 | }
1459 | ]
1460 | },
1461 | "reactivestack-cookiesMonorepo": {
1462 | "packageRules": [
1463 | {
1464 | "description": "Group packages from reactivestack-cookies monorepo together",
1465 | "extends": "monorepo:reactivestack-cookies",
1466 | "groupName": "reactivestack-cookies monorepo"
1467 | }
1468 | ]
1469 | },
1470 | "reactrouterMonorepo": {
1471 | "packageRules": [
1472 | {
1473 | "description": "Group packages from reactrouter monorepo together",
1474 | "extends": "monorepo:reactrouter",
1475 | "groupName": "reactrouter monorepo"
1476 | }
1477 | ]
1478 | },
1479 | "reakitMonorepo": {
1480 | "packageRules": [
1481 | {
1482 | "description": "Group packages from reakit monorepo together",
1483 | "extends": "monorepo:reakit",
1484 | "groupName": "reakit monorepo"
1485 | }
1486 | ]
1487 | },
1488 | "recommended": {
1489 | "description": "Use curated list of recommended non-monorepo package groupings",
1490 | "extends": [
1491 | "group:allApollographql",
1492 | "group:fortawesome",
1493 | "group:goOpenapi",
1494 | "group:fusionjs",
1495 | "group:hibernateCore",
1496 | "group:hibernateValidator",
1497 | "group:hibernateOgm",
1498 | "group:hibernateCommons",
1499 | "group:illuminate",
1500 | "group:jekyllEcosystem",
1501 | "group:polymer",
1502 | "group:rubyOmniauth",
1503 | "group:socketio",
1504 | "group:springAmqp",
1505 | "group:springAndroid",
1506 | "group:springBatch",
1507 | "group:springBoot",
1508 | "group:springCloud",
1509 | "group:springCore",
1510 | "group:springData",
1511 | "group:springHateoas",
1512 | "group:springIntegration",
1513 | "group:springKafka",
1514 | "group:springLdap",
1515 | "group:springMobile",
1516 | "group:springOsgi",
1517 | "group:springRestDocs",
1518 | "group:springRoo",
1519 | "group:springScala",
1520 | "group:springSecurity",
1521 | "group:springSession",
1522 | "group:springShell",
1523 | "group:springSocial",
1524 | "group:springStatemachine",
1525 | "group:springWebflow",
1526 | "group:springWs",
1527 | "group:symfony"
1528 | ],
1529 | "ignoreDeps": []
1530 | },
1531 | "remarkMonorepo": {
1532 | "packageRules": [
1533 | {
1534 | "description": "Group packages from remark monorepo together",
1535 | "extends": "monorepo:remark",
1536 | "groupName": "remark monorepo"
1537 | }
1538 | ]
1539 | },
1540 | "router5Monorepo": {
1541 | "packageRules": [
1542 | {
1543 | "description": "Group packages from router5 monorepo together",
1544 | "extends": "monorepo:router5",
1545 | "groupName": "router5 monorepo"
1546 | }
1547 | ]
1548 | },
1549 | "rubyOmniauth": {
1550 | "description": "Group omniauth packages together",
1551 | "packageRules": [
1552 | {
1553 | "datasources": ["rubygems"],
1554 | "packagePatterns": ["^omniauth"],
1555 | "groupName": "omniauth packages"
1556 | }
1557 | ]
1558 | },
1559 | "sanityMonorepo": {
1560 | "packageRules": [
1561 | {
1562 | "description": "Group packages from sanity monorepo together",
1563 | "extends": "monorepo:sanity",
1564 | "groupName": "sanity monorepo"
1565 | }
1566 | ]
1567 | },
1568 | "semantic-releaseMonorepo": {
1569 | "packageRules": [
1570 | {
1571 | "description": "Group packages from semantic-release monorepo together",
1572 | "extends": "monorepo:semantic-release",
1573 | "groupName": "semantic-release monorepo"
1574 | }
1575 | ]
1576 | },
1577 | "sentryMonorepo": {
1578 | "packageRules": [
1579 | {
1580 | "description": "Group packages from sentry monorepo together",
1581 | "extends": "monorepo:sentry",
1582 | "groupName": "sentry monorepo"
1583 | }
1584 | ]
1585 | },
1586 | "socketio": {
1587 | "description": "Group socket.io packages",
1588 | "packageRules": [
1589 | {"groupName": "socket.io packages", "packagePatterns": ["^socket.io"]}
1590 | ]
1591 | },
1592 | "springAmqp": {
1593 | "description": "Group Java Spring AMQP packages",
1594 | "packageRules": [
1595 | {
1596 | "groupName": "spring amqp",
1597 | "packagePatterns": ["^org.springframework.amqp:"]
1598 | }
1599 | ]
1600 | },
1601 | "springAndroid": {
1602 | "description": "Group Java Spring Android packages",
1603 | "packageRules": [
1604 | {
1605 | "groupName": "spring android",
1606 | "packagePatterns": ["^org.springframework.android:"]
1607 | }
1608 | ]
1609 | },
1610 | "springBatch": {
1611 | "description": "Group Java Spring Batch packages",
1612 | "packageRules": [
1613 | {
1614 | "groupName": "spring batch",
1615 | "packagePatterns": ["^org.springframework.batch:"]
1616 | }
1617 | ]
1618 | },
1619 | "springBoot": {
1620 | "description": "Group Java Spring Boot packages",
1621 | "packageRules": [
1622 | {
1623 | "groupName": "spring boot",
1624 | "packagePatterns": ["^org.springframework.boot:"]
1625 | }
1626 | ]
1627 | },
1628 | "springCloud": {
1629 | "description": "Group Java Spring Cloud packages",
1630 | "packageRules": [
1631 | {
1632 | "groupName": "spring cloud",
1633 | "packagePatterns": ["^org.springframework.cloud:"]
1634 | }
1635 | ]
1636 | },
1637 | "springCore": {
1638 | "description": "Group Java Spring Core packages",
1639 | "packageRules": [
1640 | {
1641 | "groupName": "spring core",
1642 | "packagePatterns": ["^org.springframework:"]
1643 | }
1644 | ]
1645 | },
1646 | "springData": {
1647 | "description": "Group Java Spring Data packages",
1648 | "packageRules": [
1649 | {
1650 | "groupName": "spring data",
1651 | "packagePatterns": ["^org.springframework.data:"]
1652 | }
1653 | ]
1654 | },
1655 | "springHateoas": {
1656 | "description": "Group Java Spring HATEOAS packages",
1657 | "packageRules": [
1658 | {
1659 | "groupName": "spring hateoas",
1660 | "packagePatterns": ["^org.springframework.hateoas:"]
1661 | }
1662 | ]
1663 | },
1664 | "springIntegration": {
1665 | "description": "Group Java Spring Integration packages",
1666 | "packageRules": [
1667 | {
1668 | "groupName": "spring integration",
1669 | "packagePatterns": ["^org.springframework.integration:"]
1670 | }
1671 | ]
1672 | },
1673 | "springKafka": {
1674 | "description": "Group Java Spring Kafka packages",
1675 | "packageRules": [
1676 | {
1677 | "groupName": "spring kafka",
1678 | "packagePatterns": ["^org.springframework.kafka:"]
1679 | }
1680 | ]
1681 | },
1682 | "springLdap": {
1683 | "description": "Group Java Spring LDAP packages",
1684 | "packageRules": [
1685 | {
1686 | "groupName": "spring ldap",
1687 | "packagePatterns": ["^org.springframework.ldap:"]
1688 | }
1689 | ]
1690 | },
1691 | "springMobile": {
1692 | "description": "Group Java Spring Mobile packages",
1693 | "packageRules": [
1694 | {
1695 | "groupName": "spring mobile",
1696 | "packagePatterns": ["^org.springframework.mobile:"]
1697 | }
1698 | ]
1699 | },
1700 | "springOsgi": {
1701 | "description": "Group Java Spring OSGi packages",
1702 | "packageRules": [
1703 | {
1704 | "groupName": "spring osgi",
1705 | "packagePatterns": ["^org.springframework.osgi:"]
1706 | }
1707 | ]
1708 | },
1709 | "springRestDocs": {
1710 | "description": "Group Java Spring REST Docs packages",
1711 | "packageRules": [
1712 | {
1713 | "groupName": "spring restdocs",
1714 | "packagePatterns": ["^org.springframework.restdocs:"]
1715 | }
1716 | ]
1717 | },
1718 | "springRoo": {
1719 | "description": "Group Java Spring Roo packages",
1720 | "packageRules": [
1721 | {
1722 | "groupName": "spring roo",
1723 | "packagePatterns": ["^org.springframework.roo:"]
1724 | }
1725 | ]
1726 | },
1727 | "springScala": {
1728 | "description": "Group Java Spring Scala packages",
1729 | "packageRules": [
1730 | {
1731 | "groupName": "spring scala",
1732 | "packagePatterns": ["^org.springframework.scala:"]
1733 | }
1734 | ]
1735 | },
1736 | "springSecurity": {
1737 | "description": "Group Java Spring Security packages",
1738 | "packageRules": [
1739 | {
1740 | "groupName": "spring security",
1741 | "packagePatterns": ["^org.springframework.security:"]
1742 | }
1743 | ]
1744 | },
1745 | "springSession": {
1746 | "description": "Group Java Spring Session packages",
1747 | "packageRules": [
1748 | {
1749 | "groupName": "spring session",
1750 | "packagePatterns": ["^org.springframework.session:"]
1751 | }
1752 | ]
1753 | },
1754 | "springShell": {
1755 | "description": "Group Java Spring Shell packages",
1756 | "packageRules": [
1757 | {
1758 | "groupName": "spring shell",
1759 | "packagePatterns": ["^org.springframework.shell:"]
1760 | }
1761 | ]
1762 | },
1763 | "springSocial": {
1764 | "description": "Group Java Spring Social packages",
1765 | "packageRules": [
1766 | {
1767 | "groupName": "spring social",
1768 | "packagePatterns": ["^org.springframework.social:"]
1769 | }
1770 | ]
1771 | },
1772 | "springStatemachine": {
1773 | "description": "Group Java Spring Statemachine packages",
1774 | "packageRules": [
1775 | {
1776 | "groupName": "spring statemachine",
1777 | "packagePatterns": ["^org.springframework.statemachine:"]
1778 | }
1779 | ]
1780 | },
1781 | "springWebflow": {
1782 | "description": "Group Java Spring WebFlow packages",
1783 | "packageRules": [
1784 | {
1785 | "groupName": "spring webflow",
1786 | "packagePatterns": ["^org.springframework.webflow:"]
1787 | }
1788 | ]
1789 | },
1790 | "springWs": {
1791 | "description": "Group Java Spring WS packages",
1792 | "packageRules": [
1793 | {
1794 | "groupName": "spring ws",
1795 | "packagePatterns": ["^org.springframework.ws:"]
1796 | }
1797 | ]
1798 | },
1799 | "springfoxMonorepo": {
1800 | "packageRules": [
1801 | {
1802 | "description": "Group packages from springfox monorepo together",
1803 | "extends": "monorepo:springfox",
1804 | "groupName": "springfox monorepo"
1805 | }
1806 | ]
1807 | },
1808 | "storybookMonorepo": {
1809 | "packageRules": [
1810 | {
1811 | "description": "Group packages from storybook monorepo together",
1812 | "extends": "monorepo:storybook",
1813 | "groupName": "storybook monorepo"
1814 | }
1815 | ]
1816 | },
1817 | "strapiMonorepo": {
1818 | "packageRules": [
1819 | {
1820 | "description": "Group packages from strapi monorepo together",
1821 | "extends": "monorepo:strapi",
1822 | "groupName": "strapi monorepo"
1823 | }
1824 | ]
1825 | },
1826 | "strykerMonorepo": {
1827 | "packageRules": [
1828 | {
1829 | "description": "Group packages from stryker monorepo together",
1830 | "extends": "monorepo:stryker",
1831 | "groupName": "stryker monorepo"
1832 | }
1833 | ]
1834 | },
1835 | "surveyjsMonorepo": {
1836 | "packageRules": [
1837 | {
1838 | "description": "Group packages from surveyjs monorepo together",
1839 | "extends": "monorepo:surveyjs",
1840 | "groupName": "surveyjs monorepo"
1841 | }
1842 | ]
1843 | },
1844 | "symfony": {
1845 | "description": "Group PHP symfony packages together",
1846 | "packageRules": [
1847 | {
1848 | "packagePatterns": ["^symfony/"],
1849 | "groupName": "symfony packages",
1850 | "groupSlug": "symfony"
1851 | }
1852 | ]
1853 | },
1854 | "telus-tdsMonorepo": {
1855 | "packageRules": [
1856 | {
1857 | "description": "Group packages from telus-tds monorepo together",
1858 | "extends": "monorepo:telus-tds",
1859 | "groupName": "telus-tds monorepo"
1860 | }
1861 | ]
1862 | },
1863 | "test": {
1864 | "description": "Group all test packages together",
1865 | "packageRules": [
1866 | {"extends": "packages:test", "groupName": "test packages"}
1867 | ]
1868 | },
1869 | "testNonMajor": {
1870 | "description": "Group all non-major test package updates together",
1871 | "packageRules": [
1872 | {"extends": "packages:test", "minor": {"groupName": "test packages"}}
1873 | ]
1874 | },
1875 | "treatMonorepo": {
1876 | "packageRules": [
1877 | {
1878 | "description": "Group packages from treat monorepo together",
1879 | "extends": "monorepo:treat",
1880 | "groupName": "treat monorepo"
1881 | }
1882 | ]
1883 | },
1884 | "typefacesMonorepo": {
1885 | "packageRules": [
1886 | {
1887 | "description": "Group packages from typefaces monorepo together",
1888 | "extends": "monorepo:typefaces",
1889 | "groupName": "typefaces monorepo"
1890 | }
1891 | ]
1892 | },
1893 | "typescript-eslintMonorepo": {
1894 | "packageRules": [
1895 | {
1896 | "description": "Group packages from typescript-eslint monorepo together",
1897 | "extends": "monorepo:typescript-eslint",
1898 | "groupName": "typescript-eslint monorepo"
1899 | }
1900 | ]
1901 | },
1902 | "typography-jsMonorepo": {
1903 | "packageRules": [
1904 | {
1905 | "description": "Group packages from typography-js monorepo together",
1906 | "extends": "monorepo:typography-js",
1907 | "groupName": "typography-js monorepo"
1908 | }
1909 | ]
1910 | },
1911 | "unitTest": {
1912 | "description": "Group all unit test packages together",
1913 | "packageRules": [
1914 | {"extends": "packages:unitTest", "groupName": "unit test packages"}
1915 | ]
1916 | },
1917 | "unitTestNonMajor": {
1918 | "description": "Group all unit test packages together",
1919 | "packageRules": [
1920 | {
1921 | "extends": "packages:unitTest",
1922 | "minor": {"groupName": "unit test packages"}
1923 | }
1924 | ]
1925 | },
1926 | "uppyMonorepo": {
1927 | "packageRules": [
1928 | {
1929 | "description": "Group packages from uppy monorepo together",
1930 | "extends": "monorepo:uppy",
1931 | "groupName": "uppy monorepo"
1932 | }
1933 | ]
1934 | },
1935 | "vue-cliMonorepo": {
1936 | "packageRules": [
1937 | {
1938 | "description": "Group packages from vue-cli monorepo together",
1939 | "extends": "monorepo:vue-cli",
1940 | "groupName": "vue-cli monorepo"
1941 | }
1942 | ]
1943 | },
1944 | "vueMonorepo": {
1945 | "packageRules": [
1946 | {
1947 | "description": "Group packages from vue monorepo together",
1948 | "extends": "monorepo:vue",
1949 | "groupName": "vue monorepo"
1950 | }
1951 | ]
1952 | },
1953 | "vuepressMonorepo": {
1954 | "packageRules": [
1955 | {
1956 | "description": "Group packages from vuepress monorepo together",
1957 | "extends": "monorepo:vuepress",
1958 | "groupName": "vuepress monorepo"
1959 | }
1960 | ]
1961 | },
1962 | "webdriverioMonorepo": {
1963 | "packageRules": [
1964 | {
1965 | "description": "Group packages from webdriverio monorepo together",
1966 | "extends": "monorepo:webdriverio",
1967 | "groupName": "webdriverio monorepo"
1968 | }
1969 | ]
1970 | },
1971 | "wordpressMonorepo": {
1972 | "packageRules": [
1973 | {
1974 | "description": "Group packages from wordpress monorepo together",
1975 | "extends": "monorepo:wordpress",
1976 | "groupName": "wordpress monorepo"
1977 | }
1978 | ]
1979 | },
1980 | "workboxMonorepo": {
1981 | "packageRules": [
1982 | {
1983 | "description": "Group packages from workbox monorepo together",
1984 | "extends": "monorepo:workbox",
1985 | "groupName": "workbox monorepo"
1986 | }
1987 | ]
1988 | }
1989 | },
1990 | "helpers": {
1991 | "disableTypesNodeMajor": {
1992 | "packageRules": [
1993 | {"packageNames": ["@types/node"], "major": {"enabled": false}}
1994 | ]
1995 | },
1996 | "followTypescriptNext": {
1997 | "description": "Keep version in sync with the next
tag",
1998 | "extends": [":followTag(typescript, next)"]
1999 | },
2000 | "followTypescriptRc": {
2001 | "description": "Keep version in sync with the rc
tag",
2002 | "extends": [":followTag(typescript, rc)"]
2003 | },
2004 | "oddIsUnstable": {
2005 | "description": "DEPRECATED: Odd version numbers are classified as unstable"
2006 | },
2007 | "oddIsUnstablePackages": {
2008 | "description": "DEPRECATED: Preconfigure dependencies where an odd major version indicates unstable (Docker-only)"
2009 | }
2010 | },
2011 | "monorepo": {
2012 | "Swashbuckle": {
2013 | "description": "Swashbuckle monorepo",
2014 | "sourceUrlPrefixes": [
2015 | "https://github.com/domaindrivendev/Swashbuckle.AspNetCore"
2016 | ]
2017 | },
2018 | "accounts": {
2019 | "description": "accounts monorepo",
2020 | "sourceUrlPrefixes": ["https://github.com/accounts-js/accounts"]
2021 | },
2022 | "ag-grid": {
2023 | "description": "ag-grid monorepo",
2024 | "sourceUrlPrefixes": ["https://github.com/ag-grid/ag-grid"]
2025 | },
2026 | "algolia-react-instantsearch": {
2027 | "description": "algolia-react-instantsearch monorepo",
2028 | "sourceUrlPrefixes": ["https://github.com/algolia/react-instantsearch"]
2029 | },
2030 | "angular": {
2031 | "description": "angular monorepo",
2032 | "sourceUrlPrefixes": ["https://github.com/angular/angular"]
2033 | },
2034 | "angular1": {
2035 | "description": "angular1 monorepo",
2036 | "sourceUrlPrefixes": ["https://github.com/angular/angular.js"]
2037 | },
2038 | "angularcli": {
2039 | "description": "angularcli monorepo",
2040 | "sourceUrlPrefixes": ["https://github.com/angular/angular-cli"]
2041 | },
2042 | "angularmaterial": {
2043 | "description": "angularmaterial monorepo",
2044 | "packagePatterns": ["^@angular/material", "^@angular/cdk"]
2045 | },
2046 | "apollo-server": {
2047 | "description": "apollo-server monorepo",
2048 | "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-server"]
2049 | },
2050 | "apolloclient": {
2051 | "description": "apolloclient monorepo",
2052 | "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-client"]
2053 | },
2054 | "apollolink": {
2055 | "description": "apollolink monorepo",
2056 | "sourceUrlPrefixes": ["https://github.com/apollographql/apollo-link"]
2057 | },
2058 | "arcus background-jobs": {
2059 | "description": "arcus background-jobs monorepo",
2060 | "sourceUrlPrefixes": [
2061 | "https://github.com/arcus-azure/arcus.backgroundjobs"
2062 | ]
2063 | },
2064 | "arcus event-grid": {
2065 | "description": "arcus event-grid monorepo",
2066 | "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.eventgrid"]
2067 | },
2068 | "arcus messaging": {
2069 | "description": "arcus messaging monorepo",
2070 | "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.messaging"]
2071 | },
2072 | "arcus observability": {
2073 | "description": "arcus observability monorepo",
2074 | "sourceUrlPrefixes": [
2075 | "https://github.com/arcus-azure/arcus.observability"
2076 | ]
2077 | },
2078 | "arcus security": {
2079 | "description": "arcus security monorepo",
2080 | "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.security"]
2081 | },
2082 | "arcus webapi": {
2083 | "description": "arcus webapi monorepo",
2084 | "sourceUrlPrefixes": ["https://github.com/arcus-azure/arcus.webapi"]
2085 | },
2086 | "aspnet AspNetWebStack": {
2087 | "description": "aspnet AspNetWebStack monorepo",
2088 | "sourceUrlPrefixes": ["https://github.com/aspnet/AspNetWebStack"]
2089 | },
2090 | "aspnet Extensions": {
2091 | "description": "aspnet Extensions monorepo",
2092 | "sourceUrlPrefixes": ["https://github.com/aspnet/Extensions"]
2093 | },
2094 | "aws-cdk": {
2095 | "description": "aws-cdk monorepo",
2096 | "sourceUrlPrefixes": ["https://github.com/aws/aws-cdk"]
2097 | },
2098 | "aws-java-sdk": {
2099 | "description": "aws-java-sdk monorepo",
2100 | "packagePatterns": ["^com.amazonaws:aws-java-sdk-"]
2101 | },
2102 | "awsappsync": {
2103 | "description": "awsappsync monorepo",
2104 | "sourceUrlPrefixes": [
2105 | "https://github.com/awslabs/aws-mobile-appsync-sdk-js"
2106 | ]
2107 | },
2108 | "azure azure-libraries-for-net": {
2109 | "description": "azure azure-libraries-for-net monorepo",
2110 | "sourceUrlPrefixes": ["https://github.com/Azure/azure-libraries-for-net"]
2111 | },
2112 | "azure azure-sdk-for-net": {
2113 | "description": "azure azure-sdk-for-net monorepo",
2114 | "sourceUrlPrefixes": ["https://github.com/Azure/azure-sdk-for-net"]
2115 | },
2116 | "azure azure-storage-net": {
2117 | "description": "azure azure-storage-net monorepo",
2118 | "sourceUrlPrefixes": ["https://github.com/Azure/azure-storage-net"]
2119 | },
2120 | "babel": {
2121 | "description": "babel monorepo",
2122 | "sourceUrlPrefixes": ["https://github.com/babel/babel"]
2123 | },
2124 | "babel6": {
2125 | "description": "babel6 monorepo",
2126 | "packagePatterns": ["^babel6$"]
2127 | },
2128 | "baset": {
2129 | "description": "baset monorepo",
2130 | "sourceUrlPrefixes": ["https://github.com/igmat/baset"]
2131 | },
2132 | "brave": {
2133 | "description": "brave monorepo",
2134 | "sourceUrlPrefixes": ["https://github.com/openzipkin/brave"]
2135 | },
2136 | "bugsnag-js": {
2137 | "description": "bugsnag-js monorepo",
2138 | "sourceUrlPrefixes": ["https://github.com/bugsnag/bugsnag-js"]
2139 | },
2140 | "capacitor": {
2141 | "description": "capacitor monorepo",
2142 | "sourceUrlPrefixes": ["https://github.com/ionic-team/capacitor"]
2143 | },
2144 | "clarity": {
2145 | "description": "clarity monorepo",
2146 | "sourceUrlPrefixes": ["https://github.com/vmware/clarity"]
2147 | },
2148 | "commitlint": {
2149 | "description": "commitlint monorepo",
2150 | "sourceUrlPrefixes": [
2151 | "https://github.com/conventional-changelog/commitlint"
2152 | ]
2153 | },
2154 | "devextreme-reactive": {
2155 | "description": "devextreme-reactive monorepo",
2156 | "sourceUrlPrefixes": ["https://github.com/DevExpress/devextreme-reactive"]
2157 | },
2158 | "dropwizard": {
2159 | "description": "dropwizard monorepo",
2160 | "sourceUrlPrefixes": ["https://github.com/dropwizard/dropwizard"]
2161 | },
2162 | "electron-forge": {
2163 | "description": "electron-forge monorepo",
2164 | "sourceUrlPrefixes": [
2165 | "https://github.com/electron-userland/electron-forge"
2166 | ]
2167 | },
2168 | "ember-decorators": {
2169 | "description": "ember-decorators monorepo",
2170 | "sourceUrlPrefixes": [
2171 | "https://github.com/ember-decorators/ember-decorators"
2172 | ]
2173 | },
2174 | "emotion": {
2175 | "description": "emotion monorepo",
2176 | "sourceUrlPrefixes": ["https://github.com/emotion-js/emotion"]
2177 | },
2178 | "expo": {
2179 | "description": "expo monorepo",
2180 | "sourceUrlPrefixes": ["https://github.com/expo/expo"]
2181 | },
2182 | "fimbullinter": {
2183 | "description": "fimbullinter monorepo",
2184 | "sourceUrlPrefixes": ["https://github.com/fimbullinter/wotan"]
2185 | },
2186 | "flopflip": {
2187 | "description": "flopflip monorepo",
2188 | "sourceUrlPrefixes": ["https://github.com/tdeekens/flopflip"]
2189 | },
2190 | "framework7": {
2191 | "description": "framework7 monorepo",
2192 | "sourceUrlPrefixes": ["https://github.com/framework7io/framework7"]
2193 | },
2194 | "gatsby": {
2195 | "description": "gatsby monorepo",
2196 | "sourceUrlPrefixes": ["https://github.com/gatsbyjs/gatsby"]
2197 | },
2198 | "graphql-modules": {
2199 | "description": "graphql-modules monorepo",
2200 | "sourceUrlPrefixes": ["https://github.com/Urigo/graphql-modules"]
2201 | },
2202 | "graphql-toolkit": {
2203 | "description": "graphql-toolkit monorepo",
2204 | "sourceUrlPrefixes": ["https://github.com/ardatan/graphql-toolkit"]
2205 | },
2206 | "graphqlcodegenerator": {
2207 | "description": "graphqlcodegenerator monorepo",
2208 | "sourceUrlPrefixes": [
2209 | "https://github.com/dotansimha/graphql-code-generator",
2210 | "https://github.com/dotansimha/graphql-codegen"
2211 | ]
2212 | },
2213 | "hamcrest": {
2214 | "description": "hamcrest monorepo",
2215 | "sourceUrlPrefixes": ["https://github.com/hamcrest/JavaHamcrest"]
2216 | },
2217 | "hapijs": {
2218 | "description": "hapijs monorepo",
2219 | "sourceUrlPrefixes": ["https://github.com/hapijs"]
2220 | },
2221 | "infrastructure": {
2222 | "description": "infrastructure monorepo",
2223 | "sourceUrlPrefixes": ["https://github.com/instructure/instructure-ui"]
2224 | },
2225 | "ionic-native": {
2226 | "description": "ionic-native monorepo",
2227 | "sourceUrlPrefixes": ["https://github.com/ionic-team/ionic-native"]
2228 | },
2229 | "jasmine": {
2230 | "description": "jasmine monorepo",
2231 | "sourceUrlPrefixes": ["https://github.com/jasmine/jasmine"]
2232 | },
2233 | "jersey": {
2234 | "description": "jersey monorepo",
2235 | "sourceUrlPrefixes": ["https://github.com/eclipse-ee4j/jersey"]
2236 | },
2237 | "jest": {
2238 | "description": "jest monorepo",
2239 | "sourceUrlPrefixes": ["https://github.com/facebook/jest"]
2240 | },
2241 | "lerna": {
2242 | "description": "lerna monorepo",
2243 | "sourceUrlPrefixes": ["https://github.com/lerna/lerna"]
2244 | },
2245 | "lingui": {
2246 | "description": "lingui monorepo",
2247 | "sourceUrlPrefixes": ["https://github.com/lingui/js-lingui"]
2248 | },
2249 | "lodash": {
2250 | "description": "lodash monorepo",
2251 | "sourceUrlPrefixes": ["https://github.com/lodash/"]
2252 | },
2253 | "loopback": {
2254 | "description": "loopback monorepo",
2255 | "sourceUrlPrefixes": ["https://github.com/strongloop/loopback-next"]
2256 | },
2257 | "material": {
2258 | "description": "material monorepo",
2259 | "sourceUrlPrefixes": [
2260 | "https://github.com/material-components/material-components-web"
2261 | ]
2262 | },
2263 | "mdc-react": {
2264 | "description": "mdc-react monorepo",
2265 | "sourceUrlPrefixes": ["material-components/material-components-web-react"]
2266 | },
2267 | "mdx": {
2268 | "description": "mdx monorepo",
2269 | "sourceUrlPrefixes": ["https://github.com/mdx-js/mdx"]
2270 | },
2271 | "mui": {
2272 | "description": "mui monorepo",
2273 | "sourceUrlPrefixes": ["https://github.com/mui-org/material-ui"]
2274 | },
2275 | "nest": {
2276 | "description": "nest monorepo",
2277 | "sourceUrlPrefixes": ["https://github.com/nestjs/nest"]
2278 | },
2279 | "neutrino": {
2280 | "description": "neutrino monorepo",
2281 | "sourceUrlPrefixes": [
2282 | "https://github.com/neutrinojs/neutrino",
2283 | "https://github.com/mozilla-neutrino/neutrino-dev"
2284 | ]
2285 | },
2286 | "nextjs": {
2287 | "description": "nextjs monorepo",
2288 | "sourceUrlPrefixes": ["https://github.com/zeit/next.js"]
2289 | },
2290 | "ngrx": {
2291 | "description": "ngrx monorepo",
2292 | "sourceUrlPrefixes": ["https://github.com/ngrx/"]
2293 | },
2294 | "ngx-formly": {
2295 | "description": "ngx-formly monorepo",
2296 | "sourceUrlPrefixes": ["https://github.com/ngx-formly/ngx-formly"]
2297 | },
2298 | "ngxs-store": {
2299 | "description": "ngxs-store monorepo",
2300 | "sourceUrlPrefixes": ["https://github.com/ngxs/store"]
2301 | },
2302 | "nrwl": {
2303 | "description": "nrwl monorepo",
2304 | "sourceUrlPrefixes": ["https://github.com/nrwl/"]
2305 | },
2306 | "nuxtjs": {
2307 | "description": "nuxtjs monorepo",
2308 | "sourceUrlPrefixes": ["https://github.com/nuxt/nuxt.js"]
2309 | },
2310 | "openfeign": {
2311 | "description": "openfeign monorepo",
2312 | "sourceUrlPrefixes": ["https://github.com/OpenFeign/feign"]
2313 | },
2314 | "picasso": {
2315 | "description": "picasso monorepo",
2316 | "sourceUrlPrefixes": ["https://github.com/qlik-oss/picasso.js"]
2317 | },
2318 | "pollyjs": {
2319 | "description": "pollyjs monorepo",
2320 | "sourceUrlPrefixes": ["https://github.com/Netflix/pollyjs"]
2321 | },
2322 | "pouchdb": {
2323 | "description": "pouchdb monorepo",
2324 | "sourceUrlPrefixes": ["https://github.com/pouchdb/pouchdb"]
2325 | },
2326 | "react": {
2327 | "description": "react monorepo",
2328 | "sourceUrlPrefixes": ["https://github.com/facebook/react"]
2329 | },
2330 | "react-apollo": {
2331 | "description": "react-apollo monorepo",
2332 | "sourceUrlPrefixes": ["https://github.com/apollographql/react-apollo"]
2333 | },
2334 | "react-dnd": {
2335 | "description": "react-dnd monorepo",
2336 | "sourceUrlPrefixes": ["https://github.com/react-dnd/react-dnd"]
2337 | },
2338 | "react-navigation": {
2339 | "description": "react-navigation monorepo",
2340 | "sourceUrlPrefixes": [
2341 | "https://github.com/react-navigation/react-navigation"
2342 | ]
2343 | },
2344 | "reactivestack-cookies": {
2345 | "description": "reactivestack-cookies monorepo",
2346 | "sourceUrlPrefixes": ["https://github.com/reactivestack/cookies"]
2347 | },
2348 | "reactrouter": {
2349 | "description": "reactrouter monorepo",
2350 | "sourceUrlPrefixes": ["https://github.com/ReactTraining/react-router"]
2351 | },
2352 | "reakit": {
2353 | "description": "reakit monorepo",
2354 | "sourceUrlPrefixes": ["https://github.com/reakit/reakit"]
2355 | },
2356 | "remark": {
2357 | "description": "remark monorepo",
2358 | "sourceUrlPrefixes": ["https://github.com/remarkjs/remark"]
2359 | },
2360 | "router5": {
2361 | "description": "router5 monorepo",
2362 | "sourceUrlPrefixes": ["https://github.com/router5/router5"]
2363 | },
2364 | "sanity": {
2365 | "description": "sanity monorepo",
2366 | "sourceUrlPrefixes": ["https://github.com/sanity-io/sanity"]
2367 | },
2368 | "semantic-release": {
2369 | "description": "semantic-release monorepo",
2370 | "sourceUrlPrefixes": ["https://github.com/semantic-release/"]
2371 | },
2372 | "sentry": {
2373 | "description": "sentry monorepo",
2374 | "sourceUrlPrefixes": ["https://github.com/getsentry/sentry-javascript"]
2375 | },
2376 | "springfox": {
2377 | "description": "springfox monorepo",
2378 | "sourceUrlPrefixes": ["https://github.com/springfox/springfox"]
2379 | },
2380 | "storybook": {
2381 | "description": "storybook monorepo",
2382 | "sourceUrlPrefixes": ["https://github.com/storybookjs/storybook"]
2383 | },
2384 | "strapi": {
2385 | "description": "strapi monorepo",
2386 | "sourceUrlPrefixes": ["https://github.com/strapi/strapi"]
2387 | },
2388 | "stryker": {
2389 | "description": "stryker monorepo",
2390 | "sourceUrlPrefixes": ["https://github.com/stryker-mutator/stryker"]
2391 | },
2392 | "surveyjs": {
2393 | "description": "surveyjs monorepo",
2394 | "sourceUrlPrefixes": ["https://github.com/surveyjs/surveyjs"]
2395 | },
2396 | "telus-tds": {
2397 | "description": "telus-tds monorepo",
2398 | "sourceUrlPrefixes": ["https://github.com/telusdigital/tds"]
2399 | },
2400 | "treat": {
2401 | "description": "treat monorepo",
2402 | "sourceUrlPrefixes": ["https://github.com/seek-oss/treat"]
2403 | },
2404 | "typefaces": {
2405 | "description": "typefaces monorepo",
2406 | "sourceUrlPrefixes": ["https://github.com/KyleAMathews/typefaces"]
2407 | },
2408 | "typescript-eslint": {
2409 | "description": "typescript-eslint monorepo",
2410 | "sourceUrlPrefixes": [
2411 | "https://github.com/typescript-eslint/typescript-eslint"
2412 | ]
2413 | },
2414 | "typography-js": {
2415 | "description": "typography-js monorepo",
2416 | "sourceUrlPrefixes": ["https://github.com/KyleAMathews/typography.js"]
2417 | },
2418 | "uppy": {
2419 | "description": "uppy monorepo",
2420 | "sourceUrlPrefixes": ["https://github.com/transloadit/uppy"]
2421 | },
2422 | "vue": {
2423 | "description": "vue monorepo",
2424 | "sourceUrlPrefixes": ["https://github.com/vuejs/vue"]
2425 | },
2426 | "vue-cli": {
2427 | "description": "vue-cli monorepo",
2428 | "sourceUrlPrefixes": ["https://github.com/vuejs/vue-cli"]
2429 | },
2430 | "vuepress": {
2431 | "description": "vuepress monorepo",
2432 | "sourceUrlPrefixes": ["https://github.com/vuejs/vuepress"]
2433 | },
2434 | "webdriverio": {
2435 | "description": "webdriverio monorepo",
2436 | "sourceUrlPrefixes": ["https://github.com/webdriverio/webdriverio"]
2437 | },
2438 | "wordpress": {
2439 | "description": "wordpress monorepo",
2440 | "packagePatterns": ["^@wordpress/"]
2441 | },
2442 | "workbox": {
2443 | "description": "workbox monorepo",
2444 | "sourceUrlPrefixes": ["https://github.com/googlechrome/workbox"]
2445 | }
2446 | },
2447 | "packages": {
2448 | "angularJs": {
2449 | "description": "All angular.js packages",
2450 | "packageNames": [
2451 | "angular",
2452 | "angular-animate",
2453 | "angular-scroll",
2454 | "angular-sanitize"
2455 | ]
2456 | },
2457 | "apollographql": {
2458 | "description": "All packages published by Apollo GraphQL",
2459 | "sourceUrlPrefixes": ["https://github.com/apollographql/"]
2460 | },
2461 | "eslint": {
2462 | "description": "All eslint packages",
2463 | "packageNames": ["babel-eslint"],
2464 | "packagePatterns": ["^eslint"]
2465 | },
2466 | "gatsby": {
2467 | "description": "All packages published by Gatsby",
2468 | "extends": ["monorepo:gatsby"]
2469 | },
2470 | "jsTest": {
2471 | "description": "JavaScript test packages",
2472 | "extends": ["packages:jsUnitTest"]
2473 | },
2474 | "jsUnitTest": {
2475 | "description": "Unit test packages for javascript",
2476 | "packageNames": [
2477 | "coveralls",
2478 | "istanbul",
2479 | "mock-fs",
2480 | "nock",
2481 | "nyc",
2482 | "proxyquire",
2483 | "supertest"
2484 | ],
2485 | "packagePatterns": [
2486 | "^chai",
2487 | "^jest",
2488 | "^mocha",
2489 | "^qunit",
2490 | "^sinon",
2491 | "^should"
2492 | ]
2493 | },
2494 | "linters": {
2495 | "description": "All lint-related packages",
2496 | "extends": ["packages:eslint", "packages:stylelint", "packages:tslint"],
2497 | "packageNames": ["remark-lint"]
2498 | },
2499 | "mapbox": {
2500 | "description": "All mapbox-related packages",
2501 | "packagePatterns": ["^(leaflet|mapbox)"]
2502 | },
2503 | "postcss": {
2504 | "description": "All postcss packages",
2505 | "packageNames": ["postcss"],
2506 | "packagePatterns": ["^postcss-"]
2507 | },
2508 | "stylelint": {
2509 | "description": "All stylelint packages",
2510 | "packagePatterns": ["^stylelint"]
2511 | },
2512 | "test": {"description": "Test packages", "extends": ["packages:unitTest"]},
2513 | "tslint": {
2514 | "description": "All tslint packages",
2515 | "packageNames": ["codelyzer"],
2516 | "packagePatterns": ["\\btslint\\b"]
2517 | },
2518 | "unitTest": {
2519 | "description": "All unit test packages",
2520 | "extends": ["packages:jsUnitTest"]
2521 | }
2522 | },
2523 | "preview": {
2524 | "buildkite": {
2525 | "buildkite": {"enabled": true},
2526 | "description": "Enable buildkite functionality"
2527 | },
2528 | "dockerCompose": {
2529 | "description": "Enable docker compose image updating",
2530 | "docker-compose": {"enabled": true}
2531 | },
2532 | "dockerVersions": {
2533 | "description": "Upgrade docker tags to newer versions",
2534 | "docker": {"major": {"enabled": true}, "minor": {"enabled": true}}
2535 | }
2536 | },
2537 | "schedule": {
2538 | "daily": {"description": "Schedule daily", "schedule": "before 2am"},
2539 | "earlyMondays": {
2540 | "description": "Weekly schedule on early monday mornings",
2541 | "schedule": "before 3am on Monday"
2542 | },
2543 | "monthly": {
2544 | "description": "Schedule monthly",
2545 | "schedule": "before 3am on the first day of the month"
2546 | },
2547 | "nonOfficeHours": {
2548 | "description": "Schedule for typical non-office hours (night time and weekends)",
2549 | "schedule": [
2550 | "after 10pm every weekday",
2551 | "before 5am every weekday",
2552 | "every weekend"
2553 | ]
2554 | },
2555 | "weekdays": {
2556 | "description": "Schedule for weekdays",
2557 | "schedule": "every weekday"
2558 | },
2559 | "weekends": {
2560 | "description": "Schedule for weekends",
2561 | "schedule": "every weekend"
2562 | },
2563 | "weekly": {
2564 | "description": "Schedule weekly",
2565 | "extends": ["schedule:earlyMondays"]
2566 | }
2567 | }
2568 | }
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "extends": [
4 | "config:base",
5 | ":maintainLockFilesWeekly",
6 | ":automergeAll",
7 | ":automergeBranchPush"
8 | ],
9 | "packageRules": [
10 | {
11 | "packagePatterns": ["eslint", "prettier"],
12 | "groupName": "linters"
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/src/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | base: {
3 | description: 'Default base configuration for all languages',
4 | extends: [
5 | ':separateMajorReleases',
6 | ':combinePatchMinorReleases',
7 | ':ignoreUnstable',
8 | ':prImmediately',
9 | ':semanticPrefixFixDepsChoreOthers',
10 | ':updateNotScheduled',
11 | ':automergeDisabled',
12 | ':ignoreModulesAndTests',
13 | ':autodetectPinVersions',
14 | ':prHourlyLimit2',
15 | ':prConcurrentLimit20',
16 | 'group:monorepos',
17 | 'group:recommended',
18 | 'helpers:disableTypesNodeMajor',
19 | ],
20 | },
21 | 'base-js': {
22 | description: 'Base configuration for Javascript (deprecated)',
23 | extends: ['config:base'],
24 | },
25 | 'js-app': {
26 | description: 'Default configuration for webapps',
27 | extends: ['config:base', ':pinAllExceptPeerDependencies'],
28 | },
29 | 'js-lib': {
30 | description: 'Default configuration for libraries',
31 | extends: ['config:base', ':pinOnlyDevDependencies'],
32 | },
33 | semverAllMonthly: {
34 | description:
35 | 'Preserve semver ranges and update everything together once a month',
36 | separateMajorMinor: false,
37 | extends: [
38 | ':preserveSemverRanges',
39 | 'group:all',
40 | 'schedule:monthly',
41 | ':maintainLockFilesMonthly',
42 | ],
43 | lockFileMaintenance: {
44 | extends: ['group:all'],
45 | commitMessageAction: 'Update',
46 | },
47 | },
48 | };
49 |
--------------------------------------------------------------------------------
/src/default.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | description:
3 | 'This presets file is intended for simple and commonly used presets. This is a special preset file, because each element below can be accessed using the `:` prefix e.g `:enableRenovate`.',
4 | enableRenovate: {
5 | description: 'Enable renovate',
6 | enabled: true,
7 | },
8 | disableRenovate: {
9 | description: 'Disable renovate',
10 | enabled: false,
11 | },
12 | disableMajorUpdates: {
13 | description: 'Disables major updates',
14 | major: {
15 | enabled: false,
16 | },
17 | },
18 | ignoreModulesAndTests: {
19 | description:
20 | 'Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories',
21 | ignorePaths: [
22 | '**/node_modules/**',
23 | '**/bower_components/**',
24 | '**/vendor/**',
25 | '**/examples/**',
26 | '**/__tests__/**',
27 | '**/test/**',
28 | '**/tests/**',
29 | '**/__fixtures__/**',
30 | ],
31 | },
32 | includeNodeModules: {
33 | description:
34 | 'Include package.json
files found within node_modules
folders or bower_components
.',
35 | ignorePaths: [],
36 | },
37 | pinVersions: {
38 | description:
39 | 'Use version pinning (maintain a single version only and not semver ranges)',
40 | rangeStrategy: 'pin',
41 | },
42 | preserveSemverRanges: {
43 | description:
44 | 'Preserve (but continue to upgrade) any existing semver ranges',
45 | rangeStrategy: 'replace',
46 | },
47 | pinAllExceptPeerDependencies: {
48 | description:
49 | 'Pin dependency versions for all except peerDependencies
',
50 | packageRules: [
51 | {
52 | packagePatterns: ['*'],
53 | rangeStrategy: 'pin',
54 | },
55 | {
56 | depTypeList: ['engines', 'peerDependencies'],
57 | rangeStrategy: 'auto',
58 | },
59 | ],
60 | },
61 | pinDependencies: {
62 | description: 'Pin dependency versions for dependencies
',
63 | packageRules: [
64 | {
65 | depTypeList: ['dependencies'],
66 | rangeStrategy: 'pin',
67 | },
68 | ],
69 | },
70 | pinDevDependencies: {
71 | description: 'Pin dependency versions for devDependencies
',
72 | packageRules: [
73 | {
74 | depTypeList: ['devDependencies'],
75 | rangeStrategy: 'pin',
76 | },
77 | ],
78 | },
79 | pinOnlyDevDependencies: {
80 | description:
81 | 'Pin dependency versions for devDependencies
and retain semver ranges for others',
82 | packageRules: [
83 | {
84 | packagePatterns: ['*'],
85 | rangeStrategy: 'replace',
86 | },
87 | {
88 | depTypeList: ['devDependencies'],
89 | rangeStrategy: 'pin',
90 | },
91 | {
92 | depTypeList: ['peerDependencies'],
93 | rangeStrategy: 'widen',
94 | },
95 | ],
96 | },
97 | autodetectPinVersions: {
98 | description: 'Autodetect whether to pin dependencies or maintain ranges',
99 | rangeStrategy: 'auto',
100 | },
101 | separateMajorReleases: {
102 | description:
103 | 'Separate major versions of dependencies into individual branches/PRs',
104 | separateMajorMinor: true,
105 | },
106 | separateMultipleMajorReleases: {
107 | description:
108 | 'Separate each available major versions of dependencies into individual branches/PRs',
109 | separateMajorMinor: true,
110 | separateMultipleMajor: true,
111 | },
112 | separatePatchReleases: {
113 | description:
114 | 'Separate patch and minor releases of dependencies into separate PRs',
115 | separateMinorPatch: true,
116 | },
117 | combinePatchMinorReleases: {
118 | description:
119 | 'Do not separate patch and minor upgrades into separate PRs for the same dependency',
120 | separateMinorPatch: false,
121 | },
122 | renovatePrefix: {
123 | description: 'Use renovate/
as prefix for all branch names',
124 | branchPrefix: 'renovate/',
125 | },
126 | semanticCommitType: {
127 | description:
128 | 'Use {{arg0}}
as semantic commit type for commit messages and PR titles',
129 | semanticCommitType: '{{arg0}}',
130 | },
131 | semanticPrefixChore: {
132 | description:
133 | 'Use chore
as semantic commit type for commit messages and PR titles',
134 | extends: [':semanticCommitType(chore)'],
135 | },
136 | semanticPrefixFix: {
137 | description:
138 | 'Use fix
as semantic commit type for commit messages and PR titles',
139 | extends: [':semanticCommitType(fix)'],
140 | },
141 | disablePeerDependencies: {
142 | description:
143 | 'Do not renovate peerDependencies
versions/ranges',
144 | packageRules: [
145 | {
146 | depTypeList: ['peerDependencies'],
147 | enabled: false,
148 | },
149 | ],
150 | },
151 | disableDevDependencies: {
152 | description: 'Do not renovate devDependencies
versions/ranges',
153 | packageRules: [
154 | {
155 | depTypeList: ['devDependencies'],
156 | enabled: false,
157 | },
158 | ],
159 | },
160 | disableDigestUpdates: {
161 | description: 'Disable digest and git hash updates',
162 | digest: {
163 | enabled: false,
164 | },
165 | },
166 | semanticPrefixFixDepsChoreOthers: {
167 | description:
168 | 'If semantic commits detected, use semantic commit type fix
for dependencies and chore
for all others',
169 | packageRules: [
170 | {
171 | packagePatterns: ['*'],
172 | semanticCommitType: 'chore',
173 | },
174 | {
175 | depTypeList: ['dependencies'],
176 | semanticCommitType: 'fix',
177 | },
178 | ],
179 | },
180 | semanticCommitTypeAll: {
181 | description:
182 | 'If semantic commits detected, use semantic commit type {{arg0}}
for all',
183 | packageRules: [
184 | {
185 | packagePatterns: ['*'],
186 | semanticCommitType: '{{arg0}}',
187 | },
188 | ],
189 | },
190 | rebaseStalePrs: {
191 | description:
192 | 'Rebase existing PRs any time the base branch has been updated',
193 | rebaseWhen: 'behind-base-branch',
194 | },
195 | unpublishSafe: {
196 | description:
197 | 'Set a status check to warn when upgrades < 24 hours old might get unpublished',
198 | unpublishSafe: true,
199 | },
200 | unpublishSafeDisabled: {
201 | description:
202 | "Create branches/PRs for dependency upgrades as soon as they're available",
203 | unpublishSafe: false,
204 | },
205 | prImmediately: {
206 | description: 'Raise PRs immediately (after branch is created)',
207 | prCreation: 'immediate',
208 | },
209 | prNotPending: {
210 | description:
211 | 'Wait until branch tests have passed or failed before creating the PR',
212 | prCreation: 'not-pending',
213 | },
214 | prHourlyLimitNone: {
215 | description: 'Removes rate limit for PR creation per hour',
216 | prHourlyLimit: 0,
217 | },
218 | prHourlyLimit1: {
219 | description: 'Rate limit PR creation to a maximum of one per hour',
220 | prHourlyLimit: 1,
221 | },
222 | prHourlyLimit2: {
223 | description: 'Rate limit PR creation to a maximum of two per hour',
224 | prHourlyLimit: 2,
225 | },
226 | prHourlyLimit4: {
227 | description: 'Rate limit PR creation to a maximum of four per hour',
228 | prHourlyLimit: 4,
229 | },
230 | prConcurrentLimitNone: {
231 | description: 'Remove limit for open PRs',
232 | prConcurrentLimit: 0,
233 | },
234 | prConcurrentLimit10: {
235 | description: 'Limit to maximum 10 open PRs',
236 | prConcurrentLimit: 10,
237 | },
238 | prConcurrentLimit20: {
239 | description: 'Limit to maximum 20 open PRs at any time',
240 | prConcurrentLimit: 20,
241 | },
242 | disableRateLimiting: {
243 | description: 'Remove hourly and concurrent rate limits',
244 | prConcurrentLimit: 0,
245 | prHourlyLimit: 0,
246 | },
247 | automergeDisabled: {
248 | description:
249 | 'Disable automerging feature - wait for humans to merge all PRs',
250 | automerge: false,
251 | },
252 | automergeDigest: {
253 | description: 'Automerge digest upgrades if they pass tests',
254 | digest: {
255 | automerge: true,
256 | },
257 | },
258 | automergePatch: {
259 | description: 'Automerge patch upgrades if they pass tests',
260 | separateMinorPatch: true,
261 | patch: {
262 | automerge: true,
263 | },
264 | pin: {
265 | automerge: true,
266 | },
267 | lockFileMaintenance: {
268 | automerge: true,
269 | },
270 | },
271 | automergeMinor: {
272 | description: 'Automerge patch and minor upgrades if they pass tests',
273 | minor: {
274 | automerge: true,
275 | },
276 | patch: {
277 | automerge: true,
278 | },
279 | pin: {
280 | automerge: true,
281 | },
282 | lockFileMaintenance: {
283 | automerge: true,
284 | },
285 | },
286 | automergeMajor: {
287 | description: 'Automerge all upgrades (including major) if they pass tests',
288 | automerge: true,
289 | },
290 | automergeAll: {
291 | description: 'Automerge all upgrades (including major) if they pass tests',
292 | automerge: true,
293 | },
294 | automergeBranch: {
295 | description:
296 | 'If automerging, push the new commit directly to base branch (no PR)',
297 | automergeType: 'branch',
298 | },
299 | automergeBranchMergeCommit: {
300 | description:
301 | 'If automerging, perform a merge-commit on branch (no PR) - deprecated, use :automergeBranch instead',
302 | automergeType: 'branch-merge-commit',
303 | },
304 | automergeBranchPush: {
305 | description:
306 | 'If automerging, push the new commit directly to base branch (no PR) - deprecated, use :automergeBranch instead',
307 | automergeType: 'branch-push',
308 | },
309 | automergePr: {
310 | description: 'Raise a PR first before any automerging',
311 | automergeType: 'pr',
312 | },
313 | automergeRequireAllStatusChecks: {
314 | description: 'Require all status checks to pass before any automerging',
315 | requiredStatusChecks: [],
316 | },
317 | skipStatusChecks: {
318 | description: 'Skip status checks and automerge right away',
319 | requiredStatusChecks: null,
320 | },
321 | maintainLockFilesDisabled: {
322 | description:
323 | 'Update existing lock files only when package.json
is modified',
324 | lockFileMaintenance: {
325 | enabled: false,
326 | },
327 | },
328 | pinDigestsDisabled: {
329 | description: 'Disable pinning of docker dependency digests',
330 | pinDigests: false,
331 | },
332 | maintainLockFilesWeekly: {
333 | description: 'Run lock file maintenance (updates) early Monday mornings',
334 | lockFileMaintenance: {
335 | enabled: true,
336 | extends: 'schedule:weekly',
337 | },
338 | },
339 | maintainLockFilesMonthly: {
340 | description:
341 | 'Run lock file maintenance (updates) on the first day of each month',
342 | lockFileMaintenance: {
343 | enabled: true,
344 | extends: 'schedule:monthly',
345 | },
346 | },
347 | ignoreUnstable: {
348 | description:
349 | 'Upgrade to unstable versions only if the existing version is unstable',
350 | ignoreUnstable: true,
351 | },
352 | respectLatest: {
353 | description: 'Upgrade versions up to the "latest" tag in npm registry',
354 | respectLatest: true,
355 | },
356 | updateNotScheduled: {
357 | description: 'Keep existing branches updated even when not scheduled',
358 | updateNotScheduled: true,
359 | },
360 | noUnscheduledUpdates: {
361 | description: 'Make no updates to branches when not scheduled',
362 | updateNotScheduled: false,
363 | },
364 | automergeLinters: {
365 | description: 'Update lint packages automatically if tests pass',
366 | packageRules: [
367 | {
368 | extends: ['packages:linters'],
369 | automerge: true,
370 | },
371 | ],
372 | },
373 | automergeTesters: {
374 | description: 'Update testing packages automatically if tests pass',
375 | packageRules: [
376 | {
377 | extends: ['packages:test'],
378 | automerge: true,
379 | },
380 | ],
381 | },
382 | automergeTypes: {
383 | description: 'Update @types/* packages automatically if tests pass',
384 | packageRules: [
385 | {
386 | packagePatterns: ['^@types/'],
387 | automerge: true,
388 | },
389 | ],
390 | },
391 | doNotPinPackage: {
392 | description: 'Disable version pinning for {{arg0}}
',
393 | packageRules: [
394 | {
395 | packageNames: ['{{arg0}}'],
396 | rangeStrategy: 'replace',
397 | },
398 | ],
399 | },
400 | pinSkipCi: {
401 | description: 'Add [skip ci] to commit message body whenever pinning',
402 | pin: {
403 | commitBody: '[skip ci]',
404 | },
405 | },
406 | gitSignOff: {
407 | description: 'Append git Signed-off-by signature to git commits.',
408 | commitBody: 'Signed-off-by: {{{gitAuthor}}}',
409 | },
410 | npm: {
411 | description: 'Keep package.json npm dependencies updated',
412 | npm: {
413 | enabled: true,
414 | },
415 | },
416 | gomod: {
417 | description: 'Enable Go modules support',
418 | gomod: {
419 | enabled: true,
420 | },
421 | },
422 | onlyNpm: {
423 | description: 'Renovate only npm dependencies',
424 | docker: {
425 | enabled: false,
426 | },
427 | meteor: {
428 | enabled: false,
429 | },
430 | },
431 | docker: {
432 | description: 'Keep Dockerfile FROM sources updated',
433 | docker: {
434 | enabled: true,
435 | },
436 | },
437 | meteor: {
438 | description: 'Keep Meteor Npm.depends packages updated',
439 | meteor: {
440 | enabled: true,
441 | },
442 | },
443 | group: {
444 | description: 'Group {{arg1}} packages into same branch/PR',
445 | packageRules: [
446 | {
447 | extends: ['{{arg0}}'],
448 | groupName: '{{arg1}}',
449 | },
450 | ],
451 | },
452 | label: {
453 | description: 'Apply label {{arg0}}
to PRs',
454 | labels: ['{{arg0}}'],
455 | },
456 | labels: {
457 | description:
458 | 'Apply labels {{arg0}}
and {{arg1}}
to PRs',
459 | labels: ['{{arg0}}', '{{arg1}}'],
460 | },
461 | assignee: {
462 | description: 'Assign PRs to {{arg0}}
',
463 | assignees: ['{{arg0}}'],
464 | },
465 | reviewer: {
466 | description: 'Add {{arg0}}
as reviewer for PRs',
467 | reviewers: ['{{arg0}}'],
468 | },
469 | assignAndReview: {
470 | description: 'Set {{arg0}}
as assignee and reviewer of PRs',
471 | extends: [':assignee({{arg0}})', ':reviewer({{arg0}})'],
472 | },
473 | enableVulnerabilityAlerts: {
474 | description: 'Raise PR when vulnerability alerts are detected',
475 | vulnerabilityAlerts: {
476 | enabled: true,
477 | },
478 | },
479 | enableVulnerabilityAlertsWithLabel: {
480 | description:
481 | 'Raise PR when vulnerability alerts are detected with label {{arg0}}
',
482 | vulnerabilityAlerts: {
483 | enabled: true,
484 | labels: ['{{arg0}}'],
485 | },
486 | },
487 | disableVulnerabilityAlerts: {
488 | description: 'Disable vulnerability alerts completely',
489 | vulnerabilityAlerts: {
490 | enabled: false,
491 | },
492 | },
493 | semanticCommits: {
494 | description: 'Use semantic prefixes for commit messages and PR titles',
495 | semanticCommits: true,
496 | },
497 | semanticCommitsDisabled: {
498 | description: 'Disable semantic prefixes for commit messages and PR titles',
499 | semanticCommits: false,
500 | },
501 | disableLockFiles: {
502 | description: 'Disable lock file updates',
503 | updateLockFiles: false,
504 | },
505 | semanticCommitScope: {
506 | description:
507 | 'Use semantic commit scope {{arg0}}
for all commits and PR titles',
508 | semanticCommitScope: '{{arg0}}',
509 | },
510 | semanticCommitScopeDisabled: {
511 | description: 'Disable semantic commit scope for all commits and PR titles',
512 | semanticCommitScope: null,
513 | },
514 | widenPeerDependencies: {
515 | description:
516 | 'Always widen peerDependencies semver ranges when updating, instead of replacing',
517 | packageRules: [
518 | {
519 | depTypeList: ['peerDependencies'],
520 | rangeStrategy: 'widen',
521 | },
522 | ],
523 | },
524 | masterIssue: {
525 | description: 'Enable Renovate master issue creation',
526 | masterIssue: true,
527 | },
528 | masterIssueApproval: {
529 | description: 'Enable Renovate master issue approval workflow',
530 | masterIssueApproval: true,
531 | },
532 | timezone: {
533 | description: 'Evaluate schedules according to timezone {{arg0}}',
534 | timezone: '{{arg0}}',
535 | },
536 | pathSemanticCommitType: {
537 | description:
538 | 'Use semanticCommitType {{arg0}} for all package files matching path {{arg1}}',
539 | packageRules: [
540 | {
541 | paths: ['{{arg0}}'],
542 | semanticCommitType: '{{arg1}}',
543 | },
544 | ],
545 | },
546 | followTag: {
547 | description:
548 | 'For package {{arg0}}
, strictly follow release tag {{arg1}}
',
549 | packageRules: [
550 | {
551 | packageNames: ['{{arg0}}'],
552 | followTag: '{{arg1}}',
553 | },
554 | ],
555 | },
556 | githubComToken: {
557 | description: 'Use provided token for github.com lookups',
558 | hostRules: [
559 | {
560 | domainName: 'github.com',
561 | encrypted: {
562 | token: '{{arg0}}',
563 | },
564 | },
565 | ],
566 | },
567 | base: {
568 | description: 'deprecated alias for config:base',
569 | extends: ['config:base'],
570 | },
571 | app: {
572 | description: 'deprecated alias for config:js-app',
573 | extends: ['config:js-app'],
574 | },
575 | library: {
576 | description: 'deprecated alias for config:js-lib',
577 | extends: ['config:js-lib'],
578 | },
579 | };
580 |
--------------------------------------------------------------------------------
/src/docker.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | disable: {
3 | docker: {
4 | enabled: false,
5 | },
6 | 'docker-compose': {
7 | enabled: false,
8 | },
9 | circleci: {
10 | enabled: false,
11 | },
12 | },
13 | enableMajor: {
14 | docker: {
15 | major: {
16 | enabled: true,
17 | },
18 | },
19 | },
20 | disableMajor: {
21 | docker: {
22 | major: {
23 | enabled: false,
24 | },
25 | },
26 | },
27 | pinDigests: {
28 | description: 'Pin Docker digests',
29 | docker: {
30 | pinDigests: true,
31 | },
32 | },
33 | };
34 |
--------------------------------------------------------------------------------
/src/group.js:
--------------------------------------------------------------------------------
1 | const monorepos = require('./monorepo');
2 |
3 | const staticGroups = {
4 | all: {
5 | description: 'Group all updates together',
6 | groupName: 'all dependencies',
7 | separateMajorMinor: false,
8 | groupSlug: 'all',
9 | packageRules: [
10 | {
11 | packagePatterns: ['*'],
12 | groupName: 'all dependencies',
13 | groupSlug: 'all',
14 | },
15 | ],
16 | lockFileMaintenance: {
17 | enabled: false,
18 | },
19 | },
20 | allNonMajor: {
21 | description: 'Group all minor and patch updates together',
22 | packageRules: [
23 | {
24 | packagePatterns: ['*'],
25 | minor: {
26 | groupName: 'all non-major dependencies',
27 | groupSlug: 'all-minor-patch',
28 | },
29 | },
30 | ],
31 | },
32 | recommended: {
33 | description:
34 | 'Use curated list of recommended non-monorepo package groupings',
35 | extends: [
36 | 'group:allApollographql',
37 | 'group:fortawesome',
38 | 'group:goOpenapi',
39 | 'group:fusionjs',
40 | 'group:hibernateCore',
41 | 'group:hibernateValidator',
42 | 'group:hibernateOgm',
43 | 'group:hibernateCommons',
44 | 'group:illuminate',
45 | 'group:jekyllEcosystem',
46 | 'group:polymer',
47 | 'group:rubyOmniauth',
48 | 'group:socketio',
49 | 'group:springAmqp',
50 | 'group:springAndroid',
51 | 'group:springBatch',
52 | 'group:springBoot',
53 | 'group:springCloud',
54 | 'group:springCore',
55 | 'group:springData',
56 | 'group:springHateoas',
57 | 'group:springIntegration',
58 | 'group:springKafka',
59 | 'group:springLdap',
60 | 'group:springMobile',
61 | 'group:springOsgi',
62 | 'group:springRestDocs',
63 | 'group:springRoo',
64 | 'group:springScala',
65 | 'group:springSecurity',
66 | 'group:springSession',
67 | 'group:springShell',
68 | 'group:springSocial',
69 | 'group:springStatemachine',
70 | 'group:springWebflow',
71 | 'group:springWs',
72 | 'group:symfony',
73 | ],
74 | ignoreDeps: [],
75 | },
76 | allApollographql: {
77 | description: 'Group all packages published by Apollo GraphQL together',
78 | packageRules: [
79 | {
80 | extends: 'packages:apollographql',
81 | groupName: 'Apollo GraphQL packages',
82 | },
83 | ],
84 | },
85 | definitelyTyped: {
86 | description: 'Group all @types packages together',
87 | packageRules: [
88 | {
89 | groupName: 'definitelyTyped',
90 | packagePatterns: ['^@types/'],
91 | },
92 | ],
93 | },
94 | dotNetCore: {
95 | description: '.NET Core Docker containers',
96 | packageRules: [
97 | {
98 | datasources: ['docker'],
99 | packagePatterns: ['^mcr.microsoft.com/dotnet/core/'],
100 | groupName: '.NET Core Docker containers',
101 | },
102 | ],
103 | },
104 | fortawesome: {
105 | description: 'Group all packages by Font Awesome together',
106 | packageRules: [
107 | {
108 | groupName: 'Font Awesome',
109 | packagePatterns: ['^@fortawesome/'],
110 | },
111 | ],
112 | },
113 | fusionjs: {
114 | description: 'Fusion.js packages',
115 | packageNames: [
116 | 'fusion-cli',
117 | 'fusion-core',
118 | 'fusion-test-utils',
119 | 'fusion-tokens',
120 | ],
121 | packagePatterns: ['^fusion-plugin-*', '^fusion-react*', '^fusion-apollo*'],
122 | },
123 | illuminate: {
124 | description: 'Group PHP illuminate packages together',
125 | packageRules: [
126 | {
127 | packagePatterns: ['^illuminate/'],
128 | groupName: 'illuminate packages',
129 | groupSlug: 'illuminate',
130 | },
131 | ],
132 | },
133 | symfony: {
134 | description: 'Group PHP symfony packages together',
135 | packageRules: [
136 | {
137 | packagePatterns: ['^symfony/'],
138 | groupName: 'symfony packages',
139 | groupSlug: 'symfony',
140 | },
141 | ],
142 | },
143 | polymer: {
144 | description: 'Group all @polymer packages together',
145 | packageRules: [
146 | {
147 | groupName: 'polymer packages',
148 | packagePatterns: ['^@polymer/'],
149 | },
150 | ],
151 | },
152 | hibernateCore: {
153 | description: 'Group Java Hibernate Core packages',
154 | packageRules: [
155 | {
156 | packagePatterns: ['^org.hibernate:'],
157 | groupName: 'hibernate core',
158 | },
159 | ],
160 | },
161 | hibernateValidator: {
162 | description: 'Group Java Hibernate Validator packages',
163 | packageRules: [
164 | {
165 | packagePatterns: ['^org.hibernate.validator:'],
166 | groupName: 'hibernate validator',
167 | },
168 | ],
169 | },
170 | hibernateOgm: {
171 | description: 'Group Java Hibernate OGM packages',
172 | packageRules: [
173 | {
174 | packagePatterns: ['^org.hibernate.ogm:'],
175 | groupName: 'hibernate ogm',
176 | },
177 | ],
178 | },
179 | hibernateCommons: {
180 | description: 'Group Java Hibernate Commons packages',
181 | packageRules: [
182 | {
183 | packagePatterns: ['^org.hibernate.common:'],
184 | groupName: 'hibernate commons',
185 | },
186 | ],
187 | },
188 | springAmqp: {
189 | description: 'Group Java Spring AMQP packages',
190 | packageRules: [
191 | {
192 | groupName: 'spring amqp',
193 | packagePatterns: ['^org.springframework.amqp:'],
194 | },
195 | ],
196 | },
197 | springAndroid: {
198 | description: 'Group Java Spring Android packages',
199 | packageRules: [
200 | {
201 | groupName: 'spring android',
202 | packagePatterns: ['^org.springframework.android:'],
203 | },
204 | ],
205 | },
206 | springBatch: {
207 | description: 'Group Java Spring Batch packages',
208 | packageRules: [
209 | {
210 | groupName: 'spring batch',
211 | packagePatterns: ['^org.springframework.batch:'],
212 | },
213 | ],
214 | },
215 | springBoot: {
216 | description: 'Group Java Spring Boot packages',
217 | packageRules: [
218 | {
219 | groupName: 'spring boot',
220 | packagePatterns: ['^org.springframework.boot:'],
221 | },
222 | ],
223 | },
224 | springCloud: {
225 | description: 'Group Java Spring Cloud packages',
226 | packageRules: [
227 | {
228 | groupName: 'spring cloud',
229 | packagePatterns: ['^org.springframework.cloud:'],
230 | },
231 | ],
232 | },
233 | springCore: {
234 | description: 'Group Java Spring Core packages',
235 | packageRules: [
236 | {
237 | groupName: 'spring core',
238 | packagePatterns: ['^org.springframework:'],
239 | },
240 | ],
241 | },
242 | springData: {
243 | description: 'Group Java Spring Data packages',
244 | packageRules: [
245 | {
246 | groupName: 'spring data',
247 | packagePatterns: ['^org.springframework.data:'],
248 | },
249 | ],
250 | },
251 | springHateoas: {
252 | description: 'Group Java Spring HATEOAS packages',
253 | packageRules: [
254 | {
255 | groupName: 'spring hateoas',
256 | packagePatterns: ['^org.springframework.hateoas:'],
257 | },
258 | ],
259 | },
260 | springIntegration: {
261 | description: 'Group Java Spring Integration packages',
262 | packageRules: [
263 | {
264 | groupName: 'spring integration',
265 | packagePatterns: ['^org.springframework.integration:'],
266 | },
267 | ],
268 | },
269 | springKafka: {
270 | description: 'Group Java Spring Kafka packages',
271 | packageRules: [
272 | {
273 | groupName: 'spring kafka',
274 | packagePatterns: ['^org.springframework.kafka:'],
275 | },
276 | ],
277 | },
278 | springLdap: {
279 | description: 'Group Java Spring LDAP packages',
280 | packageRules: [
281 | {
282 | groupName: 'spring ldap',
283 | packagePatterns: ['^org.springframework.ldap:'],
284 | },
285 | ],
286 | },
287 | springMobile: {
288 | description: 'Group Java Spring Mobile packages',
289 | packageRules: [
290 | {
291 | groupName: 'spring mobile',
292 | packagePatterns: ['^org.springframework.mobile:'],
293 | },
294 | ],
295 | },
296 | springOsgi: {
297 | description: 'Group Java Spring OSGi packages',
298 | packageRules: [
299 | {
300 | groupName: 'spring osgi',
301 | packagePatterns: ['^org.springframework.osgi:'],
302 | },
303 | ],
304 | },
305 | springRestDocs: {
306 | description: 'Group Java Spring REST Docs packages',
307 | packageRules: [
308 | {
309 | groupName: 'spring restdocs',
310 | packagePatterns: ['^org.springframework.restdocs:'],
311 | },
312 | ],
313 | },
314 | springRoo: {
315 | description: 'Group Java Spring Roo packages',
316 | packageRules: [
317 | {
318 | groupName: 'spring roo',
319 | packagePatterns: ['^org.springframework.roo:'],
320 | },
321 | ],
322 | },
323 | springScala: {
324 | description: 'Group Java Spring Scala packages',
325 | packageRules: [
326 | {
327 | groupName: 'spring scala',
328 | packagePatterns: ['^org.springframework.scala:'],
329 | },
330 | ],
331 | },
332 | springSecurity: {
333 | description: 'Group Java Spring Security packages',
334 | packageRules: [
335 | {
336 | groupName: 'spring security',
337 | packagePatterns: ['^org.springframework.security:'],
338 | },
339 | ],
340 | },
341 | springSession: {
342 | description: 'Group Java Spring Session packages',
343 | packageRules: [
344 | {
345 | groupName: 'spring session',
346 | packagePatterns: ['^org.springframework.session:'],
347 | },
348 | ],
349 | },
350 | springShell: {
351 | description: 'Group Java Spring Shell packages',
352 | packageRules: [
353 | {
354 | groupName: 'spring shell',
355 | packagePatterns: ['^org.springframework.shell:'],
356 | },
357 | ],
358 | },
359 | springSocial: {
360 | description: 'Group Java Spring Social packages',
361 | packageRules: [
362 | {
363 | groupName: 'spring social',
364 | packagePatterns: ['^org.springframework.social:'],
365 | },
366 | ],
367 | },
368 | springStatemachine: {
369 | description: 'Group Java Spring Statemachine packages',
370 | packageRules: [
371 | {
372 | groupName: 'spring statemachine',
373 | packagePatterns: ['^org.springframework.statemachine:'],
374 | },
375 | ],
376 | },
377 | springWebflow: {
378 | description: 'Group Java Spring WebFlow packages',
379 | packageRules: [
380 | {
381 | groupName: 'spring webflow',
382 | packagePatterns: ['^org.springframework.webflow:'],
383 | },
384 | ],
385 | },
386 | springWs: {
387 | description: 'Group Java Spring WS packages',
388 | packageRules: [
389 | {
390 | groupName: 'spring ws',
391 | packagePatterns: ['^org.springframework.ws:'],
392 | },
393 | ],
394 | },
395 | socketio: {
396 | description: 'Group socket.io packages',
397 | packageRules: [
398 | {
399 | groupName: 'socket.io packages',
400 | packagePatterns: ['^socket.io'],
401 | },
402 | ],
403 | },
404 | postcss: {
405 | description: 'Group postcss packages together',
406 | packageRules: [
407 | {
408 | extends: 'packages:postcss',
409 | groupName: 'postcss packages',
410 | },
411 | ],
412 | },
413 | jekyllEcosystem: {
414 | description: 'Group jekyll and related ruby packages together',
415 | packageRules: [
416 | {
417 | sourceUrlPrefixes: [
418 | 'https://github.com/jekyll/',
419 | 'https://github.com/github/pages-gem',
420 | ],
421 | groupName: 'jekyll ecosystem packages',
422 | },
423 | ],
424 | },
425 | rubyOmniauth: {
426 | description: 'Group omniauth packages together',
427 | packageRules: [
428 | {
429 | datasources: ['rubygems'],
430 | packagePatterns: ['^omniauth'],
431 | groupName: 'omniauth packages',
432 | },
433 | ],
434 | },
435 | goOpenapi: {
436 | description: 'Group go-openapi packages together',
437 | packageRules: [
438 | {
439 | datasources: ['go'],
440 | groupName: 'go-openapi packages',
441 | groupSlug: 'go-openapi',
442 | packagePatterns: ['^github.com/go-openapi/'],
443 | },
444 | ],
445 | },
446 | linters: {
447 | description: 'Group various lint packages together',
448 | packageRules: [
449 | {
450 | extends: 'packages:linters',
451 | groupName: 'linters',
452 | },
453 | ],
454 | },
455 | jsUnitTest: {
456 | description: 'Group JS unit test packages together',
457 | packageRules: [
458 | {
459 | extends: 'packages:jsUnitTest',
460 | groupName: 'JS unit test packages',
461 | },
462 | ],
463 | },
464 | jsUnitTestNonMajor: {
465 | description: 'Group JS unit test packages together',
466 | packageRules: [
467 | {
468 | extends: 'packages:jsUnitTest',
469 | minor: {
470 | groupName: 'JS unit test packages',
471 | },
472 | },
473 | ],
474 | },
475 | unitTest: {
476 | description: 'Group all unit test packages together',
477 | packageRules: [
478 | {
479 | extends: 'packages:unitTest',
480 | groupName: 'unit test packages',
481 | },
482 | ],
483 | },
484 | unitTestNonMajor: {
485 | description: 'Group all unit test packages together',
486 | packageRules: [
487 | {
488 | extends: 'packages:unitTest',
489 | minor: {
490 | groupName: 'unit test packages',
491 | },
492 | },
493 | ],
494 | },
495 | jsTest: {
496 | description: 'Group JS test packages together',
497 | packageRules: [
498 | {
499 | extends: 'packages:jsTest',
500 | groupName: 'JS test packages',
501 | },
502 | ],
503 | },
504 | jsTestMonMajor: {
505 | description: 'Group non-major JS test package updates together',
506 | packageRules: [
507 | {
508 | extends: 'packages:jsTest',
509 | minor: {
510 | groupName: 'JS test packages',
511 | },
512 | },
513 | ],
514 | },
515 | test: {
516 | description: 'Group all test packages together',
517 | packageRules: [
518 | {
519 | extends: 'packages:test',
520 | groupName: 'test packages',
521 | },
522 | ],
523 | },
524 | testNonMajor: {
525 | description: 'Group all non-major test package updates together',
526 | packageRules: [
527 | {
528 | extends: 'packages:test',
529 | minor: {
530 | groupName: 'test packages',
531 | },
532 | },
533 | ],
534 | },
535 | };
536 |
537 | const config = { ...staticGroups };
538 |
539 | const monorepoNames = [];
540 | for (const monorepo of Object.keys(monorepos)) {
541 | const name = `${monorepo}Monorepo`;
542 | monorepoNames.push(`group:${name}`);
543 | config[name] = {
544 | packageRules: [
545 | {
546 | description: `Group packages from ${monorepo} monorepo together`,
547 | extends: `monorepo:${monorepo}`,
548 | groupName: `${monorepo} monorepo`,
549 | },
550 | ],
551 | };
552 | }
553 | config.monorepos = {
554 | description: 'Group known monorepo packages together',
555 | ignoreDeps: [],
556 | extends: monorepoNames,
557 | };
558 |
559 | module.exports = config;
560 |
--------------------------------------------------------------------------------
/src/helpers.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | disableTypesNodeMajor: {
3 | packageRules: [
4 | {
5 | packageNames: ['@types/node'],
6 | major: {
7 | enabled: false,
8 | },
9 | },
10 | ],
11 | },
12 | oddIsUnstable: {
13 | description: 'DEPRECATED: Odd version numbers are classified as unstable',
14 | },
15 | oddIsUnstablePackages: {
16 | description:
17 | 'DEPRECATED: Preconfigure dependencies where an odd major version indicates unstable (Docker-only)',
18 | },
19 | followTypescriptNext: {
20 | description:
21 | 'Keep version in sync with the next
tag',
22 | extends: [':followTag(typescript, next)'],
23 | },
24 | followTypescriptRc: {
25 | description:
26 | 'Keep version in sync with the rc
tag',
27 | extends: [':followTag(typescript, rc)'],
28 | },
29 | };
30 |
--------------------------------------------------------------------------------
/src/monorepo.js:
--------------------------------------------------------------------------------
1 | const is = require('@sindresorhus/is');
2 |
3 | const repoGroups = {
4 | 'ag-grid': 'https://github.com/ag-grid/ag-grid',
5 | 'arcus event-grid': 'https://github.com/arcus-azure/arcus.eventgrid',
6 | 'arcus security': 'https://github.com/arcus-azure/arcus.security',
7 | 'arcus messaging': 'https://github.com/arcus-azure/arcus.messaging',
8 | 'arcus observability': 'https://github.com/arcus-azure/arcus.observability',
9 | 'arcus webapi': 'https://github.com/arcus-azure/arcus.webapi',
10 | 'arcus background-jobs':
11 | 'https://github.com/arcus-azure/arcus.backgroundjobs',
12 | 'algolia-react-instantsearch':
13 | 'https://github.com/algolia/react-instantsearch',
14 | 'apollo-server': 'https://github.com/apollographql/apollo-server',
15 | 'aspnet AspNetWebStack': 'https://github.com/aspnet/AspNetWebStack',
16 | 'aspnet Extensions': 'https://github.com/aspnet/Extensions',
17 | 'aws-cdk': 'https://github.com/aws/aws-cdk',
18 | 'azure azure-libraries-for-net':
19 | 'https://github.com/Azure/azure-libraries-for-net',
20 | 'azure azure-sdk-for-net': 'https://github.com/Azure/azure-sdk-for-net',
21 | 'azure azure-storage-net': 'https://github.com/Azure/azure-storage-net',
22 | 'bugsnag-js': 'https://github.com/bugsnag/bugsnag-js',
23 | 'devextreme-reactive': 'https://github.com/DevExpress/devextreme-reactive',
24 | 'electron-forge': 'https://github.com/electron-userland/electron-forge',
25 | 'ember-decorators': 'https://github.com/ember-decorators/ember-decorators',
26 | 'graphql-modules': 'https://github.com/Urigo/graphql-modules',
27 | 'ionic-native': 'https://github.com/ionic-team/ionic-native',
28 | 'mdc-react': 'material-components/material-components-web-react',
29 | 'ngx-formly': 'https://github.com/ngx-formly/ngx-formly',
30 | 'ngxs-store': 'https://github.com/ngxs/store',
31 | 'react-apollo': 'https://github.com/apollographql/react-apollo',
32 | 'react-dnd': 'https://github.com/react-dnd/react-dnd',
33 | 'react-navigation': 'https://github.com/react-navigation/react-navigation',
34 | 'reactivestack-cookies': 'https://github.com/reactivestack/cookies',
35 | 'semantic-release': 'https://github.com/semantic-release/',
36 | 'telus-tds': 'https://github.com/telusdigital/tds',
37 | 'typescript-eslint': 'https://github.com/typescript-eslint/typescript-eslint',
38 | 'typography-js': 'https://github.com/KyleAMathews/typography.js',
39 | 'vue-cli': 'https://github.com/vuejs/vue-cli',
40 | accounts: 'https://github.com/accounts-js/accounts',
41 | angular1: 'https://github.com/angular/angular.js',
42 | angular: 'https://github.com/angular/angular',
43 | angularcli: 'https://github.com/angular/angular-cli',
44 | apolloclient: 'https://github.com/apollographql/apollo-client',
45 | apollolink: 'https://github.com/apollographql/apollo-link',
46 | awsappsync: 'https://github.com/awslabs/aws-mobile-appsync-sdk-js',
47 | babel: 'https://github.com/babel/babel',
48 | baset: 'https://github.com/igmat/baset',
49 | brave: 'https://github.com/openzipkin/brave',
50 | capacitor: 'https://github.com/ionic-team/capacitor',
51 | clarity: 'https://github.com/vmware/clarity',
52 | commitlint: 'https://github.com/conventional-changelog/commitlint',
53 | dropwizard: 'https://github.com/dropwizard/dropwizard',
54 | emotion: 'https://github.com/emotion-js/emotion',
55 | expo: 'https://github.com/expo/expo',
56 | fimbullinter: 'https://github.com/fimbullinter/wotan',
57 | flopflip: 'https://github.com/tdeekens/flopflip',
58 | framework7: 'https://github.com/framework7io/framework7',
59 | gatsby: 'https://github.com/gatsbyjs/gatsby',
60 | graphqlcodegenerator: [
61 | 'https://github.com/dotansimha/graphql-code-generator',
62 | 'https://github.com/dotansimha/graphql-codegen',
63 | ],
64 | 'graphql-toolkit': 'https://github.com/ardatan/graphql-toolkit',
65 | hamcrest: 'https://github.com/hamcrest/JavaHamcrest',
66 | hapijs: 'https://github.com/hapijs',
67 | infrastructure: 'https://github.com/instructure/instructure-ui',
68 | jasmine: 'https://github.com/jasmine/jasmine',
69 | jersey: 'https://github.com/eclipse-ee4j/jersey',
70 | jest: 'https://github.com/facebook/jest',
71 | lerna: 'https://github.com/lerna/lerna',
72 | lingui: 'https://github.com/lingui/js-lingui',
73 | lodash: 'https://github.com/lodash/',
74 | loopback: 'https://github.com/strongloop/loopback-next',
75 | material: 'https://github.com/material-components/material-components-web',
76 | mdx: 'https://github.com/mdx-js/mdx',
77 | mui: 'https://github.com/mui-org/material-ui',
78 | nest: 'https://github.com/nestjs/nest',
79 | neutrino: [
80 | 'https://github.com/neutrinojs/neutrino',
81 | 'https://github.com/mozilla-neutrino/neutrino-dev',
82 | ],
83 | nextjs: 'https://github.com/zeit/next.js',
84 | ngrx: 'https://github.com/ngrx/',
85 | nrwl: 'https://github.com/nrwl/',
86 | nuxtjs: 'https://github.com/nuxt/nuxt.js',
87 | openfeign: 'https://github.com/OpenFeign/feign',
88 | picasso: 'https://github.com/qlik-oss/picasso.js',
89 | pollyjs: 'https://github.com/Netflix/pollyjs',
90 | pouchdb: 'https://github.com/pouchdb/pouchdb',
91 | react: 'https://github.com/facebook/react',
92 | reactrouter: 'https://github.com/ReactTraining/react-router',
93 | reakit: 'https://github.com/reakit/reakit',
94 | remark: 'https://github.com/remarkjs/remark',
95 | router5: 'https://github.com/router5/router5',
96 | sentry: 'https://github.com/getsentry/sentry-javascript',
97 | springfox: 'https://github.com/springfox/springfox',
98 | sanity: 'https://github.com/sanity-io/sanity',
99 | storybook: 'https://github.com/storybookjs/storybook',
100 | strapi: 'https://github.com/strapi/strapi',
101 | stryker: 'https://github.com/stryker-mutator/stryker',
102 | surveyjs: 'https://github.com/surveyjs/surveyjs',
103 | Swashbuckle: 'https://github.com/domaindrivendev/Swashbuckle.AspNetCore',
104 | treat: 'https://github.com/seek-oss/treat',
105 | typefaces: 'https://github.com/KyleAMathews/typefaces',
106 | uppy: 'https://github.com/transloadit/uppy',
107 | vue: 'https://github.com/vuejs/vue',
108 | vuepress: 'https://github.com/vuejs/vuepress',
109 | webdriverio: 'https://github.com/webdriverio/webdriverio',
110 | workbox: 'https://github.com/googlechrome/workbox',
111 | };
112 |
113 | const patternGroups = {
114 | babel6: '^babel6$',
115 | wordpress: '^@wordpress/',
116 | angularmaterial: ['^@angular/material', '^@angular/cdk'],
117 | 'aws-java-sdk': '^com.amazonaws:aws-java-sdk-',
118 | };
119 |
120 | const config = {};
121 | for (const [name, value] of Object.entries(repoGroups)) {
122 | config[name] = {
123 | description: `${name} monorepo`,
124 | sourceUrlPrefixes: is.array(value) ? value : [value],
125 | };
126 | }
127 | for (const [name, value] of Object.entries(patternGroups)) {
128 | config[name] = {
129 | description: `${name} monorepo`,
130 | packagePatterns: is.array(value) ? value : [value],
131 | };
132 | }
133 |
134 | module.exports = config;
135 |
--------------------------------------------------------------------------------
/src/packages.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | angularJs: {
3 | description: 'All angular.js packages',
4 | packageNames: [
5 | 'angular',
6 | 'angular-animate',
7 | 'angular-scroll',
8 | 'angular-sanitize',
9 | ],
10 | },
11 | apollographql: {
12 | description: 'All packages published by Apollo GraphQL',
13 | sourceUrlPrefixes: ['https://github.com/apollographql/'],
14 | },
15 | mapbox: {
16 | description: 'All mapbox-related packages',
17 | packagePatterns: ['^(leaflet|mapbox)'],
18 | },
19 | eslint: {
20 | description: 'All eslint packages',
21 | packageNames: ['babel-eslint'],
22 | packagePatterns: ['^eslint'],
23 | },
24 | stylelint: {
25 | description: 'All stylelint packages',
26 | packagePatterns: ['^stylelint'],
27 | },
28 | tslint: {
29 | description: 'All tslint packages',
30 | packageNames: ['codelyzer'],
31 | packagePatterns: ['\\btslint\\b'],
32 | },
33 | linters: {
34 | description: 'All lint-related packages',
35 | extends: ['packages:eslint', 'packages:stylelint', 'packages:tslint'],
36 | packageNames: ['remark-lint'],
37 | },
38 | postcss: {
39 | description: 'All postcss packages',
40 | packageNames: ['postcss'],
41 | packagePatterns: ['^postcss-'],
42 | },
43 | jsUnitTest: {
44 | description: 'Unit test packages for javascript',
45 | packageNames: [
46 | 'coveralls',
47 | 'istanbul',
48 | 'mock-fs',
49 | 'nock',
50 | 'nyc',
51 | 'proxyquire',
52 | 'supertest',
53 | ],
54 | packagePatterns: [
55 | '^chai',
56 | '^jest',
57 | '^mocha',
58 | '^qunit',
59 | '^sinon',
60 | '^should',
61 | ],
62 | },
63 | unitTest: {
64 | description: 'All unit test packages',
65 | extends: ['packages:jsUnitTest'],
66 | },
67 | jsTest: {
68 | description: 'JavaScript test packages',
69 | extends: ['packages:jsUnitTest'],
70 | },
71 | test: {
72 | description: 'Test packages',
73 | extends: ['packages:unitTest'],
74 | },
75 | gatsby: {
76 | description: 'All packages published by Gatsby',
77 | extends: ['monorepo:gatsby'],
78 | },
79 | };
80 |
--------------------------------------------------------------------------------
/src/preview.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | dockerCompose: {
3 | description: 'Enable docker compose image updating',
4 | 'docker-compose': {
5 | enabled: true,
6 | },
7 | },
8 | dockerVersions: {
9 | description: 'Upgrade docker tags to newer versions',
10 | docker: {
11 | major: {
12 | enabled: true,
13 | },
14 | minor: {
15 | enabled: true,
16 | },
17 | },
18 | },
19 | buildkite: {
20 | description: 'Enable buildkite functionality',
21 | buildkite: {
22 | enabled: true,
23 | },
24 | },
25 | };
26 |
--------------------------------------------------------------------------------
/src/schedule.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | earlyMondays: {
3 | description: 'Weekly schedule on early monday mornings',
4 | schedule: 'before 3am on Monday',
5 | },
6 | daily: {
7 | description: 'Schedule daily',
8 | schedule: 'before 2am',
9 | },
10 | weekly: {
11 | description: 'Schedule weekly',
12 | extends: ['schedule:earlyMondays'],
13 | },
14 | monthly: {
15 | description: 'Schedule monthly',
16 | schedule: 'before 3am on the first day of the month',
17 | },
18 | weekends: {
19 | description: 'Schedule for weekends',
20 | schedule: 'every weekend',
21 | },
22 | weekdays: {
23 | description: 'Schedule for weekdays',
24 | schedule: 'every weekday',
25 | },
26 | nonOfficeHours: {
27 | description:
28 | 'Schedule for typical non-office hours (night time and weekends)',
29 | schedule: [
30 | 'after 10pm every weekday',
31 | 'before 5am every weekday',
32 | 'every weekend',
33 | ],
34 | },
35 | };
36 |
--------------------------------------------------------------------------------
/validate.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra');
2 | const is = require('@sindresorhus/is');
3 | const { validateConfig } = require('renovate/dist/config/validation');
4 | const { massageConfig } = require('renovate/dist/config/massage');
5 |
6 | // This is the file we're validating
7 | const presetsJson = JSON.parse(fs.readFileSync('presets.json', 'utf8'));
8 |
9 | global.repoCache = {
10 | internalPresets: presetsJson, // This makes renovate validate this file contents and not what's on GitHub currently
11 | };
12 |
13 | let returnVal = 0;
14 |
15 | // These ignoredRules container params (arguments) that fail to validate when unpopulated
16 | const ignoredRules = ['default:group', 'default:timezone'];
17 |
18 | (async () => {
19 | try {
20 | for (const [category, presets] of Object.entries(presetsJson)) {
21 | for (const [subcategory, preset] of Object.entries(presets)) {
22 | const name = `${category}:${subcategory}`;
23 | if (!ignoredRules.includes(name) && subcategory !== 'description') {
24 | try {
25 | const { warnings, errors } = await validateConfig(
26 | massageConfig(preset),
27 | true
28 | );
29 | if (is.nonEmptyArray(warnings)) {
30 | console.warn({ warnings }, 'Found renovate config warnings');
31 | returnVal = 1;
32 | }
33 | if (is.nonEmptyArray(errors)) {
34 | console.error({ errors }, 'Found renovate config errors');
35 | returnVal = 1;
36 | }
37 | } catch (err) {
38 | console.error(`Failed to verify: ${name}`);
39 | console.log(err);
40 | returnVal = 1;
41 | }
42 | }
43 | }
44 | }
45 | } catch (err) {
46 | returnVal = 1;
47 | console.log(err);
48 | }
49 | if (returnVal !== 0) {
50 | console.error('Presets failed validation');
51 | process.exit(returnVal);
52 | }
53 | console.log('Presets are validated');
54 | })();
55 |
--------------------------------------------------------------------------------