generated from coulomb/repo-seed
Align naming with coulomb.social reuse-surface conventions
Some checks failed
ci / validate-registry (push) Has been cancelled
Some checks failed
ci / validate-registry (push) Has been cancelled
Use reuse.coulomb.social, REUSE_SURFACE_URL/TOKEN env vars, reuse-surface image and reuse-surface-env secret. Replace reuse-surface-hub entrypoint with reuse-surface serve; CLI uses --base-url.
This commit is contained in:
@@ -192,13 +192,20 @@ def cmd_catalog(args: argparse.Namespace) -> int:
|
||||
return 0
|
||||
|
||||
|
||||
def _hub_url(args: argparse.Namespace) -> str | None:
|
||||
return getattr(args, "hub_url", None)
|
||||
def _service_url(args: argparse.Namespace) -> str | None:
|
||||
return getattr(args, "base_url", None)
|
||||
|
||||
|
||||
def cmd_serve(args: argparse.Namespace) -> int:
|
||||
from reuse_surface.hub.app import main as serve_main
|
||||
|
||||
serve_main()
|
||||
return 0
|
||||
|
||||
|
||||
def cmd_hub_status(args: argparse.Namespace) -> int:
|
||||
try:
|
||||
status, payload = hub_client.hub_status(_hub_url(args))
|
||||
status, payload = hub_client.hub_status(_service_url(args))
|
||||
except ValueError as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
@@ -211,7 +218,7 @@ def cmd_hub_status(args: argparse.Namespace) -> int:
|
||||
|
||||
def cmd_hub_list(args: argparse.Namespace) -> int:
|
||||
try:
|
||||
status, payload = hub_client.hub_list(_hub_url(args))
|
||||
status, payload = hub_client.hub_list(_service_url(args))
|
||||
except ValueError as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
@@ -227,7 +234,7 @@ def cmd_hub_list(args: argparse.Namespace) -> int:
|
||||
|
||||
def cmd_hub_show(args: argparse.Namespace) -> int:
|
||||
try:
|
||||
status, payload = hub_client.hub_show(args.repo, _hub_url(args))
|
||||
status, payload = hub_client.hub_show(args.repo, _service_url(args))
|
||||
except ValueError as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
@@ -249,7 +256,7 @@ def cmd_hub_register(args: argparse.Namespace) -> int:
|
||||
if args.description:
|
||||
body["description"] = args.description
|
||||
try:
|
||||
status, payload = hub_client.hub_register(body, _hub_url(args))
|
||||
status, payload = hub_client.hub_register(body, _service_url(args))
|
||||
except ValueError as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
@@ -276,7 +283,7 @@ def cmd_hub_update(args: argparse.Namespace) -> int:
|
||||
print("error: no fields to update", file=sys.stderr)
|
||||
return 1
|
||||
try:
|
||||
status, payload = hub_client.hub_update(args.repo, body, _hub_url(args))
|
||||
status, payload = hub_client.hub_update(args.repo, body, _service_url(args))
|
||||
except ValueError as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
@@ -412,10 +419,13 @@ def main(argv: list[str] | None = None) -> int:
|
||||
)
|
||||
graph.set_defaults(func=cmd_graph)
|
||||
|
||||
hub = subparsers.add_parser("hub", help="federation hub client")
|
||||
serve = subparsers.add_parser("serve", help="run federation service API")
|
||||
serve.set_defaults(func=cmd_serve)
|
||||
|
||||
hub = subparsers.add_parser("hub", help="federation service client")
|
||||
hub.add_argument(
|
||||
"--hub-url",
|
||||
help="hub base URL (or set REUSE_SURFACE_HUB_URL)",
|
||||
"--base-url",
|
||||
help="service base URL (or set REUSE_SURFACE_URL)",
|
||||
)
|
||||
hub_sub = hub.add_subparsers(dest="hub_command", required=True)
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@ HUB_VERSION = "0.1.0"
|
||||
|
||||
|
||||
def _db_path() -> Path:
|
||||
return Path(os.environ.get("REUSE_SURFACE_HUB_DB", "/data/hub.db"))
|
||||
return Path(os.environ.get("REUSE_SURFACE_DB", "/data/reuse.db"))
|
||||
|
||||
|
||||
def _cache_dir() -> Path:
|
||||
return Path(os.environ.get("REUSE_SURFACE_HUB_CACHE_DIR", "/data/cache"))
|
||||
return Path(os.environ.get("REUSE_SURFACE_CACHE_DIR", "/data/cache"))
|
||||
|
||||
|
||||
def _write_token() -> str:
|
||||
return os.environ.get("REUSE_SURFACE_HUB_TOKEN", "")
|
||||
return os.environ.get("REUSE_SURFACE_TOKEN", "")
|
||||
|
||||
|
||||
def _store() -> HubStore:
|
||||
@@ -41,7 +41,7 @@ def _require_auth(authorization: str | None = Header(default=None)) -> None:
|
||||
write_token = _write_token()
|
||||
if not write_token:
|
||||
raise _http_error(
|
||||
503, "misconfigured", "REUSE_SURFACE_HUB_TOKEN is not configured"
|
||||
503, "misconfigured", "REUSE_SURFACE_TOKEN is not configured"
|
||||
)
|
||||
if not authorization or not authorization.startswith("Bearer "):
|
||||
raise _http_error(401, "unauthorized", "Bearer token required")
|
||||
@@ -56,7 +56,7 @@ def create_app() -> FastAPI:
|
||||
|
||||
@app.get("/health")
|
||||
def health() -> dict[str, str]:
|
||||
return {"status": "ok", "service": "reuse-surface-hub", "version": HUB_VERSION}
|
||||
return {"status": "ok", "service": "reuse-surface", "version": HUB_VERSION}
|
||||
|
||||
@app.get("/v1/repos")
|
||||
def list_repos() -> dict[str, Any]:
|
||||
@@ -138,6 +138,6 @@ def create_app() -> FastAPI:
|
||||
def main() -> None:
|
||||
import uvicorn
|
||||
|
||||
host = os.environ.get("REUSE_SURFACE_HUB_HOST", "0.0.0.0")
|
||||
port = int(os.environ.get("REUSE_SURFACE_HUB_PORT", "8000"))
|
||||
host = os.environ.get("REUSE_SURFACE_HOST", "0.0.0.0")
|
||||
port = int(os.environ.get("REUSE_SURFACE_PORT", "8000"))
|
||||
uvicorn.run(create_app(), host=host, port=port, reload=False)
|
||||
@@ -7,7 +7,7 @@ from typing import Any
|
||||
from reuse_surface.federation import compose_federated_index
|
||||
from reuse_surface.hub.store import HubStore
|
||||
|
||||
DEFAULT_DOMAIN = os.environ.get("REUSE_SURFACE_HUB_DOMAIN", "helix_forge")
|
||||
DEFAULT_DOMAIN = os.environ.get("REUSE_SURFACE_DOMAIN", "helix_forge")
|
||||
|
||||
|
||||
def registrations_to_manifest(
|
||||
|
||||
@@ -7,17 +7,17 @@ import urllib.request
|
||||
from typing import Any
|
||||
|
||||
|
||||
def hub_base_url(explicit: str | None = None) -> str:
|
||||
base = (explicit or os.environ.get("REUSE_SURFACE_HUB_URL", "")).rstrip("/")
|
||||
def service_base_url(explicit: str | None = None) -> str:
|
||||
base = (explicit or os.environ.get("REUSE_SURFACE_URL", "")).rstrip("/")
|
||||
if not base:
|
||||
raise ValueError(
|
||||
"hub URL not configured; set REUSE_SURFACE_HUB_URL or pass --hub-url"
|
||||
"service URL not configured; set REUSE_SURFACE_URL or pass --base-url"
|
||||
)
|
||||
return base
|
||||
|
||||
|
||||
def hub_token() -> str | None:
|
||||
return os.environ.get("REUSE_SURFACE_HUB_TOKEN")
|
||||
def service_token() -> str | None:
|
||||
return os.environ.get("REUSE_SURFACE_TOKEN")
|
||||
|
||||
|
||||
def _request(
|
||||
@@ -49,24 +49,24 @@ def _request(
|
||||
|
||||
|
||||
def hub_status(base_url: str | None = None) -> tuple[int, Any]:
|
||||
return _request("GET", f"{hub_base_url(base_url)}/health")
|
||||
return _request("GET", f"{service_base_url(base_url)}/health")
|
||||
|
||||
|
||||
def hub_list(base_url: str | None = None) -> tuple[int, Any]:
|
||||
return _request("GET", f"{hub_base_url(base_url)}/v1/repos")
|
||||
return _request("GET", f"{service_base_url(base_url)}/v1/repos")
|
||||
|
||||
|
||||
def hub_show(repo: str, base_url: str | None = None) -> tuple[int, Any]:
|
||||
return _request("GET", f"{hub_base_url(base_url)}/v1/repos/{repo}")
|
||||
return _request("GET", f"{service_base_url(base_url)}/v1/repos/{repo}")
|
||||
|
||||
|
||||
def hub_register(payload: dict[str, Any], base_url: str | None = None) -> tuple[int, Any]:
|
||||
token = hub_token()
|
||||
token = service_token()
|
||||
if not token:
|
||||
raise ValueError("REUSE_SURFACE_HUB_TOKEN is required for register")
|
||||
raise ValueError("REUSE_SURFACE_TOKEN is required for register")
|
||||
return _request(
|
||||
"POST",
|
||||
f"{hub_base_url(base_url)}/v1/repos",
|
||||
f"{service_base_url(base_url)}/v1/repos",
|
||||
token=token,
|
||||
body=payload,
|
||||
)
|
||||
@@ -75,12 +75,12 @@ def hub_register(payload: dict[str, Any], base_url: str | None = None) -> tuple[
|
||||
def hub_update(
|
||||
repo: str, payload: dict[str, Any], base_url: str | None = None
|
||||
) -> tuple[int, Any]:
|
||||
token = hub_token()
|
||||
token = service_token()
|
||||
if not token:
|
||||
raise ValueError("REUSE_SURFACE_HUB_TOKEN is required for update")
|
||||
raise ValueError("REUSE_SURFACE_TOKEN is required for update")
|
||||
return _request(
|
||||
"PATCH",
|
||||
f"{hub_base_url(base_url)}/v1/repos/{repo}",
|
||||
f"{service_base_url(base_url)}/v1/repos/{repo}",
|
||||
token=token,
|
||||
body=payload,
|
||||
)
|
||||
Reference in New Issue
Block a user