背景
因为互联网网络
的原因,我们很多时候无法访问github。而我的所有项目都是通过Drone CI – Automate Software Testing and Delivery + GitHub自动构建的。其中drone ci服务部署在阿里云服务器中,会有访问不了github的情况,最近越发频繁,需要寻找新的方法解决该问题。
此外还有其它原因:
- github因为国际形势不对我们开放了怎么办?
- github上你的数据被黑客删除了怎么办?
- 突然访问不了github,但是急需里面的某个文件怎么办?
- 账号被封禁或限制访问了
等等。所以,把github仓库备份一下是有必要的。
方案
使用github action来实现。
代码在github上,同时复制一份到gitee上,阿里云服务器和gitee是网络互通的。
调研了几款工具
Yikun/hub-mirror-action
url: https://github.com/Yikun/hub-mirror-action
截到目前(2025-03-31),只可同步Public仓库。可配置黑白名单。可同时同步多个仓库。
x-actions/git-mirrors
url: https://github.com/x-actions/git-mirrors
在Yikun/hub-mirror-action的基础上,网站说可以同步private仓库,经验证后发现只能同步创建
私有仓库,不能同步数据
到仓库。
abersheeran/sync-gitee-mirror
url: https://github.com/abersheeran/sync-gitee-mirror
可同步私有仓库,需要提前在gitee中创建好。
优点:
- 同步私有仓库和公有仓库。
- 只需要配置一个secret:GITEE_TOKEN
缺点:
- 每次只能同步一个仓库。且每个仓库都要配置GITEE_TOKEN。
- 当gitee仓库不存在时无法自动创建。
valuetodays/backup-repo-to-gitee
我自己根据 abersheeran/sync-gitee-mirror 自己定制了一个,当gitee仓库不存在时可以自动创建。
url:https://github.com/valuetodays/backup-repo-to-gitee
目前是完美解决了问题。