- edit - share
GitHub and Bitbucket provide webhooks support to notify external services when certain events happen with a repository. The most commonly used webhook event is
The following code is a PHP implementation of GitHub webhook that will update a repository clone and execute required deployment code when a new commit was pushed.
After adding this file to your server, you need to make the following changes before adding the webhook to GitHub:
SECRET_TOKENto a randomly generated token. You can use this command to generate a truly random secure token on Linux:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40
$commandslist to matches your need for every repository. An example of updating both a static website repository and a Django based application repository is provided on the code above as a reference.
- Add write access to the process running PHP (FastCGI, mod_php, …) which is mostly either running within the group
wwwdepending on the Linux distribution running on your server.
- If your repository is private, generate an ssh key and add the pubkey as a read-only deployment key to your repository settings. This key should be generated using the same user as the PHP process.
Finally, add a webhook to your repository settings. Make sure to set the content type to
application/json and the secret to the secret token you have already generated.