如何将 gitlab 与 github 同步

How to sync gitlab with github

我有几个开发人员在本地 Gitlab 实例上工作。客户要求他们的 Github 仓库保持更新。所以我们的 Gitlab 存储库应该将任何提交直接推送到 Github。对 Github 的任何提交同样应该被拉入 Gitlab。

我可以用 jenkins 或其他东西做第一部分 (dev --> gitlab --> github),但我卡在了相反的位置。我们的 Gitlab 和 Jenkins 运行 在我们的防火墙内。

任何提示或指示(或提供解决方案!)将不胜感激。

为了从 GitHub 同步到 GitLab,您可以使用 Webhooks 向您的站点发送通知并可能以某种方式管理它(尽管我不知道 GitLab 是否支持此功能)框)。

通过更多的实现,您可以(理论上)使用 GitHub API.

我还找到了一个名为 "simple (and dirty) sync between redmine issues and gitlab issues" 的 small script,它至少应该做到这一点。

只有企业版和GitLab.com,但是GitLab直接引入了这个功能,没有任何变通方法。

他们在 GitLab Docs → User Docs → Projects → Repositories → Mirroring.

中记录了 pulling/pushing from/to 一个远程存储库

它也位于您可以推送的同一配置部分:

  1. 在项目中使用齿轮图标 select Mirror Repository
  2. 向下滚动到推送到远程存储库
  3. 勾选远程镜像存储库:每小时自动从该存储库更新远程镜像的分支、标签和提交。
  4. 输入你要更新的仓库;对于 GitHub,您可以在 URL 中包含您的用户名和密码,如下所示:https://yourgithubusername:yourgithubpassword@github.com/agaric/guts_discuss_resource.git

请注意,我还没有尝试过,但您应该能够向同一个存储库推送和从中拉取。它对我从远程存储库 (drupal.org) 拉取并推送到不同的远程存储库 (gitlab.com) 非常有用。

rugk 和 mlncn 的答案已经过时了。

现在 GitLab Docs → User Docs → Projects → Repositories → Mirroring 中描述了正确的程序。