From 4dd107484f0eebfcb188c5341293740d5ee46f12 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sun, 23 Aug 2026 16:41:46 +0800 Subject: [PATCH] fix(ci): merge supplemental database issue aliases --- .github/scripts/database-issue-catalog.mjs | 14 +++++++++++++- .github/scripts/label-issue-database.test.mjs | 8 ++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/scripts/database-issue-catalog.mjs b/.github/scripts/database-issue-catalog.mjs index 035c23dcb0..9d923b7562 100644 --- a/.github/scripts/database-issue-catalog.mjs +++ b/.github/scripts/database-issue-catalog.mjs @@ -91,7 +91,19 @@ const supplementalDrivers = [ const manifestUrl = new URL("../../crates/dbx-core/assets/database-drivers.manifest.json", import.meta.url); const manifest = JSON.parse(fs.readFileSync(manifestUrl, "utf8")); -const catalogEntries = [...manifest.drivers, ...supplementalDrivers]; +const manifestDbTypes = new Set(manifest.drivers.map((driver) => driver.dbType)); +const supplementalByDbType = new Map(supplementalDrivers.map((driver) => [driver.dbType, driver])); +const catalogEntries = [ + ...manifest.drivers.map((driver) => { + const supplemental = supplementalByDbType.get(driver.dbType); + if (!supplemental) return driver; + return { + ...driver, + aliases: [...new Set([...(driver.aliases || []), ...(supplemental.aliases || [])])], + }; + }), + ...supplementalDrivers.filter((driver) => !manifestDbTypes.has(driver.dbType)), +]; const duplicateDbTypes = catalogEntries .map((driver) => driver.dbType) .filter((dbType, index, values) => values.indexOf(dbType) !== index); diff --git a/.github/scripts/label-issue-database.test.mjs b/.github/scripts/label-issue-database.test.mjs index 98c3e7b869..b7a9fa7088 100644 --- a/.github/scripts/label-issue-database.test.mjs +++ b/.github/scripts/label-issue-database.test.mjs @@ -50,6 +50,14 @@ test("Kingbase aliases retain historical and current company names", () => { assert.equal(kingbase.aliases.includes("中电科金仓"), false); }); +test("supplemental aliases merge into manifest entries without duplicating labels", () => { + const mqttEntries = databaseIssueDrivers.filter((driver) => driver.dbType === "mqtt"); + assert.equal(mqttEntries.length, 1); + assert.equal(mqttEntries[0].aliases.includes("emqx"), true); + assert.equal(mqttEntries[0].aliases.includes("hivemq"), true); + assert.equal(mqttEntries[0].aliases.includes("mosquitto"), true); +}); + test("labels native and compatibility database products with their families", () => { const cases = [ ["Turso", ["db/turso"]],