Replicate git server architecture github style

I am trying to set up a git server at work that uses the integration manager workflow here (which is what github uses), I followed the tutorials launching and already set up a server with gitos installed and that's it, and I'm looking for a direction with remarks to implement this particular worker process.

+2


source to share


2 answers


The main point of this workflow is:

  • Each developer has a local private repo for their personal work.
  • Each developer has a public repo where they make changes that should be consumed by others, or integrated into the main project.
  • The integrator pulls the desired changes from the developers' public repositories into its personal repo integration.
  • When ready, the integrator pushes the collected ("integrated") changes from their integrator replica into the main public repo of the project.
  • Developers pull changes from the main public repo of the project. And the cycle repeats.

So, you basically need two things:



  • The server that will store the main, public, canonical repo of the project. (It shouldn't be "publicly available" in the sense that everyone can see it - just publicly in the sense that the entire development team has access.)
  • A place to store public developer repositories, so the integrator can easily pull from them.

These two things are easily possible if you have a server machine running a Git server (either using the Git daemon, SSH, http / https, or any other supported Git protocol).

+3


source


So, in order to get to an acceptable integration manager architecture, I ended up installing gitoz and setting up the developers as users in gitoz. Then the repositories were cloned into gitos, for example. devA / projectA.git devB / projectA.git. I had issues with cloning permissions on the server (make sure NOT to run the hooks executable folder) and what I felt was a bit of a hack, but it works.



0


source







All Articles