'info/refs']); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/git-upload-pack', Gitler::class.'@git', ['action' => 'git-upload-pack']); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/git-receive-pack', Gitler::class.'@git', ['action' => 'git-receive-pack']); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/commit/{id}', Gitler::class.'@commit'); // イシューとFediverse(inbox等) $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/issues/new', Gitler::class.'@newIssue'); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/issues/new', Gitler::class.'@newIssue'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/issues/{n}/ticket', Gitler::class.'@issueTicket'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/issues/{n}/comments/{c}', Gitler::class.'@issueComment'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/issues/{n}', Gitler::class.'@issue'); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/issues/{n}', Gitler::class.'@issue'); // プルリクエストとフォーク $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/pulls', Gitler::class.'@issues', ['pull' => true]); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/pulls/{n}/commits', Gitler::class.'@pullCommits'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/pulls/{n}/files', Gitler::class.'@pullFiles'); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/pulls/{n}/files', Gitler::class.'@pullFiles'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}/pulls/{n}', Gitler::class.'@issue', ['pull' => true]); $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/pulls/{n}', Gitler::class.'@issue', ['pull' => true]); foreach (['issues', 'labels', 'milestones', 'outbox', 'followers', 'compare', 'forks'] as $page) { $routes[] = Route::add('GET', "gitler/{owner}/{repo}/{$page}", Gitler::class.'@'.$page); } foreach (['labels', 'milestones', 'inbox', 'watch', 'compare', 'fork'] as $page) { $routes[] = Route::add('POST', "gitler/{owner}/{repo}/{$page}", Gitler::class.'@'.$page); } foreach (['tree', 'blob', 'raw', 'blame', 'commits', 'branches', 'tags', 'archive', 'settings'] as $page) { $routes[] = Route::add('GET', "gitler/{owner}/{repo}/{$page}", Gitler::class.'@'.$page); } $routes[] = Route::add('POST', 'gitler/{owner}/{repo}/settings', Gitler::class.'@settings'); $routes[] = Route::add('GET', 'gitler/{owner}/{repo}', Gitler::class.'@repo'); $routes[] = Route::add('GET', 'gitler/{owner}', Gitler::class.'@owner'); } if (AUTH_ENABLED && \Std\Lib\Comments::enabled()) { $routes[] = Route::add('POST', 'comments', Comment::class.'@post'); $routes[] = Route::add('POST', 'comments/like', Comment::class.'@like'); $routes[] = Route::add('POST', 'comments/delete', Comment::class.'@delete'); } // 通知(記事のコメント、Gitler等) if (AUTH_ENABLED) { $routes[] = Route::add('GET', 'notifications', Comment::class.'@notifications'); } if (ATOM_ENABLED) { foreach (array_keys(blogs()) as $blog) { $routes[] = Route::add('GET', $blog.'.atom', Atom::class.'@feed', ['section' => $blog]); } } if (OPENPROVIDER_ENABLED) { $routes[] = Route::add('GET', 'openprovider', Op::class.'@index'); $routes[] = Route::add('GET', 'openprovider/listinvoices', Op::class.'@opListInvoices'); $routes[] = Route::add('GET', 'openprovider/listpayments', Op::class.'@opListPayments'); $routes[] = Route::add('GET', 'openprovider/listtransactions', Op::class.'@opListTransactions'); $routes[] = Route::add('GET', 'openprovider/listcustomers', Op::class.'@opListCustomers'); $routes[] = Route::add('GET', 'openprovider/createcustomer', Op::class.'@opCreateCustomer'); $routes[] = Route::add('GET', 'openprovider/deletecustomer/{handle}', Op::class.'@opDeleteCustomer'); $routes[] = Route::add('GET', 'openprovider/getcustomer/{handle}', Op::class.'@opGetCustomer'); $routes[] = Route::add('GET', 'openprovider/listtlds', Op::class.'@opListTlds'); $routes[] = Route::add('GET', 'openprovider/gettld/{tld}', Op::class.'@opGetTld'); $routes[] = Route::add('GET', 'openprovider/checkdomain', Op::class.'@opCheckDomainAvailable'); $routes[] = Route::add('GET', 'openprovider/getdomainprices', Op::class.'@opGetDomainPrices'); $routes[] = Route::add('GET', 'openprovider/listdnszones', Op::class.'@opListDns'); $routes[] = Route::add('GET', 'openprovider/getdns/{domain}', Op::class.'@opGetDns'); } $routes[] = Route::add('GET', '', Home::class.'@show'); Route::init($routes); Route::setFallback([new Notfound(), 'show']); $uri = urldecode($_SERVER['REQUEST_URI']); // .xhtmlで終わるURLのリダイレクト処理 if (preg_match('/(.+)\.xhtml$/', $uri, $matches)) { // 末尾の.xhtmlを取り除く $newUri = safe_local_path($matches[1]); header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $newUri); exit(); } $uri = urldecode($_SERVER['REQUEST_URI']); if ($uri == '/index.php' || $uri == '/index.html') { header('Location: /'); exit(); } Route::dispatch($uri);