From 3917fc6bae9b01a268e699ab0b8bd2e34155903a Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@keylocation.sg>
Date: Thu, 24 Aug 2017 12:39:23 +0200
Subject: [PATCH] fix: explicitly check automerge = true (#728)

* fix: explicitly check automerge = true

* update presets fixtures and tests

* fix versions tests

* update tests
---
 lib/workers/branch/index.js                   |  2 +-
 lib/workers/package/versions.js               |  2 +-
 lib/workers/pr/index.js                       |  4 +--
 .../npm/renovate-config-default.json          |  2 +-
 .../npm/renovate-config-packages.json         |  2 +-
 .../config/__snapshots__/presets.spec.js.snap | 25 ++++++++++++++---
 test/config/presets.spec.js                   | 28 +++++++++++++++----
 .../__snapshots__/versions.spec.js.snap       |  2 +-
 test/workers/package/versions.spec.js         |  6 ++--
 9 files changed, 54 insertions(+), 19 deletions(-)

diff --git a/lib/workers/branch/index.js b/lib/workers/branch/index.js
index f208d60df6..9afba6e97a 100644
--- a/lib/workers/branch/index.js
+++ b/lib/workers/branch/index.js
@@ -20,7 +20,7 @@ function checkStale(config) {
     return true;
   }
   // Commits can't be pushed to a branch unless they are up-to-date
-  if (config.automerge && config.automergeType === 'branch-push') {
+  if (config.automerge === true && config.automergeType === 'branch-push') {
     return true;
   }
   return false;
diff --git a/lib/workers/package/versions.js b/lib/workers/package/versions.js
index ae4a76b740..b81b381228 100644
--- a/lib/workers/package/versions.js
+++ b/lib/workers/package/versions.js
@@ -106,7 +106,7 @@ function determineUpgrades(npmDep, config) {
       if (
         !config.separateMajorReleases ||
         config.groupName ||
-        config.automerge === 'any'
+        config.major.automerge === true
       ) {
         // If we're not separating releases then we use a common lookup key
         upgradeKey = 'latest';
diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index 517641c45f..feff6d9189 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -24,7 +24,7 @@ async function ensurePr(inputConfig, logger, errors, warnings) {
   );
 
   // Only create a PR if a branch automerge has failed
-  if (config.automerge && config.automergeType.startsWith('branch')) {
+  if (config.automerge === true && config.automergeType.startsWith('branch')) {
     logger.debug(
       `Branch is configured for branch automerge, branchStatus is: ${branchStatus}`
     );
@@ -186,7 +186,7 @@ async function ensurePr(inputConfig, logger, errors, warnings) {
 async function checkAutoMerge(pr, config, logger) {
   logger.trace({ config }, 'checkAutoMerge');
   logger.debug(`Checking #${pr.number} for automerge`);
-  if (config.automerge && config.automergeType === 'pr') {
+  if (config.automerge === true && config.automergeType === 'pr') {
     logger.info('PR is configured for automerge');
     // Return if PR not ready for automerge
     if (pr.mergeable !== true) {
diff --git a/test/_fixtures/npm/renovate-config-default.json b/test/_fixtures/npm/renovate-config-default.json
index fd8911cae9..533b92b31c 100644
--- a/test/_fixtures/npm/renovate-config-default.json
+++ b/test/_fixtures/npm/renovate-config-default.json
@@ -1 +1 @@
-{"_id":"renovate-config-default","_rev":"2-ec1f8666a9a8ece32143067c41ddceb5","name":"renovate-config-default","description":"Default preset configs for Renovate","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.0":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.0","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"scheduleMondayMornings":{"description":"Schedule to run Mondays before 5am","schedule":"On mondays before 5am"},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Do not automerge any upgrades - wait for humans to merge PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":":scheduleMondayMornings"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Do not upgrade versions past the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.0","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-ajKx6jy0PecwxQa2UrR3PXmHMYBbPc2l4qVXOzshC5tWe5KKVA5/ny1Yjv5rTBJ62xuUh2d6ikXd0qeYeKOfqQ==","shasum":"5b88bf0c205b72579098926cf338c53271e97455","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.0.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.0.tgz_1502884367812_0.5453649370465428"},"directories":{}},"0.0.1":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"scheduleMondayMornings":{"description":"Schedule to run Mondays before 5am","schedule":"On mondays before 5am"},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Do not automerge any upgrades - wait for humans to merge PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":":scheduleMondayMornings"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Do not upgrade versions past the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-FWr3t/2hO5LEP2SvAFCpGh753jNK01aJf8kyhsRlfCSrvJVajh26ArVm/lKj2FmfKTV6F8ddLyYXxp05s+j/kQ==","shasum":"cb64e8980f499325d3a58fb43d35527866ab1639","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.1.tgz_1502884421840_0.5322694149799645"},"directories":{}}},"readme":"ERROR: No README data found!","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-16T11:53:42.816Z","created":"2017-08-16T11:52:48.679Z","0.0.0":"2017-08-16T11:52:48.679Z","0.0.1":"2017-08-16T11:53:42.816Z"},"homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"","_attachments":{}}
\ No newline at end of file
+{"_id":"renovate-config-default","_rev":"5-85834d9ed1694c1051bf884347d7b046","name":"renovate-config-default","description":"Default preset configs for Renovate","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.0":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.0","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"scheduleMondayMornings":{"description":"Schedule to run Mondays before 5am","schedule":"On mondays before 5am"},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Do not automerge any upgrades - wait for humans to merge PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":":scheduleMondayMornings"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Do not upgrade versions past the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.0","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-ajKx6jy0PecwxQa2UrR3PXmHMYBbPc2l4qVXOzshC5tWe5KKVA5/ny1Yjv5rTBJ62xuUh2d6ikXd0qeYeKOfqQ==","shasum":"5b88bf0c205b72579098926cf338c53271e97455","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.0.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.0.tgz_1502884367812_0.5453649370465428"},"directories":{}},"0.0.1":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"scheduleMondayMornings":{"description":"Schedule to run Mondays before 5am","schedule":"On mondays before 5am"},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Do not automerge any upgrades - wait for humans to merge PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":":scheduleMondayMornings"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Do not upgrade versions past the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-FWr3t/2hO5LEP2SvAFCpGh753jNK01aJf8kyhsRlfCSrvJVajh26ArVm/lKj2FmfKTV6F8ddLyYXxp05s+j/kQ==","shasum":"cb64e8980f499325d3a58fb43d35527866ab1639","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.1.tgz_1502884421840_0.5322694149799645"},"directories":{}},"0.0.2":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Do not automerge any upgrades - wait for humans to merge PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":"schedule:weekly"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Do not upgrade versions past the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-Qx+vAf/loaTujA7u+DNonQ5zyPMTSC5S8pCrPxaLQbOV3Mzv3DQUQXp550H+padRHERTvRxuiiX3vN94Md4KHQ==","shasum":"fada826a1fb4a4822279ea1b3c82f527a3bf9c8b","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.2.tgz_1503041691583_0.6433005328290164"},"directories":{}},"0.0.3":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"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":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Disable automerging feature - wait for humans to merge all PRs","automerge":"none"},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","automerge":"patch"},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","automerge":"minor"},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":"any"},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":"schedule:weekly"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Upgrade versions up to the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":"any"}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.3","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-EWaS0Mf1lOBLsbSTLjcbhLNSDhBtk1ljFP77sVHFLmnjYQc/RmhhSn2d1lce4tKXTV9da8YZBaz/mov5IgEdfw==","shasum":"a2917b6a7451daef1bd8598f10c558ff54cad168","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.3.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.3.tgz_1503046336915_0.7909344027284533"},"directories":{}},"0.0.4":{"name":"renovate-config-default","description":"Default preset configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.4","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"enableRenovate":{"description":"Enable renovate","enabled":true},"disableRenovate":{"description":"Disable renovate","enabled":false},"includeNodeModules":{"description":"Include <code>package.json</code> files found within <code>node_modules</code> folders","ignoreNodeModules":false},"pinVersions":{"description":"Use version pinning (maintain a single version only and not semver ranges)","pinVersions":true},"preserveSemverRanges":{"description":"Preserve (but continue to upgrade) any existing semver ranges","pinVersions":false},"pinOnlyDevDependencies":{"description":"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others","dependencies":{"extends":":preserveSemverRanges"},"devDependencies":{"extends":":pinVersions"},"optionalDependencies":{"extends":":preserveSemverRanges"},"peerDependencies":{"extends":":preserveSemverRanges"}},"separateMajorReleases":{"description":"Separate major versions of dependencies into individual branches/PRs","separateMajorReleases":true},"separatePatchReleases":{"description":"Separate patch and minor releases of dependencies into separate PRs","separatePatchReleases":true},"combinePatchMinorReleases":{"description":"Use the same branch/PR for both patch and minor upgrades of a dependency","separatePatchReleases":false},"renovatePrefix":{"description":"Use <code>renovate/</code> as prefix for all branch names","branchprefix":"renovate/"},"semanticPrefixChore":{"description":"Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"chore(deps):"},"semanticPrefixFix":{"description":"Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles","semanticPrefix":"fix(deps):"},"disablePeerDependencies":{"description":"Do not renovate <code>peerDependencies</code> versions/ranges","peerDependencies":{"enabled":false}},"semanticPrefixFixDepsChoreOthers":{"description":"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others","dependencies":{"extends":":semanticPrefixFix"},"devDependencies":{"extends":":semanticPrefixChore"},"optionalDependencies":{"extends":":semanticPrefixChore"},"peerDependencies":{"extends":":semanticPrefixChore"}},"unpublishSafe":{"description":"Set a status check to warn when upgrades <  24 hours old might get unpublished","unpublishSafe":true},"unpublishSafeDisabled":{"description":"Create branches/PRs for dependency upgrades as soon as they're available","unpublishSafe":false},"prImmediately":{"description":"Raise PRs immediately (after branch is created)","prCreation":"immediate"},"prNotPending":{"description":"Wait until branch tests have passed or failed before creating the PR","prCreation":"not-pending"},"automergeDisabled":{"description":"Disable automerging feature - wait for humans to merge all PRs","automerge":false},"automergePatch":{"description":"Automerge patch upgrades if they pass tests","patch":{"automerge":true}},"automergeMinor":{"description":"Automerge patch or minor upgrades if they pass tests","minor":{"automerge":true}},"automergeMajor":{"description":"Automerge all upgrades (inluding major) if they pass tests","automerge":true},"automergeBranchMergeCommit":{"description":"If automerging, perform a merge-commit on branch (no PR)","automergeType":"branch-merge-commit"},"automergeBranchPush":{"description":"If automerging, push the new commit directly to base branch (no PR)","automergeType":"branch-push"},"automergePr":{"description":"Raise a PR first before any automerging","automergeType":"pr"},"automergeRequireAllStatusChecks":{"description":"Require all status checks to pass before any automerging","requiredStatusChecks":[]},"maintainLockFilesDisabled":{"description":"Update existing lock files only when <code>package.json</code> is modified","lockFileMaintenance":{"enabled":false}},"maintainLockFilesWeekly":{"description":"Run lock file maintenance (updates) early Monday mornings","lockFileMaintenance":{"enabled":true,"extends":"schedule:weekly"}},"ignoreUnstable":{"description":"Only upgrade to stable npm versions","ignoreUnstable":true},"respectLatest":{"description":"Upgrade versions up to the \"latest\" tag in npm registry","respectLatest":true},"automergeLinters":{"description":"Update lint packages automatically if tests pass","packageRules":[{"extends":["packages:linters"],"automerge":true}]},"doNotPinPackage":{"description":"Disable version pinning for <code>{{arg0}}</code>","packageRules":[{"packageNames":["{{arg0}}"],"pinVersions":false}]},"group":{"description":"Group {{arg1}} packages into same branch/PR","packageRules":[{"extends":["{{arg0}}"],"groupName":"{{arg1}}"}]},"base":{"description":"Default base configuration for repositories","extends":[":separateMajorReleases",":combinePatchMinorReleases",":ignoreUnstable",":respectLatest",":unpublishSafeDisabled",":prNotPending",":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeDisabled",":maintainLockFilesDisabled"]},"app":{"description":"Default configuration for webapps","extends":[":pinVersions",":base"]},"library":{"description":"Default configuration for libraries","extends":[":pinOnlyDevDependencies",":base"]}},"_id":"renovate-config-default@0.0.4","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-0nXCF/rz3lrdOBPnzYSwWO4HQpNow8aQZwJCBlGQlEVJp7Kpcwf0dHVwBvVJCMbzT1m+85GmZ0seAa6kuJYy8Q==","shasum":"fa29d3cc74664cae043370e75c5a735c97c43e49","tarball":"https://registry.npmjs.org/renovate-config-default/-/renovate-config-default-0.0.4.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-default-0.0.4.tgz_1503565787137_0.6079069799743593"},"directories":{}}},"readme":"# default presets\n\nThis directory contains default presets for Renovate. Any preset defined here can be referenced with or without the `default` prefix, e.g. `\"extends\": [\":base\"]` or `\"extends\": [\"default:base\"]`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-24T09:09:49.075Z","created":"2017-08-16T11:52:48.679Z","0.0.0":"2017-08-16T11:52:48.679Z","0.0.1":"2017-08-16T11:53:42.816Z","0.0.2":"2017-08-18T07:34:52.514Z","0.0.3":"2017-08-18T08:52:17.834Z","0.0.4":"2017-08-24T09:09:49.075Z"},"homepage":"https://github.com/singapore/renovate-config","repository":{"type":"git","url":"git+https://rarkins@github.com/singapore/renovate-config.git"},"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-packages.json b/test/_fixtures/npm/renovate-config-packages.json
index d14d52f314..1665affe90 100644
--- a/test/_fixtures/npm/renovate-config-packages.json
+++ b/test/_fixtures/npm/renovate-config-packages.json
@@ -1 +1 @@
-{"_id":"renovate-config-packages","_rev":"1-e8da83ccca88e942b34ef9dcb600f5e1","name":"renovate-config-packages","description":"Preset packages configs for Renovate","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"renovate-config-packages","description":"Preset packages configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"angularJs":{"description":"All angular.js packages","packageNames":["angular","angular-animate","angular-scroll","angular-sanitize"]},"mapbox":{"description":"All mapbox-related packages","packagePatterns":["^(leaflet|mapbox)"]},"eslint":{"description":"All eslint packages","packagePatterns":["^eslint"]},"stylelint":{"description":"All stylelint packages","packagePatterns":["^stylelint"]},"linters":{"description":"All lint-related packages","extends":["packages:eslint","packages:stylelint"],"packageNames":["remark-lint"]}},"_id":"renovate-config-packages@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-I0aPz23zHCkzHVgv9Nuums91a81H7kyVeunuP6I6Y/xpUqQaNTSJw1/YRJKIItMMpyvH0WKIkDlug4i0+npHcQ==","shasum":"3f3499e6c17be3c7bc5c22eed0cae8d493211f94","tarball":"https://registry.npmjs.org/renovate-config-packages/-/renovate-config-packages-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-packages-0.0.1.tgz_1502884315914_0.8533324550371617"},"directories":{}}},"readme":"ERROR: No README data found!","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-16T11:51:56.793Z","created":"2017-08-16T11:51:56.793Z","0.0.1":"2017-08-16T11:51:56.793Z"},"homepage":"https://github.com/singapore/renovate-config","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"","_attachments":{}}
+{"_id":"renovate-config-packages","_rev":"2-befe6b6734feaaa1a0d34a16f095ad92","name":"renovate-config-packages","description":"Preset packages configs for Renovate","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"renovate-config-packages","description":"Preset packages configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"angularJs":{"description":"All angular.js packages","packageNames":["angular","angular-animate","angular-scroll","angular-sanitize"]},"mapbox":{"description":"All mapbox-related packages","packagePatterns":["^(leaflet|mapbox)"]},"eslint":{"description":"All eslint packages","packagePatterns":["^eslint"]},"stylelint":{"description":"All stylelint packages","packagePatterns":["^stylelint"]},"linters":{"description":"All lint-related packages","extends":["packages:allEslint","packages:allStyleLint"],"packageNames":["remark-lint"]}},"_id":"renovate-config-packages@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-I0aPz23zHCkzHVgv9Nuums91a81H7kyVeunuP6I6Y/xpUqQaNTSJw1/YRJKIItMMpyvH0WKIkDlug4i0+npHcQ==","shasum":"3f3499e6c17be3c7bc5c22eed0cae8d493211f94","tarball":"https://registry.npmjs.org/renovate-config-packages/-/renovate-config-packages-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-packages-0.0.1.tgz_1502884315914_0.8533324550371617"},"directories":{}},"0.0.2":{"name":"renovate-config-packages","description":"Preset packages configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"np":"np","pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"np":"2.16.0","prettier-package-json":"1.4.0"},"renovate-config":{"angularJs":{"description":"All angular.js packages","packageNames":["angular","angular-animate","angular-scroll","angular-sanitize"]},"mapbox":{"description":"All mapbox-related packages","packagePatterns":["^(leaflet|mapbox)"]},"eslint":{"description":"All eslint packages","packagePatterns":["^eslint"]},"stylelint":{"description":"All stylelint packages","packagePatterns":["^stylelint"]},"linters":{"description":"All lint-related packages","extends":["packages:eslint","packages:stylelint"],"packageNames":["remark-lint"]}},"_id":"renovate-config-packages@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-exLNT2vgr/RHv6ChFB1VYiIIG3Hcu3XXvlJFXIGzH83FciYT7WNMfL+QjIYqzkwxymIpUsYLNha9sTGCdYBu3A==","shasum":"978763baae42f903d54f0b688caaa4952af0a301","tarball":"https://registry.npmjs.org/renovate-config-packages/-/renovate-config-packages-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-packages-0.0.2.tgz_1502959017249_0.19483778369612992"},"directories":{}}},"readme":"# packages presets\n\nThis directory contains presets for defining lists of packages.\n\nPreset configs here should include only the following fields from `packageRules`: `packageNames`, `packagePatterns`, `excludePackageNames` and `excludePackagePatterns`. Essentially this means they are partial package rules which exist to be extended elsewhere.\n\nThey can be referenced using the `packages:` prefix, e.g. `packages:linters`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-17T08:36:58.080Z","created":"2017-08-16T11:51:56.793Z","0.0.1":"2017-08-16T11:51:56.793Z","0.0.2":"2017-08-17T08:36:58.080Z"},"homepage":"https://github.com/singapore/renovate-config","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 4201d16fd0..2ecd8e6dd1 100644
--- a/test/config/__snapshots__/presets.spec.js.snap
+++ b/test/config/__snapshots__/presets.spec.js.snap
@@ -238,7 +238,7 @@ Object {
 
 exports[`config/presets resolvePreset resolves app preset 1`] = `
 Object {
-  "automerge": "none",
+  "automerge": false,
   "branchprefix": "renovate/",
   "dependencies": Object {
     "description": Array [
@@ -251,12 +251,12 @@ Object {
     "Separate major versions of dependencies into individual branches/PRs",
     "Use the same branch/PR for both patch and minor upgrades of a dependency",
     "Only upgrade to stable npm versions",
-    "Do not upgrade versions past the \\"latest\\" tag in npm registry",
+    "Upgrade versions up to the \\"latest\\" tag in npm registry",
     "Create branches/PRs for dependency upgrades as soon as they're available",
     "Wait until branch tests have passed or failed before creating the PR",
     "Use <code>renovate/</code> as prefix for all branch names",
     "If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others",
-    "Do not automerge any upgrades - wait for humans to merge PRs",
+    "Disable automerging feature - wait for humans to merge all PRs",
     "Update existing lock files only when <code>package.json</code> is modified",
   ],
   "devDependencies": Object {
@@ -299,6 +299,23 @@ Object {
 }
 `;
 
+exports[`config/presets resolvePreset resolves eslint 1`] = `
+Object {
+  "logger": Object {
+    "child": [Function],
+    "debug": [Function],
+    "error": [Function],
+    "fatal": [Function],
+    "info": [Function],
+    "trace": [Function],
+    "warn": [Function],
+  },
+  "packagePatterns": Array [
+    "^eslint",
+  ],
+}
+`;
+
 exports[`config/presets resolvePreset resolves group monorepos 1`] = `
 Object {
   "logger": Object {
@@ -618,7 +635,7 @@ Object {
   },
   "packageRules": Array [
     Object {
-      "automerge": "any",
+      "automerge": true,
       "description": Array [
         "All lint-related packages",
       ],
diff --git a/test/config/presets.spec.js b/test/config/presets.spec.js
index 56e03611b3..f0556642a7 100644
--- a/test/config/presets.spec.js
+++ b/test/config/presets.spec.js
@@ -9,22 +9,34 @@ const presetMonorepo = require('../_fixtures/npm/renovate-config-monorepo');
 npm.getDependency = jest.fn(dep => {
   if (dep === 'renovate-config-default') {
     return {
-      'renovate-config': presetDefaults.versions['0.0.1']['renovate-config'],
+      'renovate-config':
+        presetDefaults.versions[presetDefaults['dist-tags'].latest][
+          'renovate-config'
+        ],
     };
   }
   if (dep === 'renovate-config-packages') {
     return {
-      'renovate-config': presetPackages.versions['0.0.1']['renovate-config'],
+      'renovate-config':
+        presetPackages.versions[presetPackages['dist-tags'].latest][
+          'renovate-config'
+        ],
     };
   }
   if (dep === 'renovate-config-group') {
     return {
-      'renovate-config': presetGroup.versions['0.0.3']['renovate-config'],
+      'renovate-config':
+        presetGroup.versions[presetGroup['dist-tags'].latest][
+          'renovate-config'
+        ],
     };
   }
   if (dep === 'renovate-config-monorepo') {
     return {
-      'renovate-config': presetMonorepo.versions['0.0.2']['renovate-config'],
+      'renovate-config':
+        presetMonorepo.versions[presetMonorepo['dist-tags'].latest][
+          'renovate-config'
+        ],
     };
   }
   if (dep === 'renovate-config-noconfig') {
@@ -101,6 +113,12 @@ describe('config/presets', () => {
       const res = await presets.resolveConfigPresets(config);
       expect(res).toMatchSnapshot();
     });
+    it('resolves eslint', async () => {
+      config.extends = ['packages:eslint'];
+      const res = await presets.resolveConfigPresets(config);
+      expect(res).toMatchSnapshot();
+      expect(res.packagePatterns).toHaveLength(1);
+    });
     it('resolves linters', async () => {
       config.extends = ['packages:linters'];
       const res = await presets.resolveConfigPresets(config);
@@ -113,7 +131,7 @@ describe('config/presets', () => {
       const res = await presets.resolveConfigPresets(config);
       expect(res).toMatchSnapshot();
       const rule = res.packageRules[0];
-      expect(rule.automerge).toEqual('any');
+      expect(rule.automerge).toEqual(true);
       expect(rule.packageNames).toHaveLength(1);
       expect(rule.packagePatterns).toHaveLength(2);
     });
diff --git a/test/workers/package/__snapshots__/versions.spec.js.snap b/test/workers/package/__snapshots__/versions.spec.js.snap
index 3d61dd522e..5e3b380997 100644
--- a/test/workers/package/__snapshots__/versions.spec.js.snap
+++ b/test/workers/package/__snapshots__/versions.spec.js.snap
@@ -186,7 +186,7 @@ Array [
 ]
 `;
 
-exports[`workers/package/versions .determineUpgrades(npmDep, config) returns only one update if automerging any 1`] = `
+exports[`workers/package/versions .determineUpgrades(npmDep, config) returns only one update if automerging major 1`] = `
 Array [
   Object {
     "automerge": true,
diff --git a/test/workers/package/versions.spec.js b/test/workers/package/versions.spec.js
index 6ead615658..a04e5d8f39 100644
--- a/test/workers/package/versions.spec.js
+++ b/test/workers/package/versions.spec.js
@@ -39,13 +39,13 @@ describe('workers/package/versions', () => {
       config.currentVersion = '^0.4.0';
       expect(versions.determineUpgrades(qJson, config)).toMatchSnapshot();
     });
-    it('returns only one update if automerging any', () => {
-      config.automerge = 'any';
+    it('returns only one update if automerging major', () => {
+      config.major = { automerge: true };
       config.currentVersion = '^0.4.0';
       expect(versions.determineUpgrades(qJson, config)).toMatchSnapshot();
     });
     it('returns both updates if automerging minor', () => {
-      config.automerge = 'minor';
+      config.minor = { automerge: true };
       config.currentVersion = '^0.4.0';
       expect(versions.determineUpgrades(qJson, config)).toMatchSnapshot();
     });
-- 
GitLab