diff --git a/lib/workers/repository/init/config.ts b/lib/workers/repository/init/config.ts
index 969e4681417693efdad659beb240ffca573181c0..ac5c2ae46f3033d1a0b242668ff13863d956bb51 100644
--- a/lib/workers/repository/init/config.ts
+++ b/lib/workers/repository/init/config.ts
@@ -218,9 +218,10 @@ export async function getRepoConfig(
   }
   config.baseBranch = config.defaultBranch;
   config.baseBranchSha = await checkoutBranch(config.baseBranch);
-  config.semanticCommits = await detectSemanticCommits(config);
   config = await checkOnboardingBranch(config);
   config = await mergeRenovateConfig(config);
+  config.semanticCommits =
+    config.semanticCommits ?? (await detectSemanticCommits());
   setResolvedConfig(config);
   return config;
 }
diff --git a/lib/workers/repository/init/semantic.spec.ts b/lib/workers/repository/init/semantic.spec.ts
index b920e8c411bf6d3175457f5c7d3565fe79869174..433a21d5254c1aebcc990dea24244b9a5ff48a90 100644
--- a/lib/workers/repository/init/semantic.spec.ts
+++ b/lib/workers/repository/init/semantic.spec.ts
@@ -13,21 +13,16 @@ beforeEach(() => {
 
 describe('workers/repository/init/semantic', () => {
   describe('detectSemanticCommits()', () => {
-    it('returns config if already set', async () => {
-      config.semanticCommits = true;
-      const res = await detectSemanticCommits(config);
-      expect(res).toBe(true);
-    });
     it('detects false if unknown', async () => {
       config.semanticCommits = null;
       git.getCommitMessages.mockResolvedValue(['foo', 'bar']);
-      const res = await detectSemanticCommits(config);
+      const res = await detectSemanticCommits();
       expect(res).toBe(false);
     });
     it('detects true if known', async () => {
       config.semanticCommits = null;
       git.getCommitMessages.mockResolvedValue(['fix: foo', 'refactor: bar']);
-      const res = await detectSemanticCommits(config);
+      const res = await detectSemanticCommits();
       expect(res).toBe(true);
     });
   });
diff --git a/lib/workers/repository/init/semantic.ts b/lib/workers/repository/init/semantic.ts
index 66e173d95645dea16e4344d47aa85ba4f34679ad..f9b74b62fd4eb12a328d8530edfe90e75d454f2b 100644
--- a/lib/workers/repository/init/semantic.ts
+++ b/lib/workers/repository/init/semantic.ts
@@ -1,24 +1,10 @@
 import conventionalCommitsDetector from 'conventional-commits-detector';
-import { RenovateConfig } from '../../../config';
 import { logger } from '../../../logger';
 import { getCommitMessages } from '../../../util/git';
 
-export async function detectSemanticCommits(
-  config: RenovateConfig
-): Promise<boolean> {
+export async function detectSemanticCommits(): Promise<boolean> {
   logger.debug('detectSemanticCommits()');
-  logger.trace({ config });
-  if (config.semanticCommits !== null) {
-    logger.debug(
-      { semanticCommits: config.semanticCommits },
-      `semanticCommits already defined`
-    );
-    return config.semanticCommits;
-  }
   const commitMessages = await getCommitMessages();
-  if (commitMessages) {
-    commitMessages.length = 10;
-  }
   logger.trace(`commitMessages=${JSON.stringify(commitMessages)}`);
   const type = conventionalCommitsDetector(commitMessages);
   logger.debug('Semantic commits detection: ' + type);