diff --git a/app/server/modules/lifecycle/migration.ts b/app/server/modules/lifecycle/migration.ts index 5f1cabf..bb62fa1 100644 --- a/app/server/modules/lifecycle/migration.ts +++ b/app/server/modules/lifecycle/migration.ts @@ -99,6 +99,11 @@ const migrateRepositoryFolders = async (): Promise => { const config = repo.config as Extract; + if (config.isExistingRepository) { + logger.debug(`Skipping imported repository "${repo.name}" - folder path is user-defined`); + continue; + } + if (config.name === repo.shortId) { continue; } diff --git a/app/server/modules/repositories/repositories.service.ts b/app/server/modules/repositories/repositories.service.ts index 3ce1be2..c79f6e5 100644 --- a/app/server/modules/repositories/repositories.service.ts +++ b/app/server/modules/repositories/repositories.service.ts @@ -367,6 +367,15 @@ const updateRepository = async (name: string, updates: { name?: string; compress throw new NotFoundError("Repository not found"); } + if ( + updates.name !== undefined && + updates.name !== existing.name && + existing.config.backend === "local" && + existing.config.isExistingRepository + ) { + throw new ConflictError("Cannot rename an imported local repository"); + } + let newName = existing.name; if (updates.name !== undefined && updates.name !== existing.name) { const newSlug = slugify(updates.name, { lower: true, strict: true });