diff --git a/lib/config/migration.ts b/lib/config/migration.ts
index 38b7637d1ac5b3f714c0f67de5cb523c29b87e27..d7619dbf07d93bf9920279e1d7f72d999721e29c 100644
--- a/lib/config/migration.ts
+++ b/lib/config/migration.ts
@@ -189,11 +189,6 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig {
         if (subMigrate.isMigrated) {
           migratedConfig[key] = subMigrate.migratedConfig;
         }
-      } else if (key === 'azureAutoComplete' || key === 'gitLabAutomerge') {
-        if (migratedConfig[key] !== undefined) {
-          migratedConfig.platformAutomerge = migratedConfig[key];
-        }
-        delete migratedConfig[key];
       }
 
       const migratedTemplates = {
diff --git a/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts b/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bc581e0848606a97c8b27962d8e934cb0f31ec60
--- /dev/null
+++ b/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts
@@ -0,0 +1,67 @@
+import { AzureGitLabAutomergeMigration } from './azure-gitlab-automerge-migration';
+
+describe('config/migrations/custom/azure-gitlab-automerge-migration', () => {
+  it('should migrate non undefined gitLabAutomerge', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        gitLabAutomerge: true,
+      },
+      {
+        platformAutomerge: true,
+      }
+    );
+  });
+
+  it('should just remove undefined gitLabAutomerge', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        gitLabAutomerge: undefined,
+      },
+      {}
+    );
+  });
+
+  it('should override platformAutomerge when gitLabAutomerge defined', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        gitLabAutomerge: true,
+        platformAutomerge: false,
+      },
+      {
+        platformAutomerge: true,
+      }
+    );
+  });
+
+  it('should migrate non undefined azureAutoComplete', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        azureAutoComplete: true,
+      },
+      {
+        platformAutomerge: true,
+      }
+    );
+  });
+
+  it('should just remove undefined azureAutoComplete', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        azureAutoComplete: undefined,
+      },
+      {}
+    );
+  });
+
+  it('should override platformAutomerge when azureAutoComplete defined', () => {
+    expect(AzureGitLabAutomergeMigration).toMigrate(
+      {
+        azureAutoComplete: true,
+        platformAutomerge: false,
+      },
+      {
+        platformAutomerge: true,
+      }
+    );
+  });
+});
diff --git a/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts b/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ee437d3c7906742fcecb832c7b5a174269da69f2
--- /dev/null
+++ b/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts
@@ -0,0 +1,12 @@
+import { AbstractMigration } from '../base/abstract-migration';
+
+export class AzureGitLabAutomergeMigration extends AbstractMigration {
+  override readonly deprecated = true;
+  override readonly propertyName = /^azureAutoComplete$|^gitLabAutomerge$/;
+
+  override run(value: unknown): void {
+    if (value !== undefined) {
+      this.setHard('platformAutomerge', value);
+    }
+  }
+}
diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts
index 2c5dda0f3b85b68f30d3dc9340799095a929c792..dc4b2140364e5ddd2c62b1a4641d5096b73f440c 100644
--- a/lib/config/migrations/migrations-service.ts
+++ b/lib/config/migrations/migrations-service.ts
@@ -8,6 +8,7 @@ import { AutomergeMigration } from './custom/automerge-migration';
 import { AutomergeMinorMigration } from './custom/automerge-minor-migration';
 import { AutomergePatchMigration } from './custom/automerge-patch-migration';
 import { AutomergeTypeMigration } from './custom/automerge-type-migration';
+import { AzureGitLabAutomergeMigration } from './custom/azure-gitlab-automerge-migration';
 import { BaseBranchMigration } from './custom/base-branch-migration';
 import { BinarySourceMigration } from './custom/binary-source-migration';
 import { BranchNameMigration } from './custom/branch-name-migration';
@@ -77,6 +78,7 @@ export class MigrationsService {
     AutomergeMinorMigration,
     AutomergePatchMigration,
     AutomergeTypeMigration,
+    AzureGitLabAutomergeMigration,
     BaseBranchMigration,
     BinarySourceMigration,
     BranchNameMigration,