一个 AI Agent Skill,基于 cnbcool/code-import 迁移工具实现,让用户通过自然语言对话即可批量迁移代码仓库到 CNB 平台。
用户只需告诉 AI "帮我把 GitHub 上的仓库迁移到 CNB",AI 会自动引导收集必要信息、校验环境、组装参数并调用 cnbcool/code-import Docker 镜像执行迁移,全程无需手动编写命令。
| 平台 | 标识 | 说明 |
|---|---|---|
| CODING | coding | 腾讯云开发者平台 |
| GitHub | github | — |
| GitLab | gitlab | 支持自建实例 |
| Gitee | gitee | 码云 |
| 阿里云 Codeup | aliyun | 云效代码管理 |
| 华为云 CodeArts | huaweicloud | CodeArts Repo |
| 腾讯工蜂 | gongfeng | 腾讯内部代码托管 |
| Gitea | gitea | 开源自建平台 |
| CNB | cnb | CNB 之间互迁 |
| 通用平台 | common | 支持 HTTP/SSH 克隆的任意平台 |
本 Skill 运行依赖 Docker,需要在执行迁移的机器上安装 Docker。
apt-get update && apt-get install -y docker.io
# 或使用官方一键脚本
curl -fsSL https://get.docker.com | bash
yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io
dnf install -y dnf-plugins-core dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo dnf install -y docker-ce docker-ce-cli containerd.io
brew install --cask docker open /Applications/Docker.app
winget install -e --id Docker.DockerDesktop # 安装后需重启系统
curl -fsSL https://get.docker.com | bash
Linux 安装后启动服务:
systemctl start docker
systemctl enable docker
💡 macOS 和 Windows 上 Docker Desktop 会自动管理服务,无需手动启动。
根据你使用的 AI Agent,选择对应方式安装本 Skill:
在 OpenClaw 中通过 Skill 市场搜索 cnb-code-import 安装,或手动添加:
openclaw skill add https://cnb.cool/cnb/skills/cnb-code-import-skills
在 CodeBuddy 中打开 Skill 管理面板,点击「添加 Skill」,输入仓库地址:
https://cnb.cool/cnb/skills/cnb-code-import-skills
或在项目目录下克隆后,CodeBuddy 会自动识别 SKILL.md:
git clone https://cnb.cool/cnb/skills/cnb-code-import-skills cnb-code-import
将 Skill 仓库克隆到本地工作目录,Claude Code 会自动加载 SKILL.md 作为上下文:
git clone https://cnb.cool/cnb/skills/cnb-code-import-skills cnb-code-import
克隆仓库到项目目录后,在 Cursor 中打开该目录,AI 会自动读取 SKILL.md 获取 Skill 能力:
git clone https://cnb.cool/cnb/skills/cnb-code-import-skills cnb-code-import
对于支持 Skill / Tool 加载的 AI Agent,将本仓库克隆到本地即可。Agent 读取 SKILL.md 即可获取完整的迁移能力:
git clone https://cnb.cool/cnb/skills/cnb-code-import-skills cnb-code-import
迁移前需要准备两个访问令牌:
| 平台 | 所需权限 |
|---|---|
| CODING | 用户信息 - 只读、项目信息 - 只读、代码仓库 - 只读(需团队所有者或管理员) |
| GitHub | repo:all、read:org(classic token) |
| GitLab | read_api |
| Gitee | user_info、projects |
| 阿里云 | 代码仓库 - 只读 |
| CNB | account-engage:r、group-resource:r,授权范围:全部仓库/制品库 |
| 工蜂 | api、read_repository |
| 华为云 | 仓库读写 |
| Gitea | read:organization、read:repository、read:user |
安装 Skill 后,直接用自然语言与 AI 对话即可。AI 会根据你的需求自动引导操作。
用户:帮我把 GitHub 上的仓库迁移到 CNB
AI:好的,我需要以下信息来执行迁移:
- 你的 GitHub Token(需要
repo:all和read:org权限)- CNB 目标组织名称
- CNB Token
用户:GitHub Token 是 ghp_xxx,CNB 组织是 myorg,CNB Token 是 cnb_xxx
AI:收到,我来确认一下迁移配置……(确认后自动执行)
用户:我想把 GitLab 上的 frontend 和 backend 两个仓库迁移到 CNB 的 myteam 组织
用户:我们有个自建的 GitLab,地址是 https://gitlab.company.com,帮我迁移到 CNB
用户:帮我把华为云 CodeArts 上的代码迁移到 CNB,我有 AK/SK
以下参数由 AI 在对话过程中自动收集,用户无需记忆命令行格式。
| 信息 | 说明 |
|---|---|
| 源平台 | 代码当前所在平台(GitHub / GitLab / CODING 等) |
| 源平台 Token | 源平台的访问令牌 |
| CNB 组织名 | CNB 上的目标根组织(需提前创建) |
| CNB Token | CNB 平台的访问令牌 |
| 配置 | 说明 | 默认行为 |
|---|---|---|
| 指定仓库 | 只迁移特定仓库 | 迁移全部仓库 |
| 源平台地址 | 自建实例的 URL | 自动识别公有云地址 |
| 并发数 | 同时迁移的仓库数量 | 5(最大 10) |
| 大文件处理 | 是否自动转 LFS | 自动转换 |
| 跳过已有仓库 | CNB 侧已存在时跳过 | 不跳过 |
| 只下载不推送 | 仅克隆到本地 | 克隆 + 推送 |
| 手动选择仓库 | 生成列表文件供筛选 | 迁移全部 |
以下操作有数据风险,AI 会主动提示并要求确认:
| 操作 | 风险说明 |
|---|---|
| 强制推送 | 覆盖 CNB 侧仓库历史,不可恢复 |
| Rebase 同步 | 可能遇到冲突需人工解决,可能丢失提交 |
| 不完整推送 | 忽略损坏的 LFS 文件,数据可能不完整 |
用户对话 → AI 收集信息 → 校验环境 → 组装参数 → 执行 Docker 迁移 → 输出结果
cnbcool/code-import 镜像完成迁移迁移过程中的文件存放在工作目录(默认 ~/code-import-workspace):
~/code-import-workspace/ ├── <仓库克隆的临时文件>/ ├── successful.log # 已成功迁移的仓库记录 └── repo-path.txt # 手动选择迁移的仓库列表(可选)
Q: 超过 256MB 的大文件怎么处理?
默认自动将大文件转换为 Git LFS。转换后 commit ID 会发生变化。
Q: 获取仓库列表失败?
通常是 Token 权限不足。AI 会根据平台提示需要的具体权限。
Q: 迁移中断了怎么办?
再次发起同样的迁移请求即可,已成功的仓库会自动跳过。
Q: push 失败提示先 pull?
告诉 AI 需要强制推送,AI 会提示风险并在你确认后执行。
Q: 只想迁移部分仓库?
直接告诉 AI 你想迁移哪些仓库,或者让 AI 生成仓库列表供你筛选。
Q: 可以迁移自建 GitLab / Gitea 实例吗?
可以,告诉 AI 你的实例地址即可。
cnb-code-import/ ├── SKILL.md # Skill 定义文件(AI Agent 读取) ├── README.md # 本文档 └── scripts/ └── migrate.sh # 迁移执行脚本
MIT