Skip to content
50.代码托管与部署»30.CNB»10.云原生构建»LV010-git-sync的应用.md

LV010-git-sync的应用

有一些仓库,我存放在gitee或者github中作为备份,但是开发的时候想使用cnb的云原生开发环境,这里我们怎么实现cnb仓库同步到gitee或者github呢?

一、git-sync

1. 简介

我们来到cnb的插件市场:插件市场 | CNB 文档,在里面我们会看到这样一个插件:git-sync

image-20251019093346381

2. 参数说明

参数名必填默认值说明
target_url-目标仓库的URL,支持HTTPS或SSH格式
auth_typehttps认证类型,可选值:httpsssh
username否*-HTTPS认证时的用户名(*使用HTTPS时必填)
password否*-HTTPS认证时的密码或访问令牌(*使用HTTPS时必填)
ssh_key否*-SSH私钥内容(*使用SSH时必填)
branch-要推送的目标分支,指定后只推送这个分支。不指定时推送所有分支
forcefalse是否强制推送(使用--force选项)。在rebase模式下默认为true
push_tagsfalse是否推送标签
git_userGit Sync PluginGit提交时使用的用户名
git_emailgit-sync@plugin.localGit提交时使用的邮箱
git_host-自定义Git服务器域名
sync_modepush同步模式,可选值:push(推送)或rebase(保留目标仓库文件)

3. 安全建议

  1. 使用 HTTPS 认证时,建议使用访问令牌(Access Token)而不是实际密码
  2. 确保将敏感信息(如密码、访问令牌、SSH 密钥)保存在 CNB 的密钥仓库中,然后通过 imports 引入
  3. 如果使用 SSH 密钥,确保密钥具有适当的权限
  4. 建议在目标仓库上设置适当的访问权限控制

二、使用示例

这里以gitee为例。

1. 创建gitee个人令牌

点击个人设置,然后找到私人令牌

image-20251019093719784

在这里生成私人令牌即可。

2. CNB密钥仓库

我们可以把上面的个人令牌存放到秘钥仓库去(和github的仓库环境变量类似,可以保护我们的个人信息已经密钥),后面用下面的语法引入并使用:

yaml
imports: https://cnb.cool/W3C/sumu/secret-key/-/blob/main/xxx.yml

3. 流水线配置

我们创建.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,然后就可以看到启动了流水线:

image-20251019100429041

再来gitee看一下:

image-20251019100514545

莫道桑榆晚 为霞尚满天.