From 442a31c520ca776a1be53e05a1b2ae054e35d218 Mon Sep 17 00:00:00 2001
From: Sebastian Poxhofer <secustor@users.noreply.github.com>
Date: Thu, 25 Jul 2024 18:59:53 +0200
Subject: [PATCH] fix(config/migration): migrate wildcard patterns for
 matchPackagePatterns (#30382)

---
 .../migrations/custom/package-rules-migration.spec.ts    | 8 ++++++++
 lib/config/migrations/custom/package-rules-migration.ts  | 9 ++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/lib/config/migrations/custom/package-rules-migration.spec.ts b/lib/config/migrations/custom/package-rules-migration.spec.ts
index 2075a57274..0c69d6261e 100644
--- a/lib/config/migrations/custom/package-rules-migration.spec.ts
+++ b/lib/config/migrations/custom/package-rules-migration.spec.ts
@@ -140,6 +140,10 @@ describe('config/migrations/custom/package-rules-migration', () => {
     expect(PackageRulesMigration).toMigrate(
       {
         packageRules: [
+          {
+            matchPackagePatterns: ['*'],
+            automerge: true,
+          },
           {
             matchPackagePatterns: ['foo', 'bar'],
             automerge: true,
@@ -153,6 +157,10 @@ describe('config/migrations/custom/package-rules-migration', () => {
       },
       {
         packageRules: [
+          {
+            automerge: true,
+            matchPackageNames: ['*'],
+          },
           {
             automerge: true,
             matchPackageNames: ['/foo/', '/bar/'],
diff --git a/lib/config/migrations/custom/package-rules-migration.ts b/lib/config/migrations/custom/package-rules-migration.ts
index 6b8aea4780..44d19e930c 100644
--- a/lib/config/migrations/custom/package-rules-migration.ts
+++ b/lib/config/migrations/custom/package-rules-migration.ts
@@ -78,7 +78,14 @@ function mergeMatchers(packageRule: PackageRule): PackageRule {
       const patterns = is.string(val) ? [val] : val;
       if (is.array(patterns, is.string)) {
         newPackageRule.matchPackageNames ??= [];
-        newPackageRule.matchPackageNames.push(...patterns.map((v) => `/${v}/`));
+        newPackageRule.matchPackageNames.push(
+          ...patterns.map((v) => {
+            if (v === '*') {
+              return '*';
+            }
+            return `/${v}/`;
+          }),
+        );
       }
       delete newPackageRule.matchPackagePatterns;
     }
-- 
GitLab