Skip to content

feat(workbench): import existing projects by GitHub URL or local path #136

Description

@tiammomo

问题概述

提供可审阅、可恢复的项目导入流程,支持关联已有目录、克隆新目录与仅关注远程项目。

实际结果

目前网页没有粘贴 GitHub 链接或本地路径的导入入口;登记依赖 project link,远程身份、fork 上游与项目用途也没有完整的持久模型。

期望结果

使用人输入 GitHub URL 或本地 Git 目录后先识别现有登记与远程身份,再选择关联、克隆或仅关注,核对计划后应用。重复导入复用项目,刷新和中断后能够继续核对并恢复。

复现步骤

检查 projects.py 的 project registry schema 1 与 React projects 页面;目前只能复制 project link CLI 命令,无法在网页完成三条导入路径。

环境信息

用户接受的 FastAPI + React 工作台 v2,依赖 #131 框架迁移与 #133 持久 local operation。实现和发布使用独立能力分支;依赖 PR 未合入前只进行本地开发,不合并两项能力到一个 PR。

验收条件

  • 输入为 GitHub 仓库 URL / SSH 身份或本地目录的判别类型,严格验证来源;识别阶段不克隆、不改写本地代码,不把 URL 内认证信息保存或传给 Git。
  • 识别远程稳定 ID、规范名称、别名、fork 与上游关系;HTTP/SSH 变体及重复路径复用相同 project_id/binding_id;旧登记和 ID 保留。
  • 提供关联已有目录、克隆至新目录、仅关注 GitHub 三条完整网页路径。项目用途独立保存,不自动生成或放宽贡献/执行策略。
  • 计划绑定账号、来源、当前登记、目标目录、工作区指纹和选择,应用前复核;已有目录、dirty 文件、分支及 origin 不被导入覆盖或改变。
  • 复用 native/local 隔离队列,识别/计划/应用状态持久化,幂等冲突、并发重复、SSH 不可用、断网、克隆中断及跨数据库部分完成均有可核对的恢复结果。不能把仅远程登记失败误报为全部导入失败或重复创建项目。
  • 正常启动/GET 不迁移主状态与项目登记数据库;升级计划包含需要变更的数据库与可验证备份。首次显式导入可初始化空状态。
  • 公开 fixture 在加固 verifier 中验证三项目场景、身份去重、fork关系、源码不变、克隆冲突与恢复、跨项目/账号/原生队列边界、浏览器输入/选择/预览/应用及刷新恢复;包含完整回归、分发包和浏览器验收。

补充信息

本 Issue 交付完整的已有项目接入能力,采用已接受的来源识别 → 不可变计划 → 显式应用流程。初版扫描、上下文与 WorkItem 交接由后续独立能力交付;导入结果要提供进入 GitHub 维护和工作区的入口。本次只读 GitHub 和写本地登记/新建克隆,不提交 PR、不改分支、不自动纳管用户未选择的其他目录;不启用周期调度。凭据仅由 REST client 解析,Git 使用宿主 SSH,测试和容器不接收凭据。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions