gitdeploymentamazon-ec2githooksgit-post-receive

Make Github push to a remote server when it receives updates


What is the set up for having Github automatically push any updates to a remote server?

This is useful for maintaining a codebase on Github, and having a website run off that codebase.

  1. I have my repo on my own computer, this is where I work.

  2. I commit my changes on my local repo, and push them to my Github repo.

  3. I want my Github repo to then push these changes to my remote server.

I've been researching all day, and using the 'hooks' sounds reasonable. Maybe using a 'post-receive' hook on Github which then runs a push command to my remote server.

Any suggestions?


Solution

  • As I understand github doesn't allow you to define "true" hooks. Like post-receive. Instead they provide something called a webhook to developers. what you can do with this is issue a web request to any URL specified by you whenever there's a push to your repository.

    So what you can do is: setup a webserver on you remote git server and configure github to make an http call to it on post-receive. Whenever github notifies your remote server do a pull on it from github.

    See here on how to use webhooks: https://help.github.com/articles/post-receive-hooks

    P.S. A true hook mechianism whould have been a possible security vulnerability for github cause it allows you to execute custom code on their servers. So they have made something that does not allow you to execute anything but still allows you to do anything you want.