fix: feat: restore smoke-init CI pipeline using mock Forgejo (#124)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline failed

This commit is contained in:
Agent 2026-04-01 19:20:17 +00:00
parent 01dd4132f3
commit d9a90356cc
3 changed files with 121 additions and 179 deletions

View file

@ -150,6 +150,9 @@ class ForgejoHandler(BaseHTTPRequestHandler):
(r"^admin/users/([^/]+)$", f"handle_{method}_admin_users_username"),
# Org patterns
(r"^orgs$", f"handle_{method}_orgs"),
# Mock debug endpoints
(r"^mock/state$", f"handle_{method}_mock_state"),
(r"^mock/shutdown$", f"handle_{method}_mock_shutdown"),
]
for pattern, handler_name in patterns:
@ -237,6 +240,20 @@ class ForgejoHandler(BaseHTTPRequestHandler):
SHUTDOWN_REQUESTED = True
json_response(self, 200, {"status": "shutdown"})
def handle_GET_mock_state(self, query):
"""GET /mock/state — debug endpoint for smoke tests"""
require_token(self)
json_response(self, 200, {
"users": list(state["users"].keys()),
"tokens": list(state["tokens"].keys()),
"repos": list(state["repos"].keys()),
"orgs": list(state["orgs"].keys()),
"labels": {k: [l["name"] for l in v] for k, v in state["labels"].items()},
"collaborators": {k: list(v) for k, v in state["collaborators"].items()},
"protections": {k: list(v) for k, v in state["protections"].items()},
"oauth2_apps": [a["name"] for a in state["oauth2_apps"]],
})
def handle_POST_admin_users(self, query):
"""POST /api/v1/admin/users"""
require_token(self)