Repository navigation
Releases: superfishlu/gmab
Releases · superfishlu/gmab
Release list
GMAB 0.2.5
[0.2.5] - 2026-06-12
Added
- JSON output for automation:
-o json(--output) onspawn,list(including
list detail [verbose]), andterminate. The default format can also be set once via
output_formatinconfig.json(textorjson); the-oflag overrides it. In JSON
mode,terminatewrites its to-be-terminated "plan" and confirmation prompt to stderr so
stdout stays a single valid JSON result document. - OVHcloud Public Cloud provider (
-p ovh). Instances are scoped to a Public Cloud
project (service_name); since OVH instances carry no tags, gmab encodes the creation
time and lifetime in the instance name and filters on thegmab-prefix. Region-specific
flavorId/imageIdUUIDs are resolved from human names (d2-2,Ubuntu 22.04) per
region at spawn time, so the defaults don't rot. Uses AK/AS/CK authentication. - Mocked, offline test coverage for the OVH provider.
gmab list detailandgmab list detail verbose: per-instance detail tables. The
non-verbose view shows the common fields plus provider-specific extras (AWS VPC/subnet/
security groups/AZ, OVH flavor/plan, Hetzner server type/datacenter, Linode specs);
verbosedumps the full provider API response (flattened). Pass an instance id or label
to show just that one instance, otherwise every instance is shown. Providers expose this
via two new optional hooks,get_instance_details()anddetail_extras().gmab listnow renders a responsive table (viarich) that auto-sizes to the terminal
width, wraps long cells instead of truncating them (so full instance IDs and labels are
always recoverable), drops low-priority columns (Image, then Region, then Instance ID) on
narrow terminals while always keeping Provider/Label/IP/Status/Time Left, draws a separator
line between instances, colorizes status (green running, orange expired) and an expired
Time Left in red, and falls back to ASCII borders on consoles that can't render box-drawing
characters.
Changed
- Added
ovhandrichto the runtime dependencies. - OVH
gmab listshows the friendly image name (e.g.Ubuntu 22.04) instead of the raw
image UUID, resolved per region and cached. gmab terminatenow previews the instances to be terminated using the same responsive
table asgmab listin every case (a single instance, several,all, orexpired)
instead of a plain bulleted list or a bare confirmation prompt. Identifiers that don't
resolve are shown as a "not found" row.
[0.2.0] - 2026-06-12
GMAB 0.2.0
[0.2.0] - 2026-06-12
Changed
- Refactored provider integration into a self-registering plugin model: providers are
auto-discovered fromgmab/providers/, so adding one is a single drop-in file with no
edits to the factory, config loader, configure command, or CLI. - Replaced per-provider
get_default_config/get_config_promptswith a declarative
CONFIG_SCHEMA; the base class now derives defaults, prompts, validation, and secret masking. - Hoisted shared logic (SSH key reading, label generation, expiry math, label-to-id lookup)
intoProviderBaseandgmab/utils/naming.py. gmab terminatenow asks for y/n confirmation in every case, including a single instance
(which previously skipped the prompt). Pass-y/--yesto bypass it.- The post-spawn "Connect via" SSH hint now shows the correct login user per provider
(ubuntufor the default AWS image,rootfor Linode/Hetzner) instead of alwaysroot.
Added
gmab/providers/_template.pyreference implementation and an "Adding a provider" guide.- A mocked, offline test suite (stdlib unittest, no new dependencies) covering provider
lifecycle, base helpers, the command layer, and the config layer.
Fixed
- Provider config defaults handed Hetzner AWS's defaults.
- Updated the AWS default AMI (the previous one had been deregistered) to a current
Ubuntu 22.04 LTS image for eu-west-1. - Updated the Hetzner default server type from
cpx11(now US-only) tocpx22, which is
available in the defaultnbg1location. __version__was left at 0.1.3 in the 0.1.4 release, sogmab --versionreported the
wrong number.
[0.1.4] - 2026-01-20
GMAB 0.1.4
[0.1.4] - 2026-01-20
Changed
- Re-published to PyPI after account restoration
[0.1.3] - 2025-03-05
GMAB 0.1.3
[0.1.3] - 2025-03-05
Changed/Fixed
- Removed old dependencies as documented in issue #5