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