SuperAPI AI 工具集

migrate-internal-package

部署与运维

查看项目

更新于 10-16 06:43

技能介绍

用途:把其他 TryGhost 仓库中的某个包迁入 Ghost,成为仅内部使用的工作区包,同时保留其 Git 历史,避免出现两仓库都不拥有该包的过渡期。适用前提是该包不再作为受支持的公开 API;若仍有外部消费者需要新版本,应停止使用本内部迁移流程。

主要能力与用法:以未压缩的 git subtree 方式从记录的源仓库和包路径导入历史,而不是复制文件、加 --squash 或手工重建旧提交;随后补充集成提交,将包设为私有并使用内部占位版本,设置 ghostPackage.goldenPath 与 ghostPackage.reason,把 Ghost 消费者改为 workspace:,用 pnpm 更新锁文件,最小化适配配置与测试;依赖按已存在于 Ghost 的用 workspace:、可由 Ghost catalog 满足的用 catalog:,必要时新增命名迁移 catalog 并记录。历史变更操作须在独立的 Ghost worktree 中进行,先执行 pnpm bootstrap(而非 pnpm setup),逐条或 fail-fast 执行,先记录并比对目标 HEAD 与 origin/main。

流程顺序:先产出带可追溯源历史的绿色导入 PR(标题以 [Don't merge] 开头并附警告),再由 Ghost 仓库管理员运行受保护的合并脚本 --confirm 完成一次性合并提交;随后在源仓库移除包目录、工作区与锁文件条目、发布与 Changesets 配置、Renovate 规则、测试文档及残留引用;如包曾发布且不再支持直接使用,则对所有历史版本执行 npm deprecate;最后清理迁移专用自动化,并与当前包模板对比做现代化改造。

限制:不得代为执行 --confirm 合并、变更仓库设置、合并 PR、废弃 npm 版本或强推;不得索取或存储凭据与 OTP。导入 PR 不得使用 squash 或 rebase 合并,也不得置于 GitHub PR stack 中。完成标准包括源拆分历史可从 Ghost main 追溯、Ghost 通过工作区消费该包、源仓库不再消费或发布、npm 状态符合策略、临时变更的仓库设置已恢复。