chore(web): scaffold operations/ and web/ packages + [web] extra (W0)

This commit is contained in:
2026-07-23 15:05:48 +02:00
parent bd8578045f
commit 11a80d26f0
4 changed files with 35 additions and 0 deletions
+8
View File
@@ -27,6 +27,14 @@ dev = [
"mypy>=1.10",
"types-paramiko",
]
web = [
"fastapi>=0.115",
"uvicorn[standard]>=0.30",
"jinja2>=3.1",
"authlib>=1.3",
"itsdangerous>=2.2",
"httpx>=0.27",
]
[project.scripts]
ci-orchestrator = "ci_orchestrator.__main__:cli"
@@ -0,0 +1,6 @@
"""Pure operations layer shared by the CLI and the web UI.
No ``click``, no ``print``, no presentation I/O — every function here
returns a dataclass and is safe to import from either a CLI command
wrapper or a web route.
"""
+4
View File
@@ -0,0 +1,4 @@
"""Web UI package: FastAPI app, auth, and routes for VM/host management.
Depends on the optional ``[web]`` extra; the CLI core stays dep-light.
"""
+17
View File
@@ -0,0 +1,17 @@
"""Scaffold smoke test for the W0 packages: operations/ and web/.
Just proves both packages import cleanly. No logic lives here yet.
"""
from __future__ import annotations
import ci_orchestrator.operations as operations
import ci_orchestrator.web as web
def test_operations_package_imports() -> None:
assert operations is not None
def test_web_package_imports() -> None:
assert web is not None