Skip to content

Releases: tbotnz/cisshgo

v1.0.0

15 Mar 01:52
v1.0.0
46d191c

Choose a tag to compare

[1.0.0] - 2026-03-15

⚠️ Breaking Changes

  • Document breaking CLI flag renames from Kong migration (4d7da81)

CLI flags were renamed as part of the Kong migration in #64.
Users with scripts or tooling using the old flag names must update them.

  • Add missing package-level doc comments (#111) (7f37a4c)
  • docs!: v1.0.0 — first stable release with breaking changes from v0.2.0
  • Update CHANGELOG header with stability commitment and regenerate (#97) (16436e1)
  • docs!: v1.0.0 — first stable release with breaking changes from v0.2.0

🐛 Bug Fixes

  • Change ParseArgs to return int instead of *int for startingPort (31205b8)
  • Rename sshlistners package to sshlisteners (2e7ca9e)
  • Eliminate FakeDevice data race and ssh.Handle global state (#60) (7423e32)
  • Resolve transcript paths relative to transcript map file location (#76) (1c34c23)
  • Validate inventory entry Count is non-negative (#116) (0ef441a)
  • Add timeout to SSH server graceful shutdown (#117) (7882ef5)
  • Correct transcript paths to be relative to map file directory (#119) (c64b783)
  • Require username on all platforms — enforce strict auth (#123) (95d408f)
  • Add end_context field so end jumps directly to privileged exec (#126) (a2e5ab6)
  • Update csr1000v-add-interface scenario to reflect real IOS config workflow (#127) (22b60da)
  • Integrate sequence steps and context switches in handleShellInput (#132) (54697e0)
  • Enforce strict command ordering in scenario mode (#133) (3f1b123)
  • Move enable to first step in csr1000v-add-interface scenario (#134) (40a27bf)
  • Apply end_context when end/exit is a sequence step (#137) (f32b3b3)
  • Update csr1000v-add-interface scenario transcripts and steps (#138) (5eaf737)
  • Add checkout step to coverage-report job (b36cfb7)
  • Correct branch references from main to master (a643619)
  • Remove changelog commit from release workflow (64d7bdf)
  • Use default GoReleaser changelog instead of git-cliff (e233e26)
  • Use git-cliff for release notes via --release-notes flag (8412c11)

👷 CI/CD

  • Raise coverage threshold from 60% to 90% (e174c15)

📚 Documentation

  • Add CONTRIBUTING.md with GitHub Flow workflow and transcript guide (5434278)
  • Add package-level doc comments for pkg.go.dev (a8313e5)
  • Add git-cliff for automated changelog generation (#66) (f2386e1)
  • Promote breaking changes to top section in changelog (45f40ba)
  • Add emoji section headers and fix breaking change deduplication in changelog (6e0a8f1)
  • Regenerate changelog with Kong breaking change entry (b81b88f)
  • Show commit body for features and breaking changes in changelog (2f25762)
  • Add MkDocs Material documentation site (92505a5)
  • Fix CLI flag formats and scenarios documentation (9c6908c)
  • Polish documentation with improvements from technical review (b436db3)
  • Fix remaining flag format inconsistencies (eb82291)
  • Add comprehensive usage examples for all features (206e530)
  • Add migration guide for v0.2.0 to v1.0.0 (#95) (bf76cb4)
  • Move project description above badges in README (#112) (faede0b)
  • Fix Docker registry references in README (#113) (574df14)
  • Link to text/template docs in transcripts documentation (#114) (88135cf)
  • Fix incorrect branch name in contributing docs (#115) (37802de)
  • Update changelog for v1.0.0 (1f50f49)

🔧 Refactoring

  • Change TranscriptMap.Platforms from list-of-maps to map (#62) (8814135)
  • Replace flag package with Kong for CLI argument parsing (#64) (0391eba)
  • Split utils package into config, transcript, and cmdmatch (cf55700)
  • Rewrite cmdmatch.Match() with cleaner single-pass algorithm (#118) (c814e20)

🚀 Features

  • Add graceful shutdown via context.Context (#61) (eb120de)

  • GenericListener now accepts context.Context and shuts down cleanly
    on cancellation via ssh.Server.Shutdown

  • run() uses sync.WaitGroup to wait for all listeners to exit

  • main() wires up signal.NotifyContext for SIGINT/SIGTERM

  • Update tests for new signatures; add shutdown verification test

  • Implement inventory system for multi-device topology management (#67) (5a2b784)

  • Add Inventory/InventoryEntry types and LoadInventory() to utils

  • Add --inventory and --platform flags to CLI struct

  • InitGeneric now reads vendor from transcript map (drops vendor param)

  • InitGeneric returns error for unknown platform

  • run() uses inventory when provided, falls back to --platform/--listeners

  • Add iosxr platform to transcript_map.yaml with show version transcript

  • Add transcripts/inventory_example.yaml demonstrating multi-device usage

  • Add device transcript library for 5 additional platforms (#69) (dd8b6ce)

Add show version, show ip interface brief, and show running-config
transcripts sourced from NTC Templates test fixtures for:

  • Cisco IOS (ISR4321, 15.6)
  • Cisco ASA (ASAv, 9.12)
  • Cisco NX-OS (N9K, 9.3)
  • Arista EOS (DCS-7050CX3, 4.27)
  • Juniper Junos (MX240, 21.4)

Also update inventory_example.yaml to demonstrate all 7 platforms.

  • Add ENV variable support for all CLI flags (#75) (61dfe19)

Each flag can now be set via environment variable (CLI takes precedence):
CISSHGO_LISTENERS, CISSHGO_STARTING_PORT, CISSHGO_TRANSCRIPT_MAP,
CISSHGO_PLATFORM, CISSHGO_INVENTORY

  • Validate transcript map paths at startup before spawning listeners (#77) (eaeaf48)

Add ValidateTranscriptMap() that checks all command_transcripts paths
exist on disk before any listeners are spawned. Reports all missing
files in a single error rather than failing on the first.

  • Implement scenario-based stateful command responses (#79) (9419d11)
  • feat: Implement scenario-based stateful command responses

Add scenario...

Read more

v0.2.0

26 Feb 20:11

Choose a tag to compare

Changelog

  • f1606a8 Merge pull request #29 from tbotnz/brett/updates
  • d5a3918 ci: Add GitHub Actions test workflow (#36)
  • 94e305f ci: Add coverage reporting and threshold enforcement (#37)
  • 1d14912 ci: Install syft for SBOM generation in release workflow
  • 04d10a8 ci: Switch Docker registry from Docker Hub to GHCR
  • b15019e feat: Add SSH exec mode support (#42)
  • 0697e99 feat: add Docker release support and migrate to goreleaser v2
  • 585a431 refactor!: Replace log.Fatal with error returns, achieve 93% coverage (#39)

v0.1.1

26 May 21:03
ae37c4a

Choose a tag to compare

adds native support for cisco write mem command

v0.1.0

04 Feb 01:34
c0a6be5

Choose a tag to compare

Changelog

c0a6be5 Merge pull request #24 from Apcela/reset_state_command

Adds back the reset state command to allow resetting a device to default condition.

See #24 for more details.

v0.0.4

01 Oct 01:06
v0.0.4
12c936a

Choose a tag to compare

Fixes an assortment of spelling errors.

v0.0.3

18 Sep 05:31
84c5c29

Choose a tag to compare

new name

Mr Managers Modularity

04 Sep 07:49
7872dca

Choose a tag to compare

Merge pull request #2 from lykinsbd/feature/command_mapper

Add Command Transcript Playback and Make More Modular

Wills Science Fair

02 Sep 02:36
18e2db8

Choose a tag to compare

Merge pull request #7 from Apcela/simple_state

Simple state