diff --git a/test/_fixtures/npm/renovate-config-group.json b/test/_fixtures/npm/renovate-config-group.json
new file mode 100644
index 0000000000000000000000000000000000000000..c8e298da49ffec6db91975ba232c11d57bbc8829
--- /dev/null
+++ b/test/_fixtures/npm/renovate-config-group.json
@@ -0,0 +1 @@
+{"_id":"renovate-config-group","_rev":"3-0572f1e6e4825a350d9bc3f42a235d20","name":"renovate-config-group","description":"Preset group configs for Renovate","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{},"_id":"renovate-config-group@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-mhxC/NBDXdl/Aiis0kDaEShoW1/9Ht1cTNVavEz18FsyyrZVBKCvig3Tjkq30MkKLLSh9ceRxEH7Gn9s1dgxqg==","shasum":"3468c6fc700dc11183dedaed7151adfd197d9aac","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.1.tgz_1503044468166_0.225491588935256"},"directories":{}},"0.0.2":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"linters":{"extends":"packages:linters","groupName":"linters"},"monorepo-angular":{"packageRules":[{"description":"Group packages from angular monorepo together","extends":"monorepo:angular","groupName":"angular monorepo"}]},"monorepo-babel":{"packageRules":[{"description":"Group packages from babel monorepo together","extends":"monorepo:babel","groupName":"babel monorepo"}]},"monorepo-jest":{"packageRules":[{"description":"Group packages from jest monorepo together","extends":"monorepo:jest","groupName":"jest monorepo"}]},"monorepo-lodash":{"packageRules":[{"description":"Group packages from lodash monorepo together","extends":"monorepo:lodash","groupName":"lodash monorepo"}]},"monorepo-pouchdb":{"packageRules":[{"description":"Group packages from pouchdb monorepo together","extends":"monorepo:pouchdb","groupName":"pouchdb monorepo"}]},"monorepo-react":{"packageRules":[{"description":"Group packages from react monorepo together","extends":"monorepo:react","groupName":"react monorepo"}]},"monorepo-storybook":{"packageRules":[{"description":"Group packages from storybook monorepo together","extends":"monorepo:storybook","groupName":"storybook monorepo"}]},"monorepos":{"description":"Group monorepo packages together","extends":["group:monorepo-angular","group:monorepo-babel","group:monorepo-jest","group:monorepo-lodash","group:monorepo-pouchdb","group:monorepo-react","group:monorepo-storybook"]}},"_id":"renovate-config-group@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-FM04VWwwP4aK5PJGbmzM7XUmM1xutH+E2P3dad/gfLIzX25recwHWO+0eGZ2hUrqD1g87YzeC4sAt2Pd97fmfw==","shasum":"4154e8a5530f5cd29f0171c9907a60622c7974c2","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.2.tgz_1503052449733_0.3961799945682287"},"directories":{}},"0.0.3":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.3","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"angularMonorepo":{"packageRules":[{"description":"Group packages from angular monorepo together","extends":"monorepo:angular","groupName":"angular monorepo"}]},"babelMonorepo":{"packageRules":[{"description":"Group packages from babel monorepo together","extends":"monorepo:babel","groupName":"babel monorepo"}]},"jestMonorepo":{"packageRules":[{"description":"Group packages from jest monorepo together","extends":"monorepo:jest","groupName":"jest monorepo"}]},"linters":{"extends":"packages:linters","groupName":"linters"},"lodashMonorepo":{"packageRules":[{"description":"Group packages from lodash monorepo together","extends":"monorepo:lodash","groupName":"lodash monorepo"}]},"monorepos":{"description":"Group monorepo packages together","extends":["group:angularMonorepo","group:babelMonorepo","group:jestMonorepo","group:lodashMonorepo","group:pouchdbMonorepo","group:reactMonorepo","group:storybookMonorepo"]},"pouchdbMonorepo":{"packageRules":[{"description":"Group packages from pouchdb monorepo together","extends":"monorepo:pouchdb","groupName":"pouchdb monorepo"}]},"reactMonorepo":{"packageRules":[{"description":"Group packages from react monorepo together","extends":"monorepo:react","groupName":"react monorepo"}]},"storybookMonorepo":{"packageRules":[{"description":"Group packages from storybook monorepo together","extends":"monorepo:storybook","groupName":"storybook monorepo"}]}},"_id":"renovate-config-group@0.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-TKX8fR6wXWg5bv40kUZx7Bgz/YKC7zKswYnFs9Z6HWRFp5Hb6LJc2Rl1yGUCpR09h+ac0W7m7q1j0jwpR0N+eg==","shasum":"206e7a07e7a986ee1b389c0b780168bee47a9761","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.3.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.3.tgz_1503056947877_0.16184096015058458"},"directories":{}}},"readme":"# group presets\n\nThis directory contains preset group rules.\n\nThey can be referenced using the `group:` prefix, e.g. `group:babel`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-18T11:49:08.757Z","created":"2017-08-18T08:21:09.099Z","0.0.1":"2017-08-18T08:21:09.099Z","0.0.2":"2017-08-18T10:34:10.788Z","0.0.3":"2017-08-18T11:49:08.757Z"},"homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"readme.md","_attachments":{}}
\ No newline at end of file
diff --git a/test/_fixtures/npm/renovate-config-monorepo.json b/test/_fixtures/npm/renovate-config-monorepo.json
new file mode 100644
index 0000000000000000000000000000000000000000..52276cc70dc6d7ecf1f653034f27fc1064e74479
--- /dev/null
+++ b/test/_fixtures/npm/renovate-config-monorepo.json
@@ -0,0 +1 @@
+{"_id":"renovate-config-monorepo","_rev":"2-f75323997dde9e55d8a968c6faf85123","name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{},"_id":"renovate-config-monorepo@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-tNTKXltWDrtJEzsR0lv/ZcHvYWEmFuB/EvlI/50fj+mU6iryfQwFOyuVO+Ffx8L1xr8/4Ppf1PotJaY/PT07Ww==","shasum":"0412280049ed3fafad057b66238d21a685398495","tarball":"https://registry.npmjs.org/renovate-config-monorepo/-/renovate-config-monorepo-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-monorepo-0.0.1.tgz_1503044329535_0.45821570651605725"},"directories":{}},"0.0.2":{"name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"pretty":"prettier-package-json --write ./package.json"},"dependencies":{"gh-got":"^6.0.0"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"angular":{"description":"angular monorepo","packagePatterns":["^@angular/"]},"babel":{"description":"babel monorepo","packageNames":["babel-cli","babel-code-frame","babel-core","babel-generator","babel-helper-bindify-decorators","babel-helper-builder-binary-assignment-operator-visitor","babel-helper-builder-react-jsx","babel-helper-call-delegate","babel-helper-define-map","babel-helper-explode-assignable-expression","babel-helper-explode-class","babel-helper-fixtures","babel-helper-function-name","babel-helper-get-function-arity","babel-helper-hoist-variables","babel-helper-optimise-call-expression","babel-helper-plugin-test-runner","babel-helper-regex","babel-helper-remap-async-to-generator","babel-helper-replace-supers","babel-helper-transform-fixture-test-runner","babel-helper-wrap-function","babel-helpers","babel-messages","babel-node","babel-plugin-check-es2015-constants","babel-plugin-external-helpers","babel-plugin-syntax-async-functions","babel-plugin-syntax-async-generators","babel-plugin-syntax-class-properties","babel-plugin-syntax-decorators","babel-plugin-syntax-do-expressions","babel-plugin-syntax-dynamic-import","babel-plugin-syntax-exponentiation-operator","babel-plugin-syntax-export-extensions","babel-plugin-syntax-flow","babel-plugin-syntax-function-bind","babel-plugin-syntax-function-sent","babel-plugin-syntax-jsx","babel-plugin-syntax-numeric-separator","babel-plugin-syntax-object-rest-spread","babel-plugin-syntax-optional-catch-binding","babel-plugin-syntax-optional-chaining","babel-plugin-syntax-trailing-function-commas","babel-plugin-syntax-typescript","babel-plugin-transform-async-functions","babel-plugin-transform-async-generator-functions","babel-plugin-transform-async-to-generator","babel-plugin-transform-async-to-module-method","babel-plugin-transform-class-properties","babel-plugin-transform-decorators","babel-plugin-transform-do-expressions","babel-plugin-transform-es2015-arrow-functions","babel-plugin-transform-es2015-block-scoped-functions","babel-plugin-transform-es2015-block-scoping","babel-plugin-transform-es2015-classes","babel-plugin-transform-es2015-computed-properties","babel-plugin-transform-es2015-destructuring","babel-plugin-transform-es2015-duplicate-keys","babel-plugin-transform-es2015-for-of","babel-plugin-transform-es2015-function-name","babel-plugin-transform-es2015-instanceof","babel-plugin-transform-es2015-literals","babel-plugin-transform-es2015-modules-amd","babel-plugin-transform-es2015-modules-commonjs","babel-plugin-transform-es2015-modules-systemjs","babel-plugin-transform-es2015-modules-umd","babel-plugin-transform-es2015-object-super","babel-plugin-transform-es2015-parameters","babel-plugin-transform-es2015-shorthand-properties","babel-plugin-transform-es2015-spread","babel-plugin-transform-es2015-sticky-regex","babel-plugin-transform-es2015-template-literals","babel-plugin-transform-es2015-typeof-symbol","babel-plugin-transform-es2015-unicode-regex","babel-plugin-transform-es3-member-expression-literals","babel-plugin-transform-es3-property-literals","babel-plugin-transform-es5-property-mutators","babel-plugin-transform-eval","babel-plugin-transform-exponentiation-operator","babel-plugin-transform-export-extensions","babel-plugin-transform-flow-comments","babel-plugin-transform-flow-strip-types","babel-plugin-transform-function-bind","babel-plugin-transform-function-sent","babel-plugin-transform-jscript","babel-plugin-transform-new-target","babel-plugin-transform-numeric-separator","babel-plugin-transform-object-assign","babel-plugin-transform-object-rest-spread","babel-plugin-transform-object-set-prototype-of-to-assign","babel-plugin-transform-optional-catch-binding","babel-plugin-transform-optional-chaining","babel-plugin-transform-proto-to-assign","babel-plugin-transform-react-constant-elements","babel-plugin-transform-react-display-name","babel-plugin-transform-react-inline-elements","babel-plugin-transform-react-jsx-compat","babel-plugin-transform-react-jsx-self","babel-plugin-transform-react-jsx-source","babel-plugin-transform-react-jsx","babel-plugin-transform-regenerator","babel-plugin-transform-runtime","babel-plugin-transform-strict-mode","babel-plugin-transform-typescript","babel-polyfill","babel-preset-es2015","babel-preset-es2016","babel-preset-es2017","babel-preset-flow","babel-preset-react","babel-preset-stage-0","babel-preset-stage-1","babel-preset-stage-2","babel-preset-stage-3","babel-preset-typescript","babel-register","babel-runtime","babel-standalone","babel-template","babel-traverse","babel-types"]},"jest":{"description":"jest monorepo","packageNames":["babel-jest","babel-plugin-jest-hoist","babel-preset-jest","eslint-config-fb-strict","eslint-plugin-jest","jest-changed-files","jest-circus","jest-cli","jest-config","jest-diff","jest-docblock","jest-editor-support","jest-environment-jsdom","jest-environment-node","jest-get-type","jest-haste-map","jest-jasmine2","jest-matcher-utils","jest-matchers","jest-message-util","jest-mock","jest-phabricator","jest-regex-util","jest-repl","jest-resolve-dependencies","jest-resolve","jest-runner","jest-runtime","jest-snapshot","jest-test-typescript-parser","jest-util","jest-validate","jest","pretty-format"]},"lodash":{"description":"lodash monorepo","packageNames":["babel-plugin-lodash","lodash-webpack-plugin","lodash-es"],"packagePatterns":["^lodash"]},"pouchdb":{"description":"pouchdb monorepo","packageNames":["pouchdb-abstract-mapreduce","pouchdb-adapter-fruitdown","pouchdb-adapter-http","pouchdb-adapter-idb","pouchdb-adapter-indexeddb","pouchdb-adapter-leveldb-core","pouchdb-adapter-leveldb","pouchdb-adapter-localstorage","pouchdb-adapter-memory","pouchdb-adapter-node-websql","pouchdb-adapter-utils","pouchdb-adapter-websql-core","pouchdb-adapter-websql","pouchdb-ajax","pouchdb-binary-utils","pouchdb-browser","pouchdb-changes-filter","pouchdb-checkpointer","pouchdb-collate","pouchdb-collections","pouchdb-core","pouchdb-debug","pouchdb-errors","pouchdb-find","pouchdb-for-coverage","pouchdb-generate-replication-id","pouchdb-json","pouchdb-mapreduce-utils","pouchdb-mapreduce","pouchdb-md5","pouchdb-merge","pouchdb-node","pouchdb-promise","pouchdb-replication","pouchdb-selector-core","pouchdb-utils","pouchdb","sublevel-pouchdb"]},"react":{"description":"react monorepo","packageNames":["react-art","react-dom","react-noop-renderer","react-test-renderer","react"]},"storybook":{"description":"storybook monorepo","packagePatterns":["^@storybook/"]}},"_id":"renovate-config-monorepo@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-0EsuYGyztmldG4qBAQ4Ol0niypNZGjoq8tRU2JVExjc5y7RHXmdhVN63qvovENFllJjftm7lc5i+vgjRmuPyIA==","shasum":"3e4d8cb3c2a250bfd22b48ec089bb277d41c0f1a","tarball":"https://registry.npmjs.org/renovate-config-monorepo/-/renovate-config-monorepo-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-monorepo-0.0.2.tgz_1503051288742_0.3895804558414966"},"directories":{}}},"readme":"# monorepo presets\n\nThis directory contains presets for defining monorepo groups.\n\nThese can be referenced using the `monorepo:` prefix, e.g. `monorepo:babel`.\n\nIn most cases, dependencies from the same monorepo should be upgraded at the same time (in same branch/PR) and these preset configs are used to group them together.\n\nThe goal of these lists and patterns is to define packages from within the monorepo and *not* any related packages. e.g. we want all the packages from the `facebook/react` repository and not to include just anything with `react` in its name, like `react-unofficial-videos`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-18T10:14:49.667Z","created":"2017-08-18T08:18:50.430Z","0.0.1":"2017-08-18T08:18:50.430Z","0.0.2":"2017-08-18T10:14:49.667Z"},"homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"readme.md","_attachments":{}}
\ No newline at end of file
diff --git a/test/config/__snapshots__/presets.spec.js.snap b/test/config/__snapshots__/presets.spec.js.snap
index 5adad40d3d49f17c92591d726260c408f7e37631..4201d16fd09404eda24893bb590b611ad7b2c728 100644
--- a/test/config/__snapshots__/presets.spec.js.snap
+++ b/test/config/__snapshots__/presets.spec.js.snap
@@ -299,6 +299,285 @@ Object {
 }
 `;
 
+exports[`config/presets resolvePreset resolves group monorepos 1`] = `
+Object {
+  "logger": Object {
+    "child": [Function],
+    "debug": [Function],
+    "error": [Function],
+    "fatal": [Function],
+    "info": [Function],
+    "trace": [Function],
+    "warn": [Function],
+  },
+  "packageRules": Array [
+    Object {
+      "description": Array [
+        "Group packages from angular monorepo together",
+      ],
+      "groupName": "angular monorepo",
+      "packagePatterns": Array [
+        "^@angular/",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from babel monorepo together",
+      ],
+      "groupName": "babel monorepo",
+      "packageNames": Array [
+        "babel-cli",
+        "babel-code-frame",
+        "babel-core",
+        "babel-generator",
+        "babel-helper-bindify-decorators",
+        "babel-helper-builder-binary-assignment-operator-visitor",
+        "babel-helper-builder-react-jsx",
+        "babel-helper-call-delegate",
+        "babel-helper-define-map",
+        "babel-helper-explode-assignable-expression",
+        "babel-helper-explode-class",
+        "babel-helper-fixtures",
+        "babel-helper-function-name",
+        "babel-helper-get-function-arity",
+        "babel-helper-hoist-variables",
+        "babel-helper-optimise-call-expression",
+        "babel-helper-plugin-test-runner",
+        "babel-helper-regex",
+        "babel-helper-remap-async-to-generator",
+        "babel-helper-replace-supers",
+        "babel-helper-transform-fixture-test-runner",
+        "babel-helper-wrap-function",
+        "babel-helpers",
+        "babel-messages",
+        "babel-node",
+        "babel-plugin-check-es2015-constants",
+        "babel-plugin-external-helpers",
+        "babel-plugin-syntax-async-functions",
+        "babel-plugin-syntax-async-generators",
+        "babel-plugin-syntax-class-properties",
+        "babel-plugin-syntax-decorators",
+        "babel-plugin-syntax-do-expressions",
+        "babel-plugin-syntax-dynamic-import",
+        "babel-plugin-syntax-exponentiation-operator",
+        "babel-plugin-syntax-export-extensions",
+        "babel-plugin-syntax-flow",
+        "babel-plugin-syntax-function-bind",
+        "babel-plugin-syntax-function-sent",
+        "babel-plugin-syntax-jsx",
+        "babel-plugin-syntax-numeric-separator",
+        "babel-plugin-syntax-object-rest-spread",
+        "babel-plugin-syntax-optional-catch-binding",
+        "babel-plugin-syntax-optional-chaining",
+        "babel-plugin-syntax-trailing-function-commas",
+        "babel-plugin-syntax-typescript",
+        "babel-plugin-transform-async-functions",
+        "babel-plugin-transform-async-generator-functions",
+        "babel-plugin-transform-async-to-generator",
+        "babel-plugin-transform-async-to-module-method",
+        "babel-plugin-transform-class-properties",
+        "babel-plugin-transform-decorators",
+        "babel-plugin-transform-do-expressions",
+        "babel-plugin-transform-es2015-arrow-functions",
+        "babel-plugin-transform-es2015-block-scoped-functions",
+        "babel-plugin-transform-es2015-block-scoping",
+        "babel-plugin-transform-es2015-classes",
+        "babel-plugin-transform-es2015-computed-properties",
+        "babel-plugin-transform-es2015-destructuring",
+        "babel-plugin-transform-es2015-duplicate-keys",
+        "babel-plugin-transform-es2015-for-of",
+        "babel-plugin-transform-es2015-function-name",
+        "babel-plugin-transform-es2015-instanceof",
+        "babel-plugin-transform-es2015-literals",
+        "babel-plugin-transform-es2015-modules-amd",
+        "babel-plugin-transform-es2015-modules-commonjs",
+        "babel-plugin-transform-es2015-modules-systemjs",
+        "babel-plugin-transform-es2015-modules-umd",
+        "babel-plugin-transform-es2015-object-super",
+        "babel-plugin-transform-es2015-parameters",
+        "babel-plugin-transform-es2015-shorthand-properties",
+        "babel-plugin-transform-es2015-spread",
+        "babel-plugin-transform-es2015-sticky-regex",
+        "babel-plugin-transform-es2015-template-literals",
+        "babel-plugin-transform-es2015-typeof-symbol",
+        "babel-plugin-transform-es2015-unicode-regex",
+        "babel-plugin-transform-es3-member-expression-literals",
+        "babel-plugin-transform-es3-property-literals",
+        "babel-plugin-transform-es5-property-mutators",
+        "babel-plugin-transform-eval",
+        "babel-plugin-transform-exponentiation-operator",
+        "babel-plugin-transform-export-extensions",
+        "babel-plugin-transform-flow-comments",
+        "babel-plugin-transform-flow-strip-types",
+        "babel-plugin-transform-function-bind",
+        "babel-plugin-transform-function-sent",
+        "babel-plugin-transform-jscript",
+        "babel-plugin-transform-new-target",
+        "babel-plugin-transform-numeric-separator",
+        "babel-plugin-transform-object-assign",
+        "babel-plugin-transform-object-rest-spread",
+        "babel-plugin-transform-object-set-prototype-of-to-assign",
+        "babel-plugin-transform-optional-catch-binding",
+        "babel-plugin-transform-optional-chaining",
+        "babel-plugin-transform-proto-to-assign",
+        "babel-plugin-transform-react-constant-elements",
+        "babel-plugin-transform-react-display-name",
+        "babel-plugin-transform-react-inline-elements",
+        "babel-plugin-transform-react-jsx-compat",
+        "babel-plugin-transform-react-jsx-self",
+        "babel-plugin-transform-react-jsx-source",
+        "babel-plugin-transform-react-jsx",
+        "babel-plugin-transform-regenerator",
+        "babel-plugin-transform-runtime",
+        "babel-plugin-transform-strict-mode",
+        "babel-plugin-transform-typescript",
+        "babel-polyfill",
+        "babel-preset-es2015",
+        "babel-preset-es2016",
+        "babel-preset-es2017",
+        "babel-preset-flow",
+        "babel-preset-react",
+        "babel-preset-stage-0",
+        "babel-preset-stage-1",
+        "babel-preset-stage-2",
+        "babel-preset-stage-3",
+        "babel-preset-typescript",
+        "babel-register",
+        "babel-runtime",
+        "babel-standalone",
+        "babel-template",
+        "babel-traverse",
+        "babel-types",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from jest monorepo together",
+      ],
+      "groupName": "jest monorepo",
+      "packageNames": Array [
+        "babel-jest",
+        "babel-plugin-jest-hoist",
+        "babel-preset-jest",
+        "eslint-config-fb-strict",
+        "eslint-plugin-jest",
+        "jest-changed-files",
+        "jest-circus",
+        "jest-cli",
+        "jest-config",
+        "jest-diff",
+        "jest-docblock",
+        "jest-editor-support",
+        "jest-environment-jsdom",
+        "jest-environment-node",
+        "jest-get-type",
+        "jest-haste-map",
+        "jest-jasmine2",
+        "jest-matcher-utils",
+        "jest-matchers",
+        "jest-message-util",
+        "jest-mock",
+        "jest-phabricator",
+        "jest-regex-util",
+        "jest-repl",
+        "jest-resolve-dependencies",
+        "jest-resolve",
+        "jest-runner",
+        "jest-runtime",
+        "jest-snapshot",
+        "jest-test-typescript-parser",
+        "jest-util",
+        "jest-validate",
+        "jest",
+        "pretty-format",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from lodash monorepo together",
+      ],
+      "groupName": "lodash monorepo",
+      "packageNames": Array [
+        "babel-plugin-lodash",
+        "lodash-webpack-plugin",
+        "lodash-es",
+      ],
+      "packagePatterns": Array [
+        "^lodash",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from pouchdb monorepo together",
+      ],
+      "groupName": "pouchdb monorepo",
+      "packageNames": Array [
+        "pouchdb-abstract-mapreduce",
+        "pouchdb-adapter-fruitdown",
+        "pouchdb-adapter-http",
+        "pouchdb-adapter-idb",
+        "pouchdb-adapter-indexeddb",
+        "pouchdb-adapter-leveldb-core",
+        "pouchdb-adapter-leveldb",
+        "pouchdb-adapter-localstorage",
+        "pouchdb-adapter-memory",
+        "pouchdb-adapter-node-websql",
+        "pouchdb-adapter-utils",
+        "pouchdb-adapter-websql-core",
+        "pouchdb-adapter-websql",
+        "pouchdb-ajax",
+        "pouchdb-binary-utils",
+        "pouchdb-browser",
+        "pouchdb-changes-filter",
+        "pouchdb-checkpointer",
+        "pouchdb-collate",
+        "pouchdb-collections",
+        "pouchdb-core",
+        "pouchdb-debug",
+        "pouchdb-errors",
+        "pouchdb-find",
+        "pouchdb-for-coverage",
+        "pouchdb-generate-replication-id",
+        "pouchdb-json",
+        "pouchdb-mapreduce-utils",
+        "pouchdb-mapreduce",
+        "pouchdb-md5",
+        "pouchdb-merge",
+        "pouchdb-node",
+        "pouchdb-promise",
+        "pouchdb-replication",
+        "pouchdb-selector-core",
+        "pouchdb-utils",
+        "pouchdb",
+        "sublevel-pouchdb",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from react monorepo together",
+      ],
+      "groupName": "react monorepo",
+      "packageNames": Array [
+        "react-art",
+        "react-dom",
+        "react-noop-renderer",
+        "react-test-renderer",
+        "react",
+      ],
+    },
+    Object {
+      "description": Array [
+        "Group packages from storybook monorepo together",
+      ],
+      "groupName": "storybook monorepo",
+      "packagePatterns": Array [
+        "^@storybook/",
+      ],
+    },
+  ],
+}
+`;
+
 exports[`config/presets resolvePreset resolves linters 1`] = `
 Object {
   "description": Array [
diff --git a/test/config/presets.spec.js b/test/config/presets.spec.js
index 529802422054016879b3a625c69de8ea15093315..56e03611b36c522a021372ce606c060754bf832d 100644
--- a/test/config/presets.spec.js
+++ b/test/config/presets.spec.js
@@ -3,6 +3,8 @@ const presets = require('../../lib/config/presets');
 const logger = require('../_fixtures/logger');
 const presetDefaults = require('../_fixtures/npm/renovate-config-default');
 const presetPackages = require('../_fixtures/npm/renovate-config-packages');
+const presetGroup = require('../_fixtures/npm/renovate-config-group');
+const presetMonorepo = require('../_fixtures/npm/renovate-config-monorepo');
 
 npm.getDependency = jest.fn(dep => {
   if (dep === 'renovate-config-default') {
@@ -15,6 +17,16 @@ npm.getDependency = jest.fn(dep => {
       'renovate-config': presetPackages.versions['0.0.1']['renovate-config'],
     };
   }
+  if (dep === 'renovate-config-group') {
+    return {
+      'renovate-config': presetGroup.versions['0.0.3']['renovate-config'],
+    };
+  }
+  if (dep === 'renovate-config-monorepo') {
+    return {
+      'renovate-config': presetMonorepo.versions['0.0.2']['renovate-config'],
+    };
+  }
   if (dep === 'renovate-config-noconfig') {
     return {};
   }
@@ -69,6 +81,11 @@ describe('config/presets', () => {
       const res = await presets.resolveConfigPresets(config);
       expect(res).toMatchSnapshot();
     });
+    it('resolves group monorepos', async () => {
+      config.extends = ['group:monorepos'];
+      const res = await presets.resolveConfigPresets(config);
+      expect(res).toMatchSnapshot();
+    });
     it('combines two package alls', async () => {
       config.extends = ['packages:eslint', 'packages:stylelint'];
       const res = await presets.resolveConfigPresets(config);