├── .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 | --------------------------------------------------------------------------------