mirror right at the ping
[m6w6/replicator] / public / mirror.php
index 753a11411b128660820f91a062a546649a62d829..27f3c61697454b87c354aea9db7ba90e7b96423f 100644 (file)
@@ -37,15 +37,12 @@ switch ($evt) {
                $response->getBody()->append("Not a configured event");
                break;
        case "ping";
-               $response->setResponseCode(204);
-               $response->setResponseStatus("PONG");
-               break;
        case "push":
                if (!($json = json_decode($request->getBody()))) {
                        $response->setResponseCode(415);
                        $response->setContentType($request->getHeader("Content-Type"));
                        $response->getBody()->append($request->getBody());
-               } elseif (!in_array($json->repository->owner->name, $owners, true)) {
+               } elseif (!in_array(isset($json->repository->owner->name)?$json->repository->owner->name:$json->repository->owner->login, $owners, true)) {
                        $response->setResponseCode(403);
                        $response->getBody()->append("Invalid owner");
                } else {
@@ -58,7 +55,10 @@ switch ($evt) {
                                }
                        } elseif (mkdir($path, 0755, true) && chdir($path)) {
                                $source = escapeshellarg($json->repository->clone_url);
+                               $description = escapeshellarg($json->repository->description);
                                passthru("git clone --mirror $source . 2>&1", $rv);
+                               passthru("git config gitweb.description $description 2>&1");
+                               unlink("description");
                                if ($rv == 0) {
                                        $response->setResponseCode(200);
                                }