自动镜像你的 GitHub 仓库
GitHub 仓库下载本来就慢,再加上偶尔来的宕机让我有了些危机意识。
-
要是真的仓库数据因为宕机发生了数据丢失? -
要是 GitHub 全站被禁止访问了?(本身 gists 和 raw.github 域名目前在国内是不可以访问的)
「做个备份吧」!
接下来的内容告诉你如何配置,让 GitHub 的 workflow 帮你定时自动同步代码到 Gitee。
该方法基于 action https://github.com/Yikun/hub-mirror-action 实现。
先 Fork 仓库 https://github.com/ShixiangWang/sync2gitee[1],或者你自己建一个仓库进行以下步骤。
-
基于 SSH 配置公钥和私钥,[参考](https://github.com/ShixiangWang/sync-deploy#%E5%87%86%E5%A4%87%E4%B8%8E%E9%85%8D%E7%BD%AE[2])或网上N多资料。
-
将私钥传到 GitHub 仓库,通过设置中的 Secrets 创建一个
GITEE_PRIVATE_KEY
变量,将私钥内容拷贝到值区域 -
同理将公钥传到 Gitee 上,这样就可以实现 GitHub 和 Gitee 的通信
-
在 Gitee 上创建一个私人令牌(token),这个记得保存,因为它只会出现一次
-
类似第 2 步,创建一个
GITEE_TOKEN
变量,将私人令牌作为值粘贴进去。
这样配置就完成了。
如果你是自己创建的仓库,请拷贝我定义的 workflow https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml[3] 。
你还可以根据自己的实际情况修改配置,以下是有用的参考:
-
https://github.com/Yikun/hub-mirror-action
-
https://docs.github.com/en/actions
-
crontab的语法规则格式(每分钟、每小时、每天、每周、每月、每年定时执行 规则)[4]
❝目前 hub-mirror-action 不支持 > 100 个仓库的同步,如果你需要仅设置仓库白名单或黑名单,请参考第一条链接。
❞
在线阅读我的说明:https://shixiangwang.github.io/sync2gitee/[5]
Reference
https://github.com/ShixiangWang/sync2gitee: https://github.com/ShixiangWang/sync2gitee
[2]参考: https://github.com/ShixiangWang/sync-deploy#准备与配置
[3]https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml: https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml
[4]crontab的语法规则格式(每分钟、每小时、每天、每周、每月、每年定时执行 规则): https://blog.csdn.net/xinyflove/article/details/83178876
[5]https://shixiangwang.github.io/sync2gitee/: https://shixiangwang.github.io/sync2gitee/