AI正在绞尽脑汁想思路ING···
AI摘要
HunYuan-Lite

CNB迁移和UI定制

​ 我自己目前在使用的两个代码仓库平台分别是GitHub和CNB。我自己写的代码基本在CNB上,GitHub一般是我Fork的大佬们写的代码。如何才能把其他的代码平台的仓库迁移到CNB上呢,CNB官方也提供了好多种,有CNB Code Import代码仓库批量迁移工具、Git Sync多平台同步工具、还有制品迁移的工具。有了这些工具就可以把GitHub上一些大佬写的代码迁移到CNB上来。自己如果是想要修改,直接在云开发中去修改,也是不错的,也就没必要去clone到本地了,还要安装一堆环境依赖显得很繁琐。

CNB仓库迁移

一、仓库批量迁移工具

​ CNB Code Import工具支持从支持 CODINGGithubGitlabGitee阿里云效以及通用第三方代码托管平台的代码仓库批量迁移至 CNB

svn不支持,需要转化成git再做迁移。

工具地址:https://cnb.cool/cnb/plugins/cnbcool/code-import ,先fork这个仓库。

迁移前置准备

这里我使用CNB Code Import工具将GitHub仓库迁移到CNB上

在做仓库迁移前需要完成以下三步骤,分别是创建源平台访问令牌、CNB 创建根组织、创建 CNB 访问令牌。

1、创建GitHub平台访问令牌

在GitHub页面点击【setting】->然后在左边的菜单栏点击【Developer Settings】选择【Personal access tokens (classic)】点击【Generate new token】按钮创建token,如下

image-20250913210723813

点击创建token按钮后,Note随便填写,token过期时间也按照你的需求选择就行,☑️勾选repo就行了。然后点击【Generate token】即可,然后复制生成的token,如下

image-20250913210957612

2、CNB 创建根组织

在前面的有关CNB的章节中有讲过组织的概念和创建方式,这里省略。

3、创建CNB访问令牌

在【个人设置】->【访问令牌】中创建CNB访问令牌,常用场景☑️勾选迁移工具凭证如下,令牌名自定义点击创建就行了。创建完成后会有令牌的token信息,注意保存。

image-20250913210149122

完成上述操作准备工作就做好了。

迁移代码仓库

进入fork的code import仓库界面,可以看到提供了两种迁移代码仓库的方法,一种是通过cnb流水线,一种是dokcer,他们本质是相同的,都是使用的同一个docker镜像,在前面有关cnb的章节提到过,cnb的所有插件,都是一个docker镜像。

通过流水线迁移

1、点击code import仓库上的【执行】按钮,会出现一个下拉菜单,选择GitHub,如果你从其他平台迁移,选择对应的就行了。如下

image-20250913211809247

2、点击源平台以后会出现一个对话框如下,需要填写的就是源平台访问令牌、根组织名、CNB 访问令牌。直接填写对应的栏目就行了。然后点击GitHub按钮,如下

image-20250913212356251

这时候就会立马触发批量同步仓库的流水线,可以在云原生构建栏目查看迁移日志,在日志中可以查看到一共迁移了多少个仓库成功了多少,失败了多少,等待仓库迁移完成✅就行了。

image-20250913212636912

在仓库列表就可以看到GitHub仓库所有的都迁移过来了。

通过docker命令迁移

创建空的CNB仓库这里省略,进入云原生开发环境中,执行以下命令,其他平台迁移参数可以点这里 查看。迁移的核心参保可以看这里

1
2
3
4
5
6
7
8
docker run --rm  \
-e PLUGIN_SOURCE_TOKEN="xxx" \ #替换GitHub的token
-e PLUGIN_SOURCE_URL="https://github.com" \
-e PLUGIN_SOURCE_PLATFORM="github" \
-e PLUGIN_CNB_ROOT_ORGANIZATION="xxx" \ #替换cnb仓库的根组织如我的hudi22
-e PLUGIN_CNB_TOKEN="xxx" \ #替换cnb的token
-v $(pwd):$(pwd) -w $(pwd) \
cnbcool/code-import

二、Git Sync工具

一个用于在不同 Git 平台之间同步代码的插件。支持通过 HTTPS 或 SSH 方式同步代码到其他 Git 托管平台。

插件地址:https://cnb.cool/cnb/plugins/tencentcom/git-sync。官方文档使用方式写的很清楚了。需要将cnb的代码同步到GitHub也只需要简单的配置流水线就行。如下创建cnb.yml流水线,配置信息如下

1
2
3
4
5
6
7
8
9
10
main:
push:
- stages:
- name: sync to github
image: tencentcom/git-sync
settings:
target_url: https://github.com/username/repo.git #日前在GitHub创建一个空的仓库
auth_type: https
username: ${GIT_USERNAME}
password: ${GIT_ACCESS_TOKEN}

或者是要把GitHub和cnb相互同步,可以配置GitHub Actions来实现。或者使用docker命令来完成同步操作。这里省略。

若是需要同步制品,可以看这个插件:https://cnb.cool/cnb/plugins/cnbcool/artifact-migrate

UI定制

可以通过在仓库根目录新增 .cnb/settings.yml 配置文件对页面部分 UI 进行定制。例如可以给按钮添加一个hover的gif动图。

云原生开发配置,读取云原生启动按钮所在页面当前分支的 .cnb/settings.yml 配置

例如在启动云原生开发环境时让他自动进入webIDE,不在出现让我选择编辑器的页面可以在settings.yml中添加以下配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
workspace:
launch:
button:
# 按钮名称
name: 自定义的启动云原生开发
# 按钮描述
description: 点击此按钮启动云原生开发环境
# 鼠标悬浮在按钮上显示的图片(只能用仓库中当前分支的图片,填写相对仓库根目录的路径,如 .cnb/launch-hover.gif)
hoverImage: .cnb/launch-hover.gif
# CPU 核心数,默认为:8。仅对默认模版有效,如果有自定义云原生开发启动流水线,则此配置无效
cpus: 4
# 是否禁用默认按钮。默认为:false 表示不禁用。true 表示禁用
disabled: false
# 环境创建完是否自动打开 WebIDE,默认为 false
autoOpenWebIDE: true

当开发环境中未安装 openssh(仅支持 WebIDE):无论此参数配置为 true 还是 false,环境创建完都将自动打开 WebIDE

image-20250913222058096

还可以自定义设置fork仓库的按钮,定义点赞功能等详细可以看这里

总结

​ 代码仓库同步工具还是蛮方便的,可以快速批量的同步源平台的代码仓库,可以省去不少时间,至于这个UI自定义,目前还没有找到更好的玩法,除了能增加一点自定义化的东西外,没有看到啥实质的功能🤣。