Skip to content

Instantly share code, notes, and snippets.

@windyakin
Created July 24, 2014 04:59
Show Gist options
  • Save windyakin/38ea62c92c6e498201a5 to your computer and use it in GitHub Desktop.
Save windyakin/38ea62c92c6e498201a5 to your computer and use it in GitHub Desktop.
webhook.php
<?php
$LOG_FILE = dirname(__FILE__).'/hook.log';
$SECRET_KEY = '< secret key >';
$GIT_PATH = "< git repository path >";
$payload = file_get_contents("php://input");
if ( $_SERVER['HTTP_X_HUB_SIGNATURE'] === "sha1=".hash_hmac('sha1', $payload, $SECRET_KEY) ) {
$payload = json_decode($payload, true);
if ($payload['ref'] === 'refs/heads/master') {
`cd $GIT_PATH; git pull origin master`;
file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." ".$_SERVER['REMOTE_ADDR']." git pulled: ".$payload['head_commit']['message']."\n", FILE_APPEND|LOCK_EX);
echo "success!\n";
}
}
else {
header('HTTP', true, 500);
file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." invalid access: ".$_SERVER['REMOTE_ADDR']."\n", FILE_APPEND|LOCK_EX);
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment