V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LeeReamond
V2EX  ›  GitLab

gitlab/gitee 等平台有办法设置自动拉取 github 仓库内容并同步吗?

  •  
  •   LeeReamond · 2022-02-24 18:55:52 +08:00 · 4622 次点击
    这是一个创建于 1029 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,联动首页热帖 https://www.v2ex.com/t/836086

    个人情况:github 算上私有仓库小一百个的样子,加上 star 的目录也有一些价值。个人感觉是如果 github 被清空那是比银行卡被清空还难受。

    gh 抽风确实有些历史,偶尔能听到类似新闻。特别是我们这种使用 actions 做 ci 的,虽然没有任何违法乱纪活动,但是谁知道会不会突然抽风被封号,还有我也有一个小号用来储存 archive 的仓库,不知道会不会被误伤,确实有些吓人。

    解决方案应该是托管至多平台的 git 服务,但是手动维护过于麻烦。有什么成熟解决方案可以让其他平台自动备份 github 吗?如果有的话,私有仓库又该咋办呢

    17 条回复    2022-02-27 07:35:57 +08:00
    momocraft
        1
    momocraft  
       2022-02-24 18:58:15 +08:00
    gitlab 从前有 现在可能改没了

    弄台 vps 定期 git fetch 也行
    blindpirate
        2
    blindpirate  
       2022-02-24 18:59:47 +08:00
    github action on push 然后 push 到其他平台不就完了?
    LeeReamond
        3
    LeeReamond  
    OP
       2022-02-24 19:01:53 +08:00 via Android
    @blindpirate 那需要每次新建仓库都配置对应的 actions 文件,感觉不是正道
    Citrus
        4
    Citrus  
       2022-02-24 19:12:22 +08:00
    Trim21
        5
    Trim21  
       2022-02-24 19:14:01 +08:00
    @LeeReamond #3 找一个仓库调用 api 镜像自己所有仓库就行了
    mons
        6
    mons  
       2022-02-24 19:15:38 +08:00
    自建 Gitea 也有 repo mirror 功能。每个 repo 可以单独自定 sync 间隔

    https://docs.gitea.io/en-us/repo-mirror/
    LeeReamond
        7
    LeeReamond  
    OP
       2022-02-24 19:17:40 +08:00 via Android
    @Citrus 看起来它好像如果我新创建一个仓库它好像不能自动同步
    Bingchunmoli
        8
    Bingchunmoli  
       2022-02-24 19:18:32 +08:00 via Android
    我用的 gogs 可以用
    Citrus
        9
    Citrus  
       2022-02-24 20:56:44 +08:00 via iPhone
    @LeeReamond 那确实不能,必须手动在 GitLab 里导入一下。不过可以用机器人调用 API 。
    blindpirate
        11
    blindpirate  
       2022-02-24 23:55:56 +08:00
    @LeeReamond 新建一个 gh 仓库,配置一个定时任务。

    在任务里,用 GH API iterate all repos in an organization 。如果需要私有仓库,配一个 PAT 即可。

    检查更新状况,push 到其他平台。
    OrangeM21
        12
    OrangeM21  
       2022-02-25 03:43:35 +08:00 via iPhone
    我在自己 gitea 服务器上跑了个 docker ,1 小时一次同步到 gitea 上。你可以搜一下……
    OrangeM21
        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
    LeeReamond
        14
    LeeReamond  
    OP
       2022-02-25 07:07:52 +08:00
    @blindpirate 感觉是可行方案,现在有点慌,感觉这些 actions 都可能被算作恶意利用
    loki13
        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 配一下定时就行了吧
    lunny
        16
    lunny  
       2022-02-25 19:37:49 +08:00
    Gitea 既支持 pull mirror 也支持 push mirror
    qq296015668
        17
    qq296015668  
       2022-02-27 07:35:57 +08:00
    换个思路,既然会用 actions ,写个定时任务推送不就好了吗。
    担心安全问题就用第三方的 CI/CD 工具,利用 GitHub Webhooks 触发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3055 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.