首页 > 其他分享 >自动同步 Github 仓库到 Gitee 仓库

自动同步 Github 仓库到 Gitee 仓库

时间:2024-03-23 19:33:37浏览次数:32  
标签:Github 仓库 dst GITEE repo -- key Gitee

自动同步你的 Github 仓库到 Gitee 仓库

个人公私钥的创建

 ssh-keygen -t ed25519 -C "Gitee SSH Key for Github Action"

输出,如:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):#输入保存路径
Enter passphrase (empty for no passphrase):#输入密码
Enter same passphrase again:#再次确认密码
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
|    .o           |
|   .+oo          |
|  ...O.o +       |
|   .= * = +.     |
|  .o +..S*. +    |
|. ...o o..+* *   |
|.E. o . ..+.O    |
| . . ... o =.    |
|    ..oo. o.o    |
+----[SHA256]-----+

Gitee的token创建

头像-->设置-->私人令牌-->生成令牌

填写私人令牌描述后点击提交,将token进行保存

Actions secrets设置

项目目录-->setting-->Secrets and variables-->Actions-->New repository secret

需要生成三个:

GITEE_AND_GITHUB_PRIVATE_KEY :上面生成的私钥

GITEE_TOKEN:上面生成的token

GITEE_USER:头像-->设置-->个人资料-->个人空间地址 有个自己填写的地址,写那个地址名称

yml文件提交

.github/workflows下创建文件sync2gitee.yml,内容如下:

# 通过 Github actions, 在 Github 仓库的每一次 commit 后自动同步到 Gitee 上
name: sync2gitee
on:
  push:
    branches:
      - master
jobs:
  repo-sync:
    env:
      dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
      dst_token: ${{ secrets.GITEE_TOKEN }}
      gitee_user: ${{ secrets.GITEE_USER }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false

      - name: sync github -> gitee
        uses: Yikun/hub-mirror-action@master
        if: env.dst_key && env.dst_token && env.gitee_user
        with:
          # 必选,需要同步的 Github 用户(源)
          src: 'github/${{ github.repository_owner }}'
          # 必选,需要同步到的 Gitee 用户(目的)
          dst: 'gitee/${{ secrets.GITEE_USER }}'
          # 使用ssh方式clone,保证原仓的可读性
          clone_style: "ssh"
          # 必选,Gitee公钥对应的私钥,https://gitee.com/profile/sshkeys
          dst_key: ${{ secrets.GITEE_AND_GITHUB_PRIVATE_KEY  }}
          # 必选,Gitee对应的用于创建仓库的token,https://gitee.com/profile/personal_access_tokens
          dst_token:  ${{ secrets.GITEE_TOKEN }}
          # 如果是组织,指定组织即可,默认为用户 user
          # account_type: org
          # 直接取当前项目的仓库名
          static_list: ${{ github.event.repository.name }}
          # 目的端的可见性设置为私有仓
          # dst_visibility: 'private'
          # 还有黑、白名单,静态名单机制,可以用于更新某些指定库
          # static_list: 'repo_name,repo_name2'
          # black_list: 'repo_name,repo_name2'
          # white_list: 'repo_name,repo_name2'

之后就可以没次提交后自动同步了,GitHub Actions 对于个人账号,每个月有 2000 分钟的免费额度,普通的一次 GitHub Action 执行需要 2-3 分钟,2000 / 3 = 666次提交,足足满足一天 22 次的改动提交,几乎没有任何顾虑。

标签:Github,仓库,dst,GITEE,repo,--,key,Gitee
From: https://www.cnblogs.com/jurij/p/18091574

相关文章

  • Maven发布开源框架到远程仓库
    1.背景当你写了一个自我感觉良好的开源工具希望给他人分享,如果只是在github等网站进行公布之外,用户使用起来还不是很方便,特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库,这样别人使用就会方便很多。接下来,我们就来看看如何使用maven发布自己依赖到中央仓库吧......
  • https://github.com/google/adb-sync
    大致的实现方式:是一个python文件,在windows上就pythonadb-sync-R-t-n--dry-run/storage/emulated/0C:\a\b这样运行 其中本机系统的文件列表和修改时间获取就用os库(importos)手机上的文件列表和修改时间获取就用ls-al     https://blog.csdn.net/chabb/ar......
  • GitHub Copilot 在命令行界面中的全面应用:为系统运维人员带来的革命性进步
    随着技术的迅猛发展,GitHubCopilot在命令行界面(CLI)中的全面应用标志着对系统运维人员工作方式的重大革新。此次进步不仅仅体现在命令建议和解释的直接获取,更通过为Bash、PowerShell和Zsh添加助手别名,简化了用户的工作流程。本文将探讨GitHubCopilot在CLI中全面可......
  • CCF软件能力认证202312-1——仓库规划
    问题描述西西艾弗岛上共有个仓库,依次编号为。每个仓库均有一个维向量的位置编码,用来表示仓库间的物流运转关系。具体来说,每个仓库均可能有一个上级仓库,满足:仓库位置编码的每一维均大于仓库位置编码的对应元素。比如编码为的仓库可以成为的上级,但不能成为的上级。如......
  • Github最受欢迎的TOP 10开源RTSP流媒体项目
    Github最受欢迎的TOP10开源RTSP流媒体项目一块程序圆关注IP属地:河南0.1812020.09.2209:45:20字数457阅读6,684Github选出 TOP10开源免费的RTSP流媒体项目,以下是具体排名及星星数。 1、Easydarwin星星数:4,307Easydarwin是国内团队开发的开源流媒体框架......
  • 批量上传本地Maven仓库jar包到Nexus私服
    创建import.sh脚本,写入以下内容#!/bin/bash#copyandrunthisscripttotherootoftherepositorydirectorycontainingfiles#thisscriptattemptstoexcludeuploadingitselfexplicitlysothescriptnameisimportant#Getcommandlineparamswhilegetopt......
  • CentOS7.9 搭建本地Yum源仓库
    一、背景        在公司的生产环境中,服务器一般处于内网,而我们想在这样的服务器上安装软件时会出现无法访问Internet从而导致依赖安装失败的问题,今天我们通过配置离线YUM源仓库来解决类似问题。二、查看系统版本[root@superset~]#cat/etc/redhat-releaseCentOS......
  • 搭建麒麟桌面操作系统V10 SP1 2303的内网全量仓库源
    来源:公众号鹏大圣运维作者:鹏大圣免责声明本文所有内容,只在测试环境中进行,如果您要使用文章中的内容对您的环境进行操作,请您一定知悉:所有的操作都会带来一定的风险,可能会导致系统崩溃等多种问题,切勿盲目操作,本公众号为您提供一种操作的思路,不对您的任何操作行为负责,请您知......
  • 如何打造一个花里胡哨的Github个人主页?
    1、介绍2、使用2.1、创建一个同名仓库2.2、引用模板2.3、为内容添加有趣模块2.3.1、徽章badge2.3.2、waka时间展示2.3.3、展示GitHubstars等信息2.3.4、GitHubcontributions贪吃蛇游戏3、总结1、介绍今天介绍下GitHub的一项特色功能-GitHubprofile,......
  • 忘记gitlab代码仓库登录密码,如何找回?
    一、密码要求必须是管理员或者自管理的Gitlab实例密码长度限制:Minimum:8charactersMaximum:128characters避免使用弱密码:例如gitlab、人名 二、密码找回方式2.1使用UI【适用普通账号】使用root账号,登录后,进入到管理中心。 搜索到用户后,点击编辑按钮 编辑态......