如题,联动首页热帖 t/836086
个人情况:github 算上私有仓库小一百个的样子,加上 tar 的目录也有一些价值。个人感觉是如果 github 被清空那是比银行卡被清空还难受。
gh 抽风确实有些历史,偶尔能听到类似新闻。特别是我们这种使用 actions 做 ci 的,虽然没有任何违法乱纪活动,但是谁知道会不会突然抽风被封号,还有我也有一个小号用来储存 archive 的仓库,不知道会不会被误伤,确实有些吓人。
解决方案应该是托管至多平台的 git 服务,但是手动维护过于麻烦。有什么成熟解决方案可以让其他平台自动备份 github 吗?如果有的话,私有仓库又该咋办呢
![]() | 1 momocraft 2022-02-24 18:58:15 +08:00 gitlab 从前有 现在可能改没了 弄台 vps 定期 git fetch 也行 |
![]() | 2 blindpirate 2022-02-24 18:59:47 +08:00 github action on push 然后 push 到其他平台不就完了? |
![]() | 3 LeeReamond OP @blindpirate 那需要每次新建仓库都配置对应的 actions 文件,感觉不是正道 |
![]() | 4 Citrus 2022-02-24 19:12:22 +08:00 GitLab 现在也有,叫 mirror https://docs.gitlab.com/ee/user/project/repository/mirror/ |
![]() | 5 Trim21 2022-02-24 19:14:01 +08:00 @LeeReamond #3 找一个仓库调用 api 镜像自己所有仓库就行了 |
6 mons 2022-02-24 19:15:3 +08:00 |
![]() | 7 LeeReamond OP @Citrus 看起来它好像如果我新创建一个仓库它好像不能自动同步 |
8 Bingchunmoli 2022-02-24 19:18:32 +08:00 via Android 我用的 gogs 可以用 |
![]() | 9 Citrus 2022-02-24 20:56:44 +08:00 via iPhone @LeeReamond 那确实不能,必须手动在 GitLab 里导入一下。不过可以用机器人调用 API 。 |
10 Cbdy 2022-02-24 20:59:28 +08:00 |
![]() | 11 blindpirate 2022-02-24 23:55:56 +08:00 @LeeReamond 新建一个 gh 仓库,配置一个定时任务。 在任务里,用 GH API iterate all repos in an organization 。如果需要私有仓库,配一个 PAT 即可。 检查更新状况,push 到其他平台。 |
12 OrangeM21 2022-02-25 03:43:35 +08:00 via iPhone 我在自己 gitea 服务器上跑了个 docker ,1 小时一次同步到 gitea 上。你可以搜一下…… |
13 OrangeM21 2022-02-25 03:49:26 +08:00 docker container run \ -d \ --net host \ --restart always \ -e GITHUB_USERNAME=username \ -e GITHUB_TOKEN={github_token}\ -e GITEA_URL=http://ip\ -e GITEA_TOKEN={gitea_token}\ jaedle/mirror-to-gitea:latest |
![]() | 14 LeeReamond OP @blindpirate 感觉是可行方案,现在有点慌,感觉这些 actions 都可能被算作恶意利用 |
![]() | 15 loki13 2022-02-25 14:11:15 +08:00 阿里云的代码服务 Codeup 有个导入仓库支持手动同步的功能,https://help.aliyun.com/document_detail/289096.html ,再用提供的 OpenAPI https://help.aliyun.com/document_detail/308248.html 配一下定时就行了吧 |
![]() | 16 lunny 2022-02-25 19:37:49 +08:00 Gitea 既支持 pull mirror 也支持 push mirror |
![]() | 17 qq296015668 2022-02-27 07:35:57 +08:00 换个思路,既然会用 actions ,写个定时任务推送不就好了吗。 担心安全问题就用第三方的 CI/CD 工具,利用 GitHub Webhooks 触发 |