Github Actions 自动同步到 Gitee

目录

        • 引言
        • 具体方案

引言

  • 平时开源代码一般已Github为主,但是会遇到网不好的情况,于是考虑将Github仓库自动同步到Gitee上,作为备份。
  • 考虑不能手动做这个事情,于是想到了Github Actions 自动化同步到Gitee中

具体方案

假设Github已经有了仓库,这里以RapidAI/YOLO2COCO仓库为例。
!!!注意:下图图文并不完全对应,以文字为主

  1. 在Github仓库下开通Actions的功能,点击Actions选项卡→ 点击右下角Create a new workflow,命名为SyncToGitee.yml即可。
    Github Actions 自动同步到 Gitee_第1张图片
  2. 编写workflow的yml代码, 可以复制如下代码到自己yml中,需要更改的地方,在代码中已经标出
    name: syncToGitee
    on:
      push:
        branches:
          - main
    jobs:
      repo-sync:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout source codes
            uses: actions/checkout@v3
    
          - name: Mirror the Github organization repos to Gitee.
            uses: Yikun/hub-mirror-action@master
            with:
              src: 'github/RapidAI'    						# 这里改为自己github账号名称,如github/xiaoming
              dst: 'gitee/RapidAI'     						# 这里改为gitee上账号名称,如gitee/xiaoming
              dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}  	# 这是生成的私钥,下面第3步会讲
              dst_token:  ${{ secrets.GITEE_TOKEN }}     	# 这是gitee上生成的token,下面会讲
              force_update: true
              static_list: "YOLO2COCO"   					# 同步的仓库名称,这里为YOLO2COCO,意思是会自动同步该仓库到gitee下同名仓库
              debug: true
    
  3. 配置公钥、私钥和Gitee Token
    1. 配置公钥和私钥:公钥是Gitee这里拿着,私钥是Github拿着。因为是Github这里要同步到Gitee.
      • 生成私钥和公钥:ssh-kengen -t ed25529 -C [email protected] ,具体可参见:生成/添加SSH公钥
      • 生成完之后,会在指定目录下有两个文件:id_ed25519id_ed25519.public,前者是私钥,后者是公钥。
      • id_ed25519用记事本打开,复制里面内容,粘贴到Github个人仓库下的secret中。步骤:点击仓库首页选项卡setting,会看到如下图,点击新建New repository secret
        Github Actions 自动同步到 Gitee_第2张图片
      • 输入Name为GITEE_PRIVATE_KEY, Value为复制的私钥内容
        Github Actions 自动同步到 Gitee_第3张图片
    • 打开Gitee个人账号的设置页面 → 点击安全设置下的私人令牌 → 右上角生成新令牌,如下图所示:
      Github Actions 自动同步到 Gitee_第4张图片
    • 点击提交之后,会得到类似下图所示的私人令牌,将其复制,并配置到Github的secret界面,类似上一步的私钥那样。
      Github Actions 自动同步到 Gitee_第5张图片
    • 最终Github这里配置的Actions secrets如下:
      Github Actions 自动同步到 Gitee_第6张图片
    1. 配置Gitee端的公钥:进入Gitee个人账号界面下的SSH公钥界面,类似下图,将上面生成的id_ed25519.public目录用记事本打开,复制里面内容到下图中的公钥框里,标题可根据用途命名。
      Github Actions 自动同步到 Gitee_第7张图片
  4. 至此,整个配置就已经完毕。可以将步骤2中的yml文件提交到仓库中,就可以自动触发Actions执行,可以查看是否可以自动同步到Gitee仓库下。

你可能感兴趣的:(工具,gitee,github)