问题
很多团队真正宝贵的不是 git 对象,而是 Release 里附带的 artifacts(.dmg / .tar.gz / 预训练模型权重 / Docker 镜像 tarball)。这些文件不存在 git 仓库里,当前即使镜像了 git 仓库本身,Release 资产也会丢失; 源 repo 一旦被 archive/删,资产即灭。
建议改动
- 在
RepoConfig 加 mirrorReleases: Bool 开关
- 新增
ReleaseMirrorService:
- 调 source provider 的
/releases 列表,与 target provider 的 /releases 做 diff
- 缺失的 release:在 target 创建同 tag / title / body 的 release
- 逐个下载 source asset(stream),上传到 target 的 assets 端点(GitHub 需两步:create asset upload URL + PUT 到 URL)
- 支持断点续传(记录已完成 asset 名单,避免大文件失败重头再来)
- UI 在
RepoDetailView 新增 "Releases" tab,展示同步状态
备选方案
- 只导出 release metadata(JSON)不传资产:覆盖不到核心痛点
- 依赖用户自己脚本:门槛高且散落各处
作用域检查
问题
很多团队真正宝贵的不是 git 对象,而是 Release 里附带的 artifacts(.dmg / .tar.gz / 预训练模型权重 / Docker 镜像 tarball)。这些文件不存在 git 仓库里,当前即使镜像了 git 仓库本身,Release 资产也会丢失; 源 repo 一旦被 archive/删,资产即灭。
建议改动
RepoConfig加mirrorReleases: Bool开关ReleaseMirrorService:/releases列表,与 target provider 的/releases做 diffRepoDetailView新增 "Releases" tab,展示同步状态备选方案
作用域检查