import json, sys
from http.server import BaseHTTPRequestHandler, HTTPServer
LOG = open(sys.argv[2], "a")
class H(BaseHTTPRequestHandler):
    def do_GET(self):
        LOG.write(f"{self.command} {self.path} host={self.headers.get('Host')}\n"); LOG.flush()
        p = self.path.split("?")[0]
        if p == "/api/v4/user":
            body = {"id": 1, "username": "selfhosted-user", "name": "Self Hosted"}
        elif p in ("/api/v4/projects/team%2Fapp", "/api/v4/projects/team/app"):
            body = {"id": 7, "path_with_namespace": "team/app",
                    "web_url": "http://gitlab.selfhosted.test/team/app",
                    "http_url_to_repo": "http://gitlab.selfhosted.test/team/app.git",
                    "ssh_url_to_repo": "git@gitlab.selfhosted.test:team/app.git",
                    "default_branch": "main"}
        else:
            self.send_response(404); self.send_header("Content-Type","application/json"); self.end_headers()
            self.wfile.write(b'{"message":"404 Project Not Found"}'); return
        data = json.dumps(body).encode()
        self.send_response(200); self.send_header("Content-Type","application/json"); self.send_header("Content-Length", str(len(data))); self.end_headers(); self.wfile.write(data)
    def log_message(self, *a): pass
HTTPServer(("127.0.0.1", int(sys.argv[1])), H).serve_forever()
