CNB迁移和UI定制
CNB迁移和UI定制
我自己目前在使用的两个代码仓库平台分别是GitHub和CNB。我自己写的代码基本在CNB上,GitHub一般是我Fork的大佬们写的代码。如何才能把其他的代码平台的仓库迁移到CNB上呢,CNB官方也提供了好多种,有CNB Code Import代码仓库批量迁移工具、Git Sync多平台同步工具、还有制品迁移的工具。有了这些工具就可以把GitHub上一些大佬写的代码迁移到CNB上来。自己如果是想要修改,直接在云开发中去修改,也是不错的,也就没必要去clone到本地了,还要安装一堆环境依赖显得很繁琐。
CNB仓库迁移
一、仓库批量迁移工具
CNB Code Import工具支持从支持 CODING
、Github
、Gitlab
、Gitee
、阿里云效
以及通用第三方
代码托管平台的代码仓库批量迁移至 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,如下
点击创建token按钮后,Note随便填写,token过期时间也按照你的需求选择就行,☑️勾选repo就行了。然后点击【Generate token】即可,然后复制生成的token,如下
2、CNB 创建根组织
在前面的有关CNB的章节中有讲过组织的概念和创建方式,这里省略。
3、创建CNB访问令牌
在【个人设置】->【访问令牌】中创建CNB访问令牌,常用场景☑️勾选迁移工具凭证如下,令牌名自定义点击创建就行了。创建完成后会有令牌的token信息,注意保存。
完成上述操作准备工作就做好了。
迁移代码仓库
进入fork的code import仓库界面,可以看到提供了两种迁移代码仓库的方法,一种是通过cnb流水线,一种是dokcer,他们本质是相同的,都是使用的同一个docker镜像,在前面有关cnb的章节提到过,cnb的所有插件,都是一个docker镜像。
通过流水线迁移
1、点击code import仓库上的【执行】按钮,会出现一个下拉菜单,选择GitHub,如果你从其他平台迁移,选择对应的就行了。如下
2、点击源平台以后会出现一个对话框如下,需要填写的就是源平台访问令牌、根组织名、CNB 访问令牌。直接填写对应的栏目就行了。然后点击GitHub按钮,如下
这时候就会立马触发批量同步仓库的流水线,可以在云原生构建栏目查看迁移日志,在日志中可以查看到一共迁移了多少个仓库成功了多少,失败了多少,等待仓库迁移完成✅就行了。
在仓库列表就可以看到GitHub仓库所有的都迁移过来了。
通过docker命令迁移
创建空的CNB仓库这里省略,进入云原生开发环境中,执行以下命令,其他平台迁移参数可以点这里 查看。迁移的核心参保可以看这里 。
1 | docker run --rm \ |
二、Git Sync工具
一个用于在不同 Git 平台之间同步代码的插件。支持通过 HTTPS 或 SSH 方式同步代码到其他 Git 托管平台。
1 | main: |
或者是要把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 | workspace: |
当开发环境中未安装 openssh(仅支持 WebIDE):无论此参数配置为 true 还是 false,环境创建完都将自动打开 WebIDE
还可以自定义设置fork仓库的按钮,定义点赞功能等详细可以看这里 。
总结
代码仓库同步工具还是蛮方便的,可以快速批量的同步源平台的代码仓库,可以省去不少时间,至于这个UI自定义,目前还没有找到更好的玩法,除了能增加一点自定义化的东西外,没有看到啥实质的功能🤣。