diff --git a/docs/configuration.md b/docs/configuration.md
index baf7c146360d543727f1e7f45a6d50448efa7b48..27535462ef9b07f6b2cb7b2f2342f62a12b98937 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -310,7 +310,7 @@ Obviously, you can't set repository or package file location with this method.
   <td>`dependencies`</td>
   <td>Configuration specifically for `package.json`>`dependencies`</td>
   <td>json</td>
-  <td><pre>{"semanticPrefix": "fix(deps):"}</pre></td>
+  <td><pre>{"semanticCommitType": "fix"}</pre></td>
   <td>`RENOVATE_DEPENDENCIES`</td>
   <td><td>
 </tr>
@@ -501,11 +501,8 @@ Obviously, you can't set repository or package file location with this method.
   "recreateClosed": true,
   "rebaseStalePrs": true,
   "groupName": "Pin Dependencies",
-  "group": {
-    "commitMessage": "Pin Dependencies",
-    "prTitle": "{{groupName}}",
-    "semanticPrefix": "refactor(deps):"
-  }
+  "semanticCommitType": "refactor",
+  "group": {"commitMessage": "Pin Dependencies", "prTitle": "{{groupName}}"}
 }</pre></td>
   <td>`RENOVATE_PIN`</td>
   <td><td>
@@ -514,7 +511,7 @@ Obviously, you can't set repository or package file location with this method.
   <td>`digest`</td>
   <td>Configuration to apply when updating a Docker digest (same tag)</td>
   <td>json</td>
-  <td><pre>{"semanticPrefix": "refactor(deps):"}</pre></td>
+  <td><pre>{"semanticCommitType": "refactor"}</pre></td>
   <td>`RENOVATE_DIGEST`</td>
   <td><td>
 </tr>
@@ -527,12 +524,20 @@ Obviously, you can't set repository or package file location with this method.
   <td>`--semantic-commits`<td>
 </tr>
 <tr>
-  <td>`semanticPrefix`</td>
-  <td>Prefix to use if semantic commits are enabled</td>
+  <td>`semanticCommitType`</td>
+  <td>Commit type to use if semantic commits is enabled</td>
+  <td>string</td>
+  <td><pre>"chore"</pre></td>
+  <td>`RENOVATE_SEMANTIC_COMMIT_TYPE`</td>
+  <td>`--semantic-commit-type`<td>
+</tr>
+<tr>
+  <td>`semanticCommitScope`</td>
+  <td>Conmmit scope to use if semantic commits are enabled</td>
   <td>string</td>
-  <td><pre>"chore(deps):"</pre></td>
-  <td>`RENOVATE_SEMANTIC_PREFIX`</td>
-  <td>`--semantic-prefix`<td>
+  <td><pre>"deps"</pre></td>
+  <td>`RENOVATE_SEMANTIC_COMMIT_SCOPE`</td>
+  <td>`--semantic-commit-scope`<td>
 </tr>
 <tr>
   <td>`recreateClosed`</td>
diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index 6428c27e0a2d4c0b1e4ccf94ac5342189021afed..be73d8a4c028e0960c7bcd60a8a617522038ba32 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -209,7 +209,7 @@ const options = [
     description: 'Configuration specifically for `package.json`>`dependencies`',
     stage: 'packageFile',
     type: 'json',
-    default: { semanticPrefix: 'fix(deps):' },
+    default: { semanticCommitType: 'fix' },
     mergeable: true,
     cli: false,
   },
@@ -415,7 +415,7 @@ const options = [
       recreateClosed: true,
       rebaseStalePrs: true,
       groupName: 'Pin Dependencies',
-      semanticPrefix: 'refactor(deps):',
+      semanticCommitType: 'refactor',
       group: {
         commitMessage: 'Pin Dependencies',
         prTitle: '{{groupName}}',
@@ -431,7 +431,7 @@ const options = [
     stage: 'package',
     type: 'json',
     default: {
-      semanticPrefix: 'refactor(deps):',
+      semanticCommitType: 'refactor',
     },
     cli: false,
     mergeable: true,
@@ -444,10 +444,16 @@ const options = [
     default: null,
   },
   {
-    name: 'semanticPrefix',
-    description: 'Prefix to use if semantic commits are enabled',
+    name: 'semanticCommitType',
+    description: 'Commit type to use if semantic commits is enabled',
     type: 'string',
-    default: 'chore(deps):',
+    default: 'chore',
+  },
+  {
+    name: 'semanticCommitScope',
+    description: 'Conmmit scope to use if semantic commits are enabled',
+    type: 'string',
+    default: 'deps',
   },
   // PR Behaviour
   {
diff --git a/lib/config/migration.js b/lib/config/migration.js
index 55dd527ab553667262453d983cb98d2361b7f0d9..7f7602f3a45aff85c756e1b3a4ce60183c646a25 100644
--- a/lib/config/migration.js
+++ b/lib/config/migration.js
@@ -36,6 +36,17 @@ function migrateConfig(config) {
     if (removedOptions.includes(key)) {
       isMigrated = true;
       delete migratedConfig[key];
+    } else if (key === 'semanticPrefix') {
+      isMigrated = true;
+      delete migratedConfig.semanticPrefix;
+      let [text] = val.split(':');
+      text = text.split('(');
+      [migratedConfig.semanticCommitType] = text;
+      if (text.length > 1) {
+        [migratedConfig.semanticCommitScope] = text[1].split(')');
+      } else {
+        migratedConfig.semanticCommitScope = null;
+      }
     } else if (key === 'automergeMinor') {
       isMigrated = true;
       migratedConfig.minor = migratedConfig.minor || {};
@@ -178,12 +189,6 @@ function migrateConfig(config) {
     ) {
       isMigrated = true;
       migratedConfig[key] = val.replace('{{semanticPrefix}}', '');
-    } else if (key === 'semanticPrefix') {
-      // strip trailing space
-      if (val && val[val.length - 1] === ' ') {
-        isMigrated = true;
-        migratedConfig[key] = val.substring(0, val.length - 1);
-      }
     } else if (key === 'depTypes' && Array.isArray(val)) {
       val.forEach(depType => {
         if (isObject(depType)) {
diff --git a/lib/workers/branch/commit.js b/lib/workers/branch/commit.js
index 5e8c6fb197353c28f590bdc53558a3ef16e91d46..1916f10fa360ce5a6b2d919051546970600f69bb 100644
--- a/lib/workers/branch/commit.js
+++ b/lib/workers/branch/commit.js
@@ -14,7 +14,11 @@ async function commitFilesToBranch(config) {
     if (config.semanticCommits) {
       const splitMessage = commitMessage.split('\n');
       splitMessage[0] = splitMessage[0].toLowerCase();
-      commitMessage = `${config.semanticPrefix} ${splitMessage.join('\n')}`;
+      let semanticPrefix = config.semanticCommitType;
+      if (config.semanticCommitScope) {
+        semanticPrefix += `(${config.semanticCommitScope})`;
+      }
+      commitMessage = `${semanticPrefix}: ${splitMessage.join('\n')}`;
     }
     // API will know whether to create new branch or not
     await platform.commitFilesToBranch(
diff --git a/lib/workers/package/versions.js b/lib/workers/package/versions.js
index d6a5baa503dc8b71b9121679546c85f04498db73..0835f5de99e17f684dde1f202d353af3c8140ff5 100644
--- a/lib/workers/package/versions.js
+++ b/lib/workers/package/versions.js
@@ -46,7 +46,7 @@ function determineUpgrades(npmDep, config) {
       isRollback: true,
       newVersion: rollbackVersion,
       newVersionMajor: semver.major(rollbackVersion),
-      semanticPrefix: 'fix(deps):',
+      semanticCommitType: 'fix',
       branchName:
         '{{branchPrefix}}rollback-{{depNameSanitized}}-{{newVersionMajor}}.x',
     };
diff --git a/lib/workers/repository/updates/generate.js b/lib/workers/repository/updates/generate.js
index b038692531885b1a82a2872121d87068e26a3331..2bba5590ddb8cdac1539e9f4326e90b41d9c4abd 100644
--- a/lib/workers/repository/updates/generate.js
+++ b/lib/workers/repository/updates/generate.js
@@ -38,9 +38,11 @@ function generateBranchConfig(branchUpgrades) {
     upgrade.prTitle = handlebars.compile(upgrade.prTitle)(upgrade);
     if (upgrade.semanticCommits) {
       logger.debug('Upgrade has semantic commits enabled');
-      upgrade.prTitle = `${
-        upgrade.semanticPrefix
-      } ${upgrade.prTitle.toLowerCase()}`;
+      let semanticPrefix = upgrade.semanticCommitType;
+      if (upgrade.semanticCommitScope) {
+        semanticPrefix += `(${upgrade.semanticCommitScope})`;
+      }
+      upgrade.prTitle = `${semanticPrefix}: ${upgrade.prTitle.toLowerCase()}`;
     }
     logger.debug(`${upgrade.branchName}, ${upgrade.prTitle}`);
     config.upgrades.push(upgrade);
diff --git a/test/config/__snapshots__/migration.spec.js.snap b/test/config/__snapshots__/migration.spec.js.snap
index e799604f662b9b88fbb83fd267aa0a458b4d5560..fe68381b9085f3799306f129b07cc4b7f8a38253 100644
--- a/test/config/__snapshots__/migration.spec.js.snap
+++ b/test/config/__snapshots__/migration.spec.js.snap
@@ -75,7 +75,8 @@ Object {
   },
   "prTitle": "some pr title",
   "schedule": "on the first day of the month",
-  "semanticPrefix": "fix(deps):",
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "fix",
 }
 `;
 
diff --git a/test/config/__snapshots__/presets.spec.js.snap b/test/config/__snapshots__/presets.spec.js.snap
index ad4559fc0c0fbc90277db01bd6ca89e4395c7fc4..32a21dc9244ef162b1a619d2f1de1c90d17405ad 100644
--- a/test/config/__snapshots__/presets.spec.js.snap
+++ b/test/config/__snapshots__/presets.spec.js.snap
@@ -236,7 +236,8 @@ Object {
       "Preserve (but continue to upgrade) any existing semver ranges",
     ],
     "pinVersions": false,
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "fix",
   },
   "description": Array [
     "Use <code>renovate/</code> as prefix for all branch names",
@@ -249,7 +250,8 @@ Object {
       "Use version pinning (maintain a single version only and not semver ranges)",
     ],
     "pinVersions": true,
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "ignoreUnstable": true,
   "labels": Array [
@@ -273,14 +275,16 @@ Object {
       "Preserve (but continue to upgrade) any existing semver ranges",
     ],
     "pinVersions": false,
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "peerDependencies": Object {
     "description": Array [
       "Preserve (but continue to upgrade) any existing semver ranges",
     ],
     "pinVersions": false,
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "prCreation": "immediate",
   "rebaseStalePrs": true,
@@ -305,7 +309,8 @@ Object {
     "description": Array [
       "Use <code>fix(deps):</code> as semantic prefix for commit messages and PR titles",
     ],
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "fix",
   },
   "description": Array [
     "Use version pinning (maintain a single version only and not semver ranges)",
@@ -324,7 +329,8 @@ Object {
     "description": Array [
       "Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles",
     ],
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "ignoreUnstable": true,
   "lockFileMaintenance": Object {
@@ -334,13 +340,15 @@ Object {
     "description": Array [
       "Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles",
     ],
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "peerDependencies": Object {
     "description": Array [
       "Use <code>chore(deps):</code> as semantic prefix for commit messages and PR titles",
     ],
-    "semanticPrefix": "chore(deps):",
+    "semanticCommitScope": "deps",
+    "semanticCommitType": "chore",
   },
   "pinVersions": true,
   "prCreation": "not-pending",
diff --git a/test/config/__snapshots__/validation.spec.js.snap b/test/config/__snapshots__/validation.spec.js.snap
index c52425562ef38d1dcdf8b1c807ae72872d80b9e0..63af4b2400174b152853531fc5bfbdace882a2ad 100644
--- a/test/config/__snapshots__/validation.spec.js.snap
+++ b/test/config/__snapshots__/validation.spec.js.snap
@@ -16,7 +16,7 @@ Array [
   },
   Object {
     "depName": "Configuration Error",
-    "message": "Configuration option \`semanticPrefix\` should be a string",
+    "message": "Configuration option \`semanticCommitType\` should be a string",
   },
   Object {
     "depName": "Configuration Error",
diff --git a/test/config/migration.spec.js b/test/config/migration.spec.js
index 84bd881d080c9462e12c5a0116af7cfdebda2977..3e02e8d8125e4da426882b618e47bbaa417c7e93 100644
--- a/test/config/migration.spec.js
+++ b/test/config/migration.spec.js
@@ -104,6 +104,18 @@ describe('config/migration', () => {
       expect(isMigrated).toBe(true);
       expect(migratedConfig.schedule).toEqual('on friday');
     });
+    it('migrates semantic prefix with no scope', () => {
+      const config = {
+        semanticPrefix: 'fix',
+      };
+      const parentConfig = { ...defaultConfig };
+      const { isMigrated, migratedConfig } = configMigration.migrateConfig(
+        config,
+        parentConfig
+      );
+      expect(isMigrated).toBe(true);
+      expect(migratedConfig.semanticCommitScope).toBe(null);
+    });
     it('does not migrate every weekday', () => {
       const config = {
         schedule: 'every weekday',
diff --git a/test/config/validation.spec.js b/test/config/validation.spec.js
index af4078dbd9f55bf14b4b077be5645b8183f021c5..213386278a2f4dcbbc2698680c6cd2e133be3d98 100644
--- a/test/config/validation.spec.js
+++ b/test/config/validation.spec.js
@@ -21,7 +21,7 @@ describe('config/validation', () => {
         enabled: 1,
         schedule: ['every 15 mins every weekday'],
         labels: 5,
-        semanticPrefix: 7,
+        semanticCommitType: 7,
         lockFileMaintenance: false,
         packageRules: [
           {
diff --git a/test/manager/__snapshots__/resolve.spec.js.snap b/test/manager/__snapshots__/resolve.spec.js.snap
index be7dc4124fce304b5a85584355e392be8fee9f77..1a8c69a8246caf326a05a97ab1d288d10409d56f 100644
--- a/test/manager/__snapshots__/resolve.spec.js.snap
+++ b/test/manager/__snapshots__/resolve.spec.js.snap
@@ -11,12 +11,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -394,7 +394,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -463,8 +463,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -493,12 +494,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -887,7 +888,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -956,8 +957,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -981,12 +983,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -1583,7 +1585,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -1652,8 +1654,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -1677,12 +1680,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -2068,7 +2071,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -2137,8 +2140,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -2162,12 +2166,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -2545,7 +2549,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -2614,8 +2618,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -2639,12 +2644,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -3022,7 +3027,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -3091,8 +3096,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -3116,12 +3122,12 @@ Object {
   "branchPrefix": "renovate/",
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -3508,7 +3514,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -3577,8 +3583,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
diff --git a/test/workers/branch/__snapshots__/commit.spec.js.snap b/test/workers/branch/__snapshots__/commit.spec.js.snap
index 02ba7911f2356c56630ff8be0dd71906ba5fa6a4..055962807c291b3753e699c16bed347fe4e5ca44 100644
--- a/test/workers/branch/__snapshots__/commit.spec.js.snap
+++ b/test/workers/branch/__snapshots__/commit.spec.js.snap
@@ -10,7 +10,7 @@ Array [
         "name": "package.json",
       },
     ],
-    "some-prefix some commit message",
+    "a(b): some commit message",
     undefined,
   ],
 ]
diff --git a/test/workers/branch/commit.spec.js b/test/workers/branch/commit.spec.js
index e00e3cd18653c6b9ea595fe3defd2610321648a2..80be3f08629dd5d23d1f8fe4186d6e032842300e 100644
--- a/test/workers/branch/commit.spec.js
+++ b/test/workers/branch/commit.spec.js
@@ -10,7 +10,8 @@ describe('workers/branch/automerge', () => {
         branchName: 'renovate/some-branch',
         commitMessage: 'some commit message',
         semanticCommits: false,
-        semanticPrefix: 'some-prefix',
+        semanticCommitType: 'a',
+        semanticCommitScope: 'b',
         updatedPackageFiles: [],
         updatedLockFiles: [],
       };
@@ -49,7 +50,7 @@ describe('workers/branch/automerge', () => {
       await commitFilesToBranch(config);
       expect(platform.commitFilesToBranch.mock.calls.length).toBe(1);
       expect(platform.commitFilesToBranch.mock.calls[0][2]).toEqual(
-        'some-prefix foo\n\nBar'
+        'a(b): foo\n\nBar'
       );
     });
   });
diff --git a/test/workers/package/__snapshots__/index.spec.js.snap b/test/workers/package/__snapshots__/index.spec.js.snap
index 45da34ff751288b8eafed4da974e754cd25b13fe..835f9473494861ac4d217b8335de17abdf5215e9 100644
--- a/test/workers/package/__snapshots__/index.spec.js.snap
+++ b/test/workers/package/__snapshots__/index.spec.js.snap
@@ -143,8 +143,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "requiredStatusChecks": Array [],
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "refactor",
   "semanticCommits": null,
-  "semanticPrefix": "refactor(deps):",
   "timezone": null,
   "type": "pin",
   "unpublishSafe": false,
diff --git a/test/workers/package/__snapshots__/versions.spec.js.snap b/test/workers/package/__snapshots__/versions.spec.js.snap
index 50cefc3883c27393d4250b283baf5d5527e9ddba..05dbaa4a9b7d7a8fadbabcabb19d09ab5a0c86f9 100644
--- a/test/workers/package/__snapshots__/versions.spec.js.snap
+++ b/test/workers/package/__snapshots__/versions.spec.js.snap
@@ -308,7 +308,7 @@ Object {
   "isRollback": true,
   "newVersion": "1.16.0",
   "newVersionMajor": 1,
-  "semanticPrefix": "fix(deps):",
+  "semanticCommitType": "fix",
   "type": "rollback",
   "unpublishable": false,
 }
diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js
index c5b17ec260572a05ed638e1ccca103152452ed23..4faf1aa368a76c0f8c37f41531454734880b10d1 100644
--- a/test/workers/pr/index.spec.js
+++ b/test/workers/pr/index.spec.js
@@ -249,7 +249,7 @@ describe('workers/pr', () => {
       config.automerge = true;
       platform.getBranchPr.mockReturnValueOnce(existingPr);
       platform.getBranchStatus.mockReturnValueOnce('failure');
-      config.semanticPrefix = '';
+      config.semanticCommitScope = null;
       const pr = await prWorker.ensurePr(config);
       expect(platform.updatePr.mock.calls).toMatchSnapshot();
       expect(platform.updatePr.mock.calls.length).toBe(0);
@@ -259,7 +259,7 @@ describe('workers/pr', () => {
     });
     it('should return unmodified existing PR', async () => {
       platform.getBranchPr.mockReturnValueOnce(existingPr);
-      config.semanticPrefix = '';
+      config.semanticCommitScope = null;
       const pr = await prWorker.ensurePr(config);
       expect(platform.updatePr.mock.calls).toMatchSnapshot();
       expect(platform.updatePr.mock.calls).toHaveLength(0);
diff --git a/test/workers/repository/updates/__snapshots__/branchify.spec.js.snap b/test/workers/repository/updates/__snapshots__/branchify.spec.js.snap
index d03d6a1cc4df360bc834032fa5de26eff1a5dd04..f6215bf3acba57f75089be4c31d9a819540f7e1c 100644
--- a/test/workers/repository/updates/__snapshots__/branchify.spec.js.snap
+++ b/test/workers/repository/updates/__snapshots__/branchify.spec.js.snap
@@ -56,12 +56,12 @@ Object {
   ],
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -438,7 +438,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -507,8 +507,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -570,12 +571,12 @@ Object {
   ],
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -952,7 +953,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -1021,8 +1022,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -1090,12 +1092,12 @@ Object {
   ],
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -1472,7 +1474,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -1541,8 +1543,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -1594,12 +1597,12 @@ Object {
   ],
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -1980,7 +1983,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -2049,8 +2052,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
@@ -2101,12 +2105,12 @@ Object {
   ],
   "commitMessage": "Update dependency {{depName}} to v{{newVersion}}",
   "dependencies": Object {
-    "semanticPrefix": "fix(deps):",
+    "semanticCommitType": "fix",
   },
   "description": Array [],
   "devDependencies": Object {},
   "digest": Object {
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
   },
   "docker": Object {
     "branchName": "{{branchPrefix}}docker-{{depNameSanitized}}-{{newVersionMajor}}.x",
@@ -2483,7 +2487,7 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
     "groupName": "Pin Dependencies",
     "rebaseStalePrs": true,
     "recreateClosed": true,
-    "semanticPrefix": "refactor(deps):",
+    "semanticCommitType": "refactor",
     "unpublishSafe": false,
   },
   "pinDigests": true,
@@ -2553,8 +2557,9 @@ This PR has been generated by [Renovate Bot](https://renovateapp.com).",
   "respectLatest": true,
   "reviewers": Array [],
   "schedule": Array [],
+  "semanticCommitScope": "deps",
+  "semanticCommitType": "chore",
   "semanticCommits": null,
-  "semanticPrefix": "chore(deps):",
   "separateMajorReleases": true,
   "separatePatchReleases": false,
   "timezone": null,
diff --git a/test/workers/repository/updates/__snapshots__/generate.spec.js.snap b/test/workers/repository/updates/__snapshots__/generate.spec.js.snap
deleted file mode 100644
index f9dddb3d209ebd243e2b8edbf7baab6e4d06eb57..0000000000000000000000000000000000000000
--- a/test/workers/repository/updates/__snapshots__/generate.spec.js.snap
+++ /dev/null
@@ -1,67 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`workers/repository/updates/generate generateBranchConfig() does not group single upgrade 1`] = `
-Object {
-  "branchName": "some-branch",
-  "depName": "some-dep",
-  "foo": 1,
-  "prTitle": "some-prefix: some-title",
-  "semanticCommits": true,
-  "semanticPrefix": "some-prefix:",
-  "upgrades": Array [
-    Object {
-      "branchName": "some-branch",
-      "depName": "some-dep",
-      "foo": 1,
-      "prTitle": "some-prefix: some-title",
-      "semanticCommits": true,
-      "semanticPrefix": "some-prefix:",
-    },
-  ],
-}
-`;
-
-exports[`workers/repository/updates/generate generateBranchConfig() groups multiple upgrades 1`] = `
-Object {
-  "branchName": "some-branch",
-  "depName": "some-dep",
-  "foo": 2,
-  "groupName": "some-group",
-  "prTitle": "some-title",
-  "upgrades": Array [
-    Object {
-      "branchName": "some-branch",
-      "depName": "some-dep",
-      "foo": 2,
-      "groupName": "some-group",
-      "prTitle": "some-title",
-    },
-    Object {
-      "branchName": "some-branch",
-      "depName": "some-other-dep",
-      "foo": 2,
-      "groupName": "some-group",
-      "prTitle": "some-title",
-    },
-  ],
-}
-`;
-
-exports[`workers/repository/updates/generate generateBranchConfig() groups single upgrade if not lazyGrouping 1`] = `
-Object {
-  "branchName": "some-branch",
-  "depName": "some-dep",
-  "foo": 2,
-  "groupName": "some-group",
-  "prTitle": "some-title",
-  "upgrades": Array [
-    Object {
-      "branchName": "some-branch",
-      "depName": "some-dep",
-      "foo": 2,
-      "groupName": "some-group",
-      "prTitle": "some-title",
-    },
-  ],
-}
-`;
diff --git a/test/workers/repository/updates/generate.spec.js b/test/workers/repository/updates/generate.spec.js
index 980338a0ee111b3a166df659c563df4d0c5bf2f3..99ad7f054429f30166e07436344bf446f317443e 100644
--- a/test/workers/repository/updates/generate.spec.js
+++ b/test/workers/repository/updates/generate.spec.js
@@ -15,8 +15,6 @@ describe('workers/repository/updates/generate', () => {
           groupName: 'some-group',
           branchName: 'some-branch',
           prTitle: 'some-title',
-          semanticCommits: true,
-          semanticPrefix: 'some-prefix:',
           lazyGrouping: true,
           foo: 1,
           group: {
@@ -27,7 +25,6 @@ describe('workers/repository/updates/generate', () => {
       const res = generateBranchConfig(branch);
       expect(res.foo).toBe(1);
       expect(res.groupName).toBeUndefined();
-      expect(res).toMatchSnapshot();
     });
     it('groups single upgrade if not lazyGrouping', () => {
       const branch = [
@@ -46,7 +43,6 @@ describe('workers/repository/updates/generate', () => {
       const res = generateBranchConfig(branch);
       expect(res.foo).toBe(2);
       expect(res.groupName).toBeDefined();
-      expect(res).toMatchSnapshot();
     });
     it('does not group same upgrades', () => {
       const branch = [
@@ -105,7 +101,26 @@ describe('workers/repository/updates/generate', () => {
       const res = generateBranchConfig(branch);
       expect(res.foo).toBe(2);
       expect(res.groupName).toBeDefined();
-      expect(res).toMatchSnapshot();
+    });
+    it('uses semantic commits', () => {
+      const branch = [
+        {
+          depName: 'some-dep',
+          groupName: 'some-group',
+          branchName: 'some-branch',
+          prTitle: 'some-title',
+          semanticCommits: true,
+          semanticCommitType: 'chore',
+          semanticCommitScope: 'package',
+          lazyGrouping: true,
+          foo: 1,
+          group: {
+            foo: 2,
+          },
+        },
+      ];
+      const res = generateBranchConfig(branch);
+      expect(res.prTitle).toEqual('chore(package): some-title');
     });
   });
 });