chore(web): scaffold operations/ and web/ packages + [web] extra (W0)
This commit is contained in:
@@ -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.
|
||||
"""
|
||||
@@ -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.
|
||||
"""
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user