diff --git a/lib/config/presets.js b/lib/config/presets.js
index fd63f3c04d593b77ce7974bc3a47c09a54d7c05c..584c537fdd9cce72e6dcd0b504adb33f12caabfd 100644
--- a/lib/config/presets.js
+++ b/lib/config/presets.js
@@ -1,5 +1,6 @@
 const configParser = require('./index');
 const massage = require('./massage');
+const migration = require('./migration');
 const npm = require('../api/npm');
 
 module.exports = {
@@ -186,7 +187,8 @@ async function getPreset(preset, logger) {
   if (presetKeys.every(key => packageListKeys.includes(key))) {
     delete presetConfig.description;
   }
-  return massage.massageConfig(presetConfig);
+  const migratedConfig = migration.migrateConfig(presetConfig).migratedConfig;
+  return massage.massageConfig(migratedConfig);
 }
 
 function isObject(obj) {
diff --git a/test/_fixtures/npm/renovate-config-ikatyang.json b/test/_fixtures/npm/renovate-config-ikatyang.json
new file mode 100644
index 0000000000000000000000000000000000000000..0239f5bb3fc9e399f1983d9cd67a250557df6634
--- /dev/null
+++ b/test/_fixtures/npm/renovate-config-ikatyang.json
@@ -0,0 +1 @@
+{"_id":"renovate-config-ikatyang","_rev":"4-7fb157899f3d04c90327f8f2a35bd0a5","name":"renovate-config-ikatyang","description":"renovate config for ikatyang","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"renovate-config-ikatyang","version":"1.0.0","description":"renovate config for ikatyang","keywords":["renovate","renovate-config"],"repository":{"type":"git","url":"git+https://github.com/ikatyang/renovate-config-ikatyang.git"},"homepage":"https://github.com/ikatyang/renovate-config-ikatyang#readme","author":{"name":"Ika","email":"ikatyang@gmail.com","url":"https://github.com/ikatyang"},"license":"MIT","scripts":{"release":"standard-version"},"devDependencies":{"standard-version":"4.2.0"},"files":[],"renovate-config":{"default":{"extends":[":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeRequireAllStatusChecks",":maintainLockFilesWeekly"],"timezone":"Asia/Taipei","schedule":["after 12am and before 8am"],"semanticCommits":true,"separateMajorReleases":true,"separatePatchReleases":false,"ignoreUnstable":true,"respectLatest":true,"rebaseStalePrs":true,"prCreation":"immediate","automerge":"minor","automergeType":"pr","unpublishSafe":false,"labels":["dependencies"]},"library":{"extends":["ikatyang:default",":pinOnlyDevDependencies"]}},"gitHead":"6b33d9a7d466a1b18b00bb4be84d76ed1d23fea3","bugs":{"url":"https://github.com/ikatyang/renovate-config-ikatyang/issues"},"_id":"renovate-config-ikatyang@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"ikatyang","email":"ikatyang@gmail.com"},"dist":{"integrity":"sha512-NBEWXir0YpMrcVF+F/PZR9uBPVolaTr8mofQsOlNTNxtXYhHqU7mUJyWia14m475i5qiWdbCsQfACn7GZugoCw==","shasum":"5ee3b01d73e4486b7dfbbe27e3d749a10eafced0","tarball":"https://registry.npmjs.org/renovate-config-ikatyang/-/renovate-config-ikatyang-1.0.0.tgz"},"maintainers":[{"name":"ikatyang","email":"ikatyang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-ikatyang-1.0.0.tgz_1503232291506_0.9969473145902157"},"directories":{}},"1.1.0":{"name":"renovate-config-ikatyang","version":"1.1.0","description":"renovate config for ikatyang","keywords":["renovate","renovate-config"],"repository":{"type":"git","url":"git+https://github.com/ikatyang/renovate-config-ikatyang.git"},"homepage":"https://github.com/ikatyang/renovate-config-ikatyang#readme","author":{"name":"Ika","email":"ikatyang@gmail.com","url":"https://github.com/ikatyang"},"license":"MIT","scripts":{"release":"standard-version"},"devDependencies":{"standard-version":"4.2.0"},"files":[],"renovate-config":{"default":{"extends":[":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeRequireAllStatusChecks",":maintainLockFilesDisabled"],"timezone":"Asia/Taipei","schedule":["before 8am"],"semanticCommits":true,"separateMajorReleases":true,"separatePatchReleases":false,"ignoreUnstable":true,"respectLatest":true,"rebaseStalePrs":true,"prCreation":"immediate","automerge":"minor","automergeType":"pr","unpublishSafe":false,"labels":["dependencies"]},"library":{"extends":["ikatyang:default",":pinOnlyDevDependencies"]}},"gitHead":"369160195cb5b7b0fb89ef1f554d5bbbebad8c6f","bugs":{"url":"https://github.com/ikatyang/renovate-config-ikatyang/issues"},"_id":"renovate-config-ikatyang@1.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"ikatyang","email":"ikatyang@gmail.com"},"dist":{"integrity":"sha512-8qKLnrqNZP+rmpcb8ddKy04mXlTUW2hrHmevT47830MfRgb0qZGLdcuKL5LG13a2WWGzzTZYsXaOqbHTLNQN6w==","shasum":"31dcfafa501e3f6b5c25349177507e7e9b5d9460","tarball":"https://registry.npmjs.org/renovate-config-ikatyang/-/renovate-config-ikatyang-1.1.0.tgz"},"maintainers":[{"name":"ikatyang","email":"ikatyang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-ikatyang-1.1.0.tgz_1503277413013_0.7997763243038207"},"directories":{}},"1.2.0":{"name":"renovate-config-ikatyang","version":"1.2.0","description":"renovate config for ikatyang","keywords":["renovate","renovate-config"],"repository":{"type":"git","url":"git+https://github.com/ikatyang/renovate-config-ikatyang.git"},"homepage":"https://github.com/ikatyang/renovate-config-ikatyang#readme","author":{"name":"Ika","email":"ikatyang@gmail.com","url":"https://github.com/ikatyang"},"license":"MIT","scripts":{"release":"standard-version"},"devDependencies":{"standard-version":"4.2.0"},"files":[],"renovate-config":{"default":{"extends":[":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeRequireAllStatusChecks"],"timezone":"Asia/Taipei","schedule":["before 8am"],"lockFileMaintenance":{"enabled":true,"automerge":true,"schedule":"before 8am on Mondays"},"semanticCommits":true,"separateMajorReleases":true,"separatePatchReleases":false,"ignoreUnstable":true,"respectLatest":true,"rebaseStalePrs":true,"prCreation":"immediate","automerge":"minor","automergeType":"pr","unpublishSafe":false,"labels":["dependencies"]},"library":{"extends":["ikatyang:default",":pinOnlyDevDependencies"]}},"gitHead":"610de097e8b81da80c5655aada79378f362858e7","bugs":{"url":"https://github.com/ikatyang/renovate-config-ikatyang/issues"},"_id":"renovate-config-ikatyang@1.2.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"ikatyang","email":"ikatyang@gmail.com"},"dist":{"integrity":"sha512-rBHBcgjziMslq8XB5rcA/mwN0YtXMpsvxBBSV4XuifkrbPD7LNTuehsU05wlgqqwecVzTSCtsNfKBES2qf3dVg==","shasum":"28351b9aaed9bd73f6355a93843c6823535bb1e4","tarball":"https://registry.npmjs.org/renovate-config-ikatyang/-/renovate-config-ikatyang-1.2.0.tgz"},"maintainers":[{"name":"ikatyang","email":"ikatyang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-ikatyang-1.2.0.tgz_1503317838934_0.6510782628320158"},"directories":{}},"1.2.1":{"name":"renovate-config-ikatyang","version":"1.2.1","description":"renovate config for ikatyang","keywords":["renovate","renovate-config"],"repository":{"type":"git","url":"git+https://github.com/ikatyang/renovate-config-ikatyang.git"},"homepage":"https://github.com/ikatyang/renovate-config-ikatyang#readme","author":{"name":"Ika","email":"ikatyang@gmail.com","url":"https://github.com/ikatyang"},"license":"MIT","scripts":{"release":"standard-version"},"devDependencies":{"standard-version":"4.2.0"},"files":[],"renovate-config":{"default":{"extends":[":renovatePrefix",":semanticPrefixFixDepsChoreOthers",":automergeRequireAllStatusChecks"],"timezone":"Asia/Taipei","schedule":["before 8am"],"lockFileMaintenance":{"enabled":true,"automerge":true,"schedule":"before 8am on Monday"},"semanticCommits":true,"separateMajorReleases":true,"separatePatchReleases":false,"ignoreUnstable":true,"respectLatest":true,"rebaseStalePrs":true,"prCreation":"immediate","automerge":"minor","automergeType":"pr","unpublishSafe":false,"labels":["dependencies"]},"library":{"extends":["ikatyang:default",":pinOnlyDevDependencies"]}},"gitHead":"7406990bfb5e98e6ff127d0b2f365e6d30bad25e","bugs":{"url":"https://github.com/ikatyang/renovate-config-ikatyang/issues"},"_id":"renovate-config-ikatyang@1.2.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"ikatyang","email":"ikatyang@gmail.com"},"dist":{"integrity":"sha512-UpgA0hwHMNS7nqjuhNVAUk5ueYMgvMeawm56VkXiJTp0ZhaGW41x+XK/w7qObmyD/pRW3h7qk3w1CooHti29Sw==","shasum":"4c6f15f94980838b8a6f90e8c134d1837cc52845","tarball":"https://registry.npmjs.org/renovate-config-ikatyang/-/renovate-config-ikatyang-1.2.1.tgz"},"maintainers":[{"name":"ikatyang","email":"ikatyang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-ikatyang-1.2.1.tgz_1503359610886_0.8635549147147685"},"directories":{}}},"readme":"# renovate-config-ikatyang\n\n[![npm](https://img.shields.io/npm/v/renovate-config-ikatyang.svg)](https://www.npmjs.com/package/renovate-config-ikatyang)\n[![build](https://img.shields.io/travis/ikatyang/renovate-config-ikatyang/master.svg)](https://travis-ci.org/ikatyang/renovate-config-ikatyang/builds)\n\n[renovate](https://renovateapp.com/) config for ikatyang\n\n[Changelog](https://github.com/ikatyang/renovate-config-ikatyang/blob/master/CHANGELOG.md)\n\n## Usage\n\n(renovate.json)\n\n```json\n{\n  \"extends\": \"ikatyang\"\n}\n```\n\n## License\n\nMIT © [Ika](https://github.com/ikatyang)\n","maintainers":[{"name":"ikatyang","email":"ikatyang@gmail.com"}],"time":{"modified":"2017-08-21T23:53:31.002Z","created":"2017-08-20T12:31:31.602Z","1.0.0":"2017-08-20T12:31:31.602Z","1.1.0":"2017-08-21T01:03:33.203Z","1.2.0":"2017-08-21T12:17:20.208Z","1.2.1":"2017-08-21T23:53:31.002Z"},"homepage":"https://github.com/ikatyang/renovate-config-ikatyang#readme","keywords":["renovate","renovate-config"],"repository":{"type":"git","url":"git+https://github.com/ikatyang/renovate-config-ikatyang.git"},"author":{"name":"Ika","email":"ikatyang@gmail.com","url":"https://github.com/ikatyang"},"bugs":{"url":"https://github.com/ikatyang/renovate-config-ikatyang/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 2ecd8e6dd1b2e25502bc8dadc073be64d068c583..452d7fe316c5353be783f0a15469f45d8328d70c 100644
--- a/test/config/__snapshots__/presets.spec.js.snap
+++ b/test/config/__snapshots__/presets.spec.js.snap
@@ -236,6 +236,85 @@ Object {
 }
 `;
 
+exports[`config/presets resolvePreset migrates automerge in presets 1`] = `
+Object {
+  "automergeType": "pr",
+  "branchprefix": "renovate/",
+  "dependencies": Object {
+    "description": Array [
+      "Preserve (but continue to upgrade) any existing semver ranges",
+    ],
+    "pinVersions": false,
+    "semanticPrefix": "fix(deps):",
+  },
+  "description": Array [
+    "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",
+    "Require all status checks to pass before any automerging",
+    "Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others",
+  ],
+  "devDependencies": Object {
+    "description": Array [
+      "Use version pinning (maintain a single version only and not semver ranges)",
+    ],
+    "pinVersions": true,
+    "semanticPrefix": "chore(deps):",
+  },
+  "ignoreUnstable": true,
+  "labels": Array [
+    "dependencies",
+  ],
+  "lockFileMaintenance": Object {
+    "automerge": true,
+    "enabled": true,
+    "schedule": Array [
+      "before 8am on Monday",
+    ],
+  },
+  "logger": Object {
+    "child": [Function],
+    "debug": [Function],
+    "error": [Function],
+    "fatal": [Function],
+    "info": [Function],
+    "trace": [Function],
+    "warn": [Function],
+  },
+  "major": Object {
+    "automerge": false,
+  },
+  "minor": Object {
+    "automerge": true,
+  },
+  "optionalDependencies": Object {
+    "description": Array [
+      "Preserve (but continue to upgrade) any existing semver ranges",
+    ],
+    "pinVersions": false,
+    "semanticPrefix": "chore(deps):",
+  },
+  "peerDependencies": Object {
+    "description": Array [
+      "Preserve (but continue to upgrade) any existing semver ranges",
+    ],
+    "pinVersions": false,
+    "semanticPrefix": "chore(deps):",
+  },
+  "prCreation": "immediate",
+  "rebaseStalePrs": true,
+  "requiredStatusChecks": Array [],
+  "respectLatest": true,
+  "schedule": Array [
+    "before 8am",
+  ],
+  "semanticCommits": true,
+  "separateMajorReleases": true,
+  "separatePatchReleases": false,
+  "timezone": "Asia/Taipei",
+  "unpublishSafe": false,
+}
+`;
+
 exports[`config/presets resolvePreset resolves app preset 1`] = `
 Object {
   "automerge": false,
diff --git a/test/config/presets.spec.js b/test/config/presets.spec.js
index f0556642a70e4951e4cba8fda379779a7259cd6b..1d217a2a92d5483602786c443b241bc56cdcacd8 100644
--- a/test/config/presets.spec.js
+++ b/test/config/presets.spec.js
@@ -5,6 +5,7 @@ const presetDefaults = require('../_fixtures/npm/renovate-config-default');
 const presetPackages = require('../_fixtures/npm/renovate-config-packages');
 const presetGroup = require('../_fixtures/npm/renovate-config-group');
 const presetMonorepo = require('../_fixtures/npm/renovate-config-monorepo');
+const presetIkatyang = require('../_fixtures/npm/renovate-config-ikatyang');
 
 npm.getDependency = jest.fn(dep => {
   if (dep === 'renovate-config-default') {
@@ -31,6 +32,14 @@ npm.getDependency = jest.fn(dep => {
         ],
     };
   }
+  if (dep === 'renovate-config-ikatyang') {
+    return {
+      'renovate-config':
+        presetIkatyang.versions[presetIkatyang['dist-tags'].latest][
+          'renovate-config'
+        ],
+    };
+  }
   if (dep === 'renovate-config-monorepo') {
     return {
       'renovate-config':
@@ -135,6 +144,13 @@ describe('config/presets', () => {
       expect(rule.packageNames).toHaveLength(1);
       expect(rule.packagePatterns).toHaveLength(2);
     });
+    it('migrates automerge in presets', async () => {
+      config.extends = ['ikatyang:library'];
+      const res = await presets.resolveConfigPresets(config);
+      expect(res).toMatchSnapshot();
+      expect(res.automerge).not.toBeDefined();
+      expect(res.minor.automerge).toBe(true);
+    });
   });
   describe('replaceArgs', () => {
     const argMappings = {