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 | 4 | menu, collects connection details and check selection, then runs the existing |
| 5 | 5 | collectors with live progress. |
| 6 | 6 | |
| 7 | | GitHub, GitLab, and AWS are supported. Azure and Azure DevOps are stubbed in the |
| 8 | | menu as *coming soon*. Adding a platform is a matter of writing a runner and a |
| 9 | | `Platform` descriptor in `tui/platforms.py` — the screens are platform-agnostic. |
| 7 | GitHub, GitLab, and AWS are supported. Adding a platform is a matter of writing |
| 8 | a runner and a `Platform` descriptor in `tui/platforms.py` — the screens are |
| 9 | platform-agnostic. |
| 10 | 10 | |
| 11 | 11 | | Pick a platform | Choose checks | Watch it run | |
| 12 | 12 | |---|---|---| |
tui/platforms.py
+9 −16
| @@ -31,15 +31,14 @@ class Field: |
| 31 | 31 | class Platform: |
| 32 | 32 | key: str |
| 33 | 33 | label: str |
| 34 | | # The fields below drive the audit flow. A disabled ("coming soon") |
| 35 | | # placeholder platform needs only key/label/enabled, so they default to |
| 36 | | # empty and are never used while enabled is False. |
| 37 | | subject: Callable[[dict], str] | None = None # (settings) -> run-screen subject |
| 38 | | fields: list[Field] = field(default_factory=list) |
| 39 | | checks: list[Check] = field(default_factory=list) |
| 40 | | default_selection: list[str] = field(default_factory=list) |
| 41 | | output_dir: Callable[[dict], str] | None = None # (settings) -> path |
| 42 | | run: Callable[..., object] | None = None # (settings, out, keys, on_event) |
| 34 | subject: Callable[ |
| 35 | [dict], str |
| 36 | ] # (settings) -> audit subject shown on the run screen |
| 37 | fields: list[Field] |
| 38 | checks: list[Check] |
| 39 | default_selection: list[str] |
| 40 | output_dir: Callable[[dict], str] # (settings) -> path |
| 41 | run: Callable[..., object] # (settings, output_dir, selected_keys, on_event) |
| 43 | 42 | enabled: bool = True |
| 44 | 43 | note: str = field(default="") |
| 45 | 44 | |
| @@ -184,13 +183,7 @@ AWS = Platform( |
| 184 | 183 | run=_aws_run, |
| 185 | 184 | ) |
| 186 | 185 | |
| 187 | | # Coming soon — placeholders shown as disabled entries in the menu. Azure is the |
| 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] |
| 186 | PLATFORMS = [GITHUB, GITLAB, AWS] |
| 194 | 187 | |
| 195 | 188 | |
| 196 | 189 | def prefill(f: Field) -> str: |
tui/tests/test_app.py
−13
| @@ -165,16 +165,3 @@ def test_aws_navigation(monkeypatch): |
| 165 | 165 | assert app.screen.query_one("#menu", Button).disabled is False |
| 166 | 166 | |
| 167 | 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()) |