graphban-cli 0.8.2__tar.gz → 0.8.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/.gitignore +4 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/PKG-INFO +1 -1
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/pyproject.toml +1 -1
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/cli.py +7 -1
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_doctor.py +30 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/uv.lock +1 -1
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/LICENSE +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/README.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/__init__.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/client.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/config.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/data/stack_sdks.toml +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/doctor.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/gitignore.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/setup.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-delegation/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-grill/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-orient/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-prd/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-review/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-scan/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-wave/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/graphban-work/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/skills/watch-wave/SKILL.md +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/stackmap.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/src/gban/swamp.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_acts.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_login_projects.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_packaging.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_session.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_setup.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_stackmap.py +0 -0
- {graphban_cli-0.8.2 → graphban_cli-0.8.3}/tests/test_swamp.py +0 -0
|
@@ -26,6 +26,10 @@ backend/.pytest_cache/
|
|
|
26
26
|
fleet/.venv/
|
|
27
27
|
fleet/.pytest_cache/
|
|
28
28
|
*.egg-info/
|
|
29
|
+
# Written at package build time by `refusal_ratchet.py publish` (the packer, the wheel job),
|
|
30
|
+
# never committed: a CI push to protected main is refused and turns main red (GRPH-1185).
|
|
31
|
+
backend/app/data/refusal_coverage.json
|
|
32
|
+
backend/app/data/gban_skills.json
|
|
29
33
|
|
|
30
34
|
# Node
|
|
31
35
|
web/node_modules/
|
|
@@ -513,7 +513,13 @@ def cmd_fleet(args) -> int:
|
|
|
513
513
|
f" …or `brew install asc-me/tap/gban` installs this client only — the "
|
|
514
514
|
f"supervisor is a separate package.", file=sys.stderr)
|
|
515
515
|
return EXIT_NO_SUPERVISOR
|
|
516
|
-
|
|
516
|
+
# Only a LEADING `--` is ours to drop (`gban fleet -- ps`). Any later one belongs to
|
|
517
|
+
# gbfleet: `service install --name X -- <until args>` splits on it, and stripping it
|
|
518
|
+
# handed the until args to `service install` itself.
|
|
519
|
+
rest = list(args.rest)
|
|
520
|
+
if rest[:1] == ["--"]:
|
|
521
|
+
rest = rest[1:]
|
|
522
|
+
argv = [binary, *rest]
|
|
517
523
|
url = config.resolve(args.server, config.URL_ENV, "url")
|
|
518
524
|
if url and "--server" not in argv:
|
|
519
525
|
argv += ["--server", url]
|
|
@@ -181,6 +181,36 @@ def test_an_explicit_server_is_not_overridden(home, monkeypatch):
|
|
|
181
181
|
assert "http://gb.invalid" not in seen["argv"]
|
|
182
182
|
|
|
183
183
|
|
|
184
|
+
def test_a_separator_inside_the_gbfleet_args_reaches_gbfleet(home, monkeypatch):
|
|
185
|
+
"""`service install --name X -- <until args>` splits on that `--`. Stripping it made
|
|
186
|
+
gbfleet read `--repo` as its own flag and refuse. Sabotage: drop every `--` again and
|
|
187
|
+
this fails."""
|
|
188
|
+
seen = {}
|
|
189
|
+
|
|
190
|
+
class Done:
|
|
191
|
+
returncode = 0
|
|
192
|
+
|
|
193
|
+
monkeypatch.setattr("gban.cli.shutil.which", lambda name: "/usr/bin/gbfleet")
|
|
194
|
+
monkeypatch.setattr("gban.cli.subprocess.run",
|
|
195
|
+
lambda argv, **kw: (seen.update(argv=argv), Done())[1])
|
|
196
|
+
main(["fleet", "service", "install", "--name", "P1", "--", "--repo", "/r", "--prd", "P1"])
|
|
197
|
+
assert seen["argv"][:8] == ["/usr/bin/gbfleet", "service", "install", "--name", "P1",
|
|
198
|
+
"--", "--repo", "/r"]
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def test_a_leading_separator_is_still_dropped(home, monkeypatch):
|
|
202
|
+
seen = {}
|
|
203
|
+
|
|
204
|
+
class Done:
|
|
205
|
+
returncode = 0
|
|
206
|
+
|
|
207
|
+
monkeypatch.setattr("gban.cli.shutil.which", lambda name: "/usr/bin/gbfleet")
|
|
208
|
+
monkeypatch.setattr("gban.cli.subprocess.run",
|
|
209
|
+
lambda argv, **kw: (seen.update(argv=argv), Done())[1])
|
|
210
|
+
main(["fleet", "--", "ps"])
|
|
211
|
+
assert seen["argv"][:2] == ["/usr/bin/gbfleet", "ps"]
|
|
212
|
+
|
|
213
|
+
|
|
184
214
|
def test_a_missing_supervisor_says_how_to_install_it(home, monkeypatch, capsys):
|
|
185
215
|
"""7. Exit 4, its own code, so it cannot be confused with something gbfleet said.
|
|
186
216
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|