mirror of
https://github.com/PGYER/codefever.git
synced 2026-05-06 21:50:39 +08:00
feat(hooks): move hooks outof git-storage directory
This commit is contained in:
@@ -650,7 +650,7 @@ class Repository_model extends CI_Model
|
||||
"cd {$repositoryPath}",
|
||||
"git init --bare",
|
||||
"rm -r hooks",
|
||||
"ln -s ../hooks hooks",
|
||||
"ln -s ../../misc/hooks hooks",
|
||||
"chmod -R 0777 {$repositoryPath}",
|
||||
];
|
||||
break;
|
||||
@@ -661,7 +661,7 @@ class Repository_model extends CI_Model
|
||||
"git clone --bare {$command} .",
|
||||
"git remote remove origin",
|
||||
"rm -r hooks",
|
||||
"ln -s ../hooks hooks",
|
||||
"ln -s ../../misc/hooks hooks",
|
||||
"chmod -R 0777 {$repositoryPath}",
|
||||
];
|
||||
break;
|
||||
|
||||
58
misc/hooks/main
Executable file
58
misc/hooks/main
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/local/php/bin/php
|
||||
<?php
|
||||
$config = yaml_parse_file(dirname(__FILE__, 3) . '/env.yaml');
|
||||
|
||||
if ($config['gateway'] && $config['gateway']['token'] && $config['gateway']['hooks']) {
|
||||
$config = [
|
||||
'endpoint' => $config['gateway']['hooks'],
|
||||
'token' => $config['gateway']['token']
|
||||
];
|
||||
} else {
|
||||
echo '[CodeFever Community]: Bad configuration, Contact site administrator if operation rejected!.';
|
||||
exit(255);
|
||||
}
|
||||
|
||||
$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 site administrator if operation rejected!';
|
||||
}
|
||||
|
||||
exit(255);
|
||||
1
misc/hooks/post-receive
Symbolic link
1
misc/hooks/post-receive
Symbolic link
@@ -0,0 +1 @@
|
||||
main
|
||||
1
misc/hooks/pre-receive
Symbolic link
1
misc/hooks/pre-receive
Symbolic link
@@ -0,0 +1 @@
|
||||
main
|
||||
1
misc/hooks/update
Symbolic link
1
misc/hooks/update
Symbolic link
@@ -0,0 +1 @@
|
||||
main
|
||||
Reference in New Issue
Block a user