From 0e9d54b517ddf6bab963aadb57634e5030119472 Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Fri, 3 Oct 2025 09:44:38 +0530 Subject: [PATCH] fix: add backward compatibility for skipStarredIssues field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since githubConfig is stored as JSON in the database (not individual columns), no database migration is needed. However, we need to handle reading old configs that still use the 'skipStarredIssues' field name. Changes: - Added skipStarredIssues as optional field in Zod schema (marked deprecated) - Updated config mapper to check both starredCodeOnly and skipStarredIssues - Old configs will continue to work seamlessly - New configs will use starredCodeOnly field name This ensures zero-downtime upgrades for existing installations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/lib/db/schema.ts | 1 + src/lib/utils/config-mapper.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts index 270855e..01cb054 100644 --- a/src/lib/db/schema.ts +++ b/src/lib/db/schema.ts @@ -28,6 +28,7 @@ export const githubConfigSchema = z.object({ mirrorStrategy: z.enum(["preserve", "single-org", "flat-user", "mixed"]).default("preserve"), defaultOrg: z.string().optional(), starredCodeOnly: z.boolean().default(false), + skipStarredIssues: z.boolean().optional(), // Deprecated: kept for backward compatibility, use starredCodeOnly instead starredDuplicateStrategy: z.enum(["suffix", "prefix", "owner-org"]).default("suffix").optional(), }); diff --git a/src/lib/utils/config-mapper.ts b/src/lib/utils/config-mapper.ts index d85f947..c27bd4e 100644 --- a/src/lib/utils/config-mapper.ts +++ b/src/lib/utils/config-mapper.ts @@ -152,7 +152,8 @@ export function mapDbToUiConfig(dbConfig: any): { // Map advanced options const advancedOptions: AdvancedOptions = { skipForks: !(dbConfig.githubConfig?.includeForks ?? true), // Invert includeForks to get skipForks - starredCodeOnly: dbConfig.githubConfig?.starredCodeOnly || false, + // Support both old (skipStarredIssues) and new (starredCodeOnly) field names for backward compatibility + starredCodeOnly: dbConfig.githubConfig?.starredCodeOnly ?? (dbConfig.githubConfig as any)?.skipStarredIssues ?? false, }; return {