diff --git a/.gitignore b/.gitignore index 9de9c8c..6649ac9 100755 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +!*/ + .vscode /env.yaml /config.yaml @@ -19,6 +21,6 @@ /misc/modify_authorized_keys.child.pipe /misc/modify_authorized_keys.master.pipe -!/git-storage/hooks -/file-storage/avatar/** +/file-storage/** /git-storage/** +!/git-storage/hooks diff --git a/git-storage/hooks/main b/git-storage/hooks/main new file mode 100755 index 0000000..477951d --- /dev/null +++ b/git-storage/hooks/main @@ -0,0 +1,60 @@ +#!/usr/local/php/bin/php + 'http://cc.pgyer.appxia.cn/apiv1/internal/hooks', + 'token' => 'codefever_community_api_token' +]; + +$ch = curl_init(); +curl_setopt($ch, CURLOPT_URL, $config['endpoint']); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); +curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Token: ' . $config['token'], + 'Content-Type: application/json', + 'Accept: application/json', +]); +curl_setopt($ch, CURLOPT_POST, 1); + +$input = fopen('php://stdin', 'r'); +stream_set_blocking($input, 0); +$data = [ + 'uid' => getenv('PGYER_UID'), + 'args' => $argv, + 'stdin' => stream_get_contents($input) +]; + +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); + +$response = curl_exec($ch); + +curl_close($ch); + +$result = json_decode($response, TRUE); + +if ($result) { + if (!$result['code']) { + if ($result['data'] && $result['data']['remote']) { + echo $result['data']['remote']; + } + exit(0); + } else { + echo 'Operation Stopped: '; + if ($result['data'] && $result['data']['remote']) { + echo $result['data']['remote'] . "\n"; + } + echo 'Request-ID: ' . $result['request-id'] . "\n"; + } +} else { + echo 'Contact service@pgyer.com if operation rejected!'; +} + +exit(255); diff --git a/git-storage/hooks/post-receive b/git-storage/hooks/post-receive new file mode 120000 index 0000000..88d050b --- /dev/null +++ b/git-storage/hooks/post-receive @@ -0,0 +1 @@ +main \ No newline at end of file diff --git a/git-storage/hooks/pre-receive b/git-storage/hooks/pre-receive new file mode 120000 index 0000000..88d050b --- /dev/null +++ b/git-storage/hooks/pre-receive @@ -0,0 +1 @@ +main \ No newline at end of file diff --git a/git-storage/hooks/update b/git-storage/hooks/update new file mode 120000 index 0000000..88d050b --- /dev/null +++ b/git-storage/hooks/update @@ -0,0 +1 @@ +main \ No newline at end of file