· 9 years ago · Dec 29, 2016, 03:38 PM
1<?php
2
3// è¨å®š
4$LOG_FILE = dirname(__FILE__).'/hook.log';
5$SECRET_KEY = '';
6
7$header = getallheaders();
8$hmac = hash_hmac('sha1', $HTTP_RAW_POST_DATA, $SECRET_KEY);
9if ( isset($header['X-Hub-Signature']) && $header['X-Hub-Signature'] === 'sha1='.$hmac ) {
10 $payload = json_decode($HTTP_RAW_POST_DATA, true); // å—ã‘å–ã£ãŸJSONデータ
11 // ã“ã“ã«å®Ÿè¡Œã—ãŸã„コードを書ã
12 exec('/ã•ãらサーãƒ.gitインストールディレクトリ/git pull origin master');//linuxコマンド実行
13 file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." ".$_SERVER['REMOTE_ADDR']." git pulled: ".$payload['after']." ".$payload['commits'][0]['message']."n", FILE_APPEND|LOCK_EX);//ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã込む
14} else {
15 // èªè¨¼å¤±æ•—
16 file_put_contents($LOG_FILE, date("[Y-m-d H:i:s]")." invalid access: ".$_SERVER['REMOTE_ADDR']."n", FILE_APPEND|LOCK_EX);
17}