Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to sync gitlab with github

Tags:

git

github

gitlab

I have several developers working on a local Gitlab instance. The client requires that their Github repo is kept updated. So our Gitlab repo should push any commits directly to Github. Any commits to Github should likewise be pulled into Gitlab.

I could do the first part (dev --> gitlab --> github) with jenkins or something, but am stuck on the reverse. Our Gitlab and Jenkins run inside our firewall.

Any hints or pointers (or drop in solutions!) would be very appreciated.

like image 835
mdekkers Avatar asked Sep 24 '15 13:09

mdekkers


People also ask

How do I push GitLab and GitHub at the same time?

You simply need to add new remote and the push your code, That's it. Following the second option: fatal: remote origin already exists. Also, what about pushing using the git CLI? Git commands for gitlab and github are shared, so doing git add will stage for both.

Does GitHub app work with GitLab?

Yes, you can use the Windows GitHub client and the GitHub Desktop client with GitLab, BitBucket or any other hosted Git solution. We only use it with HTTPS and you'll need a valid certificate if you do use HTTPS. It may work with HTTP as well.

Is GitLab better than GitHub?

For self-hosted private repositories, GitLab is the better choice. You can get started without having to pay any monthly subscription fee. Both options are great for open source projects, with GitLab offering premium features for free and GitHub offering access to a larger pool of active open source developers.


2 Answers

It's only in the enterprise edition and on GitLab.com, but GitLab has introduced this feature directly, without any workarounds.

They've documented pulling/pushing from/to a remote repository in GitLab Docs → User Docs → Projects → Repositories → Mirroring.

It's in the same section of configuration that you can push, too:

  1. From within a project use the gear icon to select Mirror Repository
  2. Scroll down to Push to a remote repository
  3. Checkmark Remote mirror repository: Automatically update the remote mirror's branches, tags, and commits from this repository every hour.
  4. Enter the repository you want to update; for GitHub you can include your username and password in the URL, like so: https://yourgithubusername:[email protected]/agaric/guts_discuss_resource.git

Note that I haven't tried it, but you should be able to push to and pull from the same repository. It's working great for me pulling from a remote repository (drupal.org), and pushing to a different remote repository (gitlab.com).

like image 136
mlncn Avatar answered Sep 22 '22 15:09

mlncn


For syncing from GitHub to GitLab you could use the Webhooks to send a notification to your site and possibly manage this somehow (although I don't know if GitLab supports this out of the box).

And with a bit more implementation you could (theoretically) use the GitHub API.

I also found a small script named "simple (and dirty) sync between redmine issues and gitlab issues" which should do at least this.

like image 25
rugk Avatar answered Sep 25 '22 15:09

rugk