Commit 816d0a519d
816d0a519deced4c6460737f5bf64974dfc5afb6
parent: 96077144af
Unsigned
cmc <hello@cleberg.net> · 2026-07-29 15:55 UTC
revert: remove Azure and Azure DevOps coming-soon placeholders
Reverts PR #18. Azure won't be supported — no way to create/test against an
Azure account — so the coming-soon menu placeholders and the Platform-field
changes they required are removed. Menu is back to GitHub / GitLab / AWS.
Layout: unified · split
tui/README.md
+3 −3
| @@ -4,9 +4,9 @@ A terminal UI that walks you through running an audit. It presents a platform |
| 4 | menu, collects connection details and check selection, then runs the existing |
4 | menu, collects connection details and check selection, then runs the existing |
| 5 | collectors with live progress. |
5 | collectors with live progress. |
| 6 | |
6 | |
| 7 | GitHub, GitLab, and AWS are supported. Azure and Azure DevOps are stubbed in the |
7 | GitHub, GitLab, and AWS are supported. Adding a platform is a matter of writing |
| 8 | menu as *coming soon*. Adding a platform is a matter of writing a runner and a |
8 | a runner and a `Platform` descriptor in `tui/platforms.py` — the screens are |
| 9 | `Platform` descriptor in `tui/platforms.py` — the screens are platform-agnostic. |
9 | platform-agnostic. |
| 10 | |
10 | |
| 11 | | Pick a platform | Choose checks | Watch it run | |
11 | | Pick a platform | Choose checks | Watch it run | |
| 12 | |---|---|---| |
12 | |---|---|---| |
tui/platforms.py
+9 −16
| @@ -31,15 +31,14 @@ class Field: |
| 31 | class Platform: |
31 | class Platform: |
| 32 | key: str |
32 | key: str |
| 33 | label: str |
33 | label: str |
| 34 | # The fields below drive the audit flow. A disabled ("coming soon") |
34 | subject: Callable[ |
| 35 | # placeholder platform needs only key/label/enabled, so they default to |
35 | [dict], str |
| 36 | # empty and are never used while enabled is False. |
36 | ] # (settings) -> audit subject shown on the run screen |
| 37 | subject: Callable[[dict], str] | None = None # (settings) -> run-screen subject |
37 | fields: list[Field] |
| 38 | fields: list[Field] = field(default_factory=list) |
38 | checks: list[Check] |
| 39 | checks: list[Check] = field(default_factory=list) |
39 | default_selection: list[str] |
| 40 | default_selection: list[str] = field(default_factory=list) |
40 | output_dir: Callable[[dict], str] # (settings) -> path |
| 41 | output_dir: Callable[[dict], str] | None = None # (settings) -> path |
41 | run: Callable[..., object] # (settings, output_dir, selected_keys, on_event) |
| 42 | run: Callable[..., object] | None = None # (settings, out, keys, on_event) |
| |
| 43 | enabled: bool = True |
42 | enabled: bool = True |
| 44 | note: str = field(default="") |
43 | note: str = field(default="") |
| 45 | |
44 | |
| @@ -184,13 +183,7 @@ AWS = Platform( |
| 184 | run=_aws_run, |
183 | run=_aws_run, |
| 185 | ) |
184 | ) |
| 186 | |
185 | |
| 187 | # Coming soon — placeholders shown as disabled entries in the menu. Azure is the |
186 | PLATFORMS = [GITHUB, GITLAB, AWS] |
| 188 | # cloud counterpart to AWS; Azure DevOps is the source-platform counterpart to |
| |
| 189 | # GitHub/GitLab. |
| |
| 190 | AZURE = Platform(key="azure", label="Azure", enabled=False) |
| |
| 191 | AZURE_DEVOPS = Platform(key="azure_devops", label="Azure DevOps", enabled=False) |
| |
| 192 | |
| |
| 193 | PLATFORMS = [GITHUB, GITLAB, AWS, AZURE, AZURE_DEVOPS] |
| |
| 194 | |
187 | |
| 195 | |
188 | |
| 196 | def prefill(f: Field) -> str: |
189 | def prefill(f: Field) -> str: |
tui/tests/test_app.py
−13
| @@ -165,16 +165,3 @@ def test_aws_navigation(monkeypatch): |
| 165 | assert app.screen.query_one("#menu", Button).disabled is False |
165 | assert app.screen.query_one("#menu", Button).disabled is False |
| 166 | |
166 | |
| 167 | _run(scenario()) |
167 | _run(scenario()) |
| 168 | |
| |
| 169 | |
| |
| 170 | def test_azure_platforms_coming_soon(): |
| |
| 171 | async def scenario(): |
| |
| 172 | app = AuditApp() |
| |
| 173 | async with app.run_test(size=(120, 40)) as pilot: |
| |
| 174 | await pilot.pause() |
| |
| 175 | for key in ("azure", "azure_devops"): |
| |
| 176 | btn = app.screen.query_one(f"#{key}", Button) |
| |
| 177 | assert btn.disabled is True |
| |
| 178 | assert "coming soon" in str(btn.label).lower() |
| |
| 179 | |
| |
| 180 | _run(scenario()) |
| |