From c9456f292df0b81952a6e907a149948bd9ce04f1 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Fri, 1 Aug 2025 10:01:34 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(config):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=9F=BA=E7=A1=80=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=BA.env.example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web_ui/api/configure/__init__.py | 2 +- zhenxun/utils/repo_utils/base_manager.py | 36 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py b/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py index d969d70f..779653b1 100644 --- a/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py @@ -40,7 +40,7 @@ async def _(setting: Setting) -> Result: return Result.fail("配置已存在,请先删除DB_URL内容和前端密码再进行设置。") env_file = Path() / ".env.example" if not env_file.exists(): - return Result.fail("配置文件.env.dev不存在。") + return Result.fail("基础配置文件.env.example不存在。") env_text = env_file.read_text(encoding="utf-8") to_env_file = Path() / ".env.dev" if setting.db_url: diff --git a/zhenxun/utils/repo_utils/base_manager.py b/zhenxun/utils/repo_utils/base_manager.py index c25f3ea6..00100399 100644 --- a/zhenxun/utils/repo_utils/base_manager.py +++ b/zhenxun/utils/repo_utils/base_manager.py @@ -287,14 +287,36 @@ class BaseRepoManager(ABC): "rev-parse --is-inside-work-tree", cwd=local_path ) if not success: - return RepoUpdateResult( - repo_type=repo_type or RepoType.GITHUB, - repo_name=repo_name, - owner=owner or "", - old_version="", - new_version="", - error_message=f"{local_path} 不是一个Git仓库", + # 如果不是Git仓库,尝试初始化它 + logger.info(f"目录 {local_path} 不是Git仓库,尝试初始化", LOG_COMMAND) + init_success, _, init_stderr = await run_git_command( + "init", cwd=local_path ) + if not init_success: + return RepoUpdateResult( + repo_type=repo_type or RepoType.GITHUB, + repo_name=repo_name, + owner=owner or "", + old_version="", + new_version="", + error_message=f"初始化Git仓库失败: {init_stderr}", + ) + + # 添加远程仓库 + remote_success, _, remote_stderr = await run_git_command( + f"remote add origin {repo_url}", cwd=local_path + ) + if not remote_success: + return RepoUpdateResult( + repo_type=repo_type or RepoType.GITHUB, + repo_name=repo_name, + owner=owner or "", + old_version="", + new_version="", + error_message=f"添加远程仓库失败: {remote_stderr}", + ) + + logger.info(f"成功初始化Git仓库 {local_path}", LOG_COMMAND) # 获取当前提交ID作为旧版本 success, old_version, _ = await run_git_command(