LV010-git-sync的应用
有一些仓库,我存放在gitee或者github中作为备份,但是开发的时候想使用cnb的云原生开发环境,这里我们怎么实现cnb仓库同步到gitee或者github呢?
一、git-sync
1. 简介
我们来到cnb的插件市场:插件市场 | CNB 文档,在里面我们会看到这样一个插件:git-sync

2. 参数说明
| 参数名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
| target_url | 是 | - | 目标仓库的URL,支持HTTPS或SSH格式 |
| auth_type | 否 | https | 认证类型,可选值:https或ssh |
| username | 否* | - | HTTPS认证时的用户名(*使用HTTPS时必填) |
| password | 否* | - | HTTPS认证时的密码或访问令牌(*使用HTTPS时必填) |
| ssh_key | 否* | - | SSH私钥内容(*使用SSH时必填) |
| branch | 否 | - | 要推送的目标分支,指定后只推送这个分支。不指定时推送所有分支 |
| force | 否 | false | 是否强制推送(使用--force选项)。在rebase模式下默认为true |
| push_tags | 否 | false | 是否推送标签 |
| git_user | 否 | Git Sync Plugin | Git提交时使用的用户名 |
| git_email | 否 | git-sync@plugin.local | Git提交时使用的邮箱 |
| git_host | 否 | - | 自定义Git服务器域名 |
| sync_mode | 否 | push | 同步模式,可选值:push(推送)或rebase(保留目标仓库文件) |
3. 安全建议
- 使用 HTTPS 认证时,建议使用访问令牌(Access Token)而不是实际密码
- 确保将敏感信息(如密码、访问令牌、SSH 密钥)保存在 CNB 的密钥仓库中,然后通过 imports 引入
- 如果使用 SSH 密钥,确保密钥具有适当的权限
- 建议在目标仓库上设置适当的访问权限控制
二、使用示例
这里以gitee为例。
1. 创建gitee个人令牌
点击个人设置,然后找到私人令牌

在这里生成私人令牌即可。
2. CNB密钥仓库
我们可以把上面的个人令牌存放到秘钥仓库去(和github的仓库环境变量类似,可以保护我们的个人信息已经密钥),后面用下面的语法引入并使用:
yaml
imports: https://cnb.cool/W3C/sumu/secret-key/-/blob/main/xxx.yml3. 流水线配置
我们创建.cnb.yml文件,并添加以下内容:
yaml
master:
push:
- stages:
- name: sync to sumumm'gitee
image: tencentcom/git-sync
imports: https://cnb.cool/sumu.k/secret-key/-/blob/main/pages.yml
settings:
target_url: https://gitee.com/sumumm/linux-env.git
auth_type: https
username: sumumm
password: ${GITEE_CNB_SYNC}4. 推送测试
我们提交后推送到cnb,然后就可以看到启动了流水线:

再来gitee看一下:
