Skip to content

feat: v0.6.0 — rand, quota, stdin support, Bitcoin IOC extraction, build tooling overhaul - #7

Merged
alex27riva merged 20 commits into
mainfrom
dev
Aug 8, 2026
Merged

feat: v0.6.0 — rand, quota, stdin support, Bitcoin IOC extraction, build tooling overhaul#7
alex27riva merged 20 commits into
mainfrom
dev

Conversation

@alex27riva

@alex27riva alex27riva commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • New rand command: cryptographically secure random string generation (base64, hex subcommands, configurable length)
  • New quota command: check remaining API quota for VirusTotal, AbuseIPDB, and URLScan
  • strings command: now reads from stdin when no file is given; renamed flags (-n min-length, --unicode for non-ASCII mode)
  • ip command: accepts IP from stdin (echo 1.2.3.4 | soc-cli ip)
  • defang / fang commands: new --file / -f flag to process a list of IOCs from a file
  • extract-ioc command: extracts Bitcoin addresses, new --no-domains flag, filters false-positive domains with common file extensions, cleaner code structure
  • url-scan command: --visibility flag (public/unlisted/private), --debug flag for structured slog output, proper HTTP status error handling
  • myip command: IPv4/IPv6 selection and JSON output
  • Dependencies: bumped to latest (cobra, fatih/color, rodaine/table, x/term, resty.dev/v3, and transitive deps)
  • Build tooling overhaul:
    • main.go moved to cmd/soc-cli/main.go
    • internal/version package now owns Version/GitCommit/BuildDate, ldflags-injected at build time with a go install fallback via runtime/debug.ReadBuildInfo()
    • Makefile now includes a shared common.mk (help/build/run/test/cover/lint/tidy/ci/dist/release/clean); binaries build to bin/, cross-platform release archives + checksums to dist/
    • build.sh and version.txt removed (superseded by make dist / make release)
    • release.sh takes an explicit version arg, builds via make release, GPG-signs dist/SHA256SUMS, and publishes from dist/
    • Windows/Linux/macOS amd64+arm64 all covered in release builds
    • AGENTS.md removed (superseded by CLAUDE.md)

Test plan

  • soc-cli rand base64 32 and soc-cli rand hex 16 produce correct-length output
  • soc-cli quota shows quota for each configured API key
  • echo 1.2.3.4 | soc-cli ip works without positional arg
  • soc-cli defang -f demo/defanged_ips.txt defangs each line
  • soc-cli fang -f demo/defanged_ips.txt re-fangs each line
  • soc-cli extract-ioc demo/incident_report.txt extracts Bitcoin addresses
  • soc-cli extract-ioc demo/incident_report.txt --no-domains suppresses domain output
  • soc-cli strings demo/test_strings.bin extracts ASCII strings from binary
  • cat demo/test_strings.bin | soc-cli strings works via stdin
  • soc-cli url-scan --visibility public <url> uses correct visibility
  • go build ./... and go vet ./... pass
  • make build && ./bin/soc-cli version — version stamped correctly
  • make dist — all 6 platforms build
  • make release — archives + SHA256SUMS generated in dist/
  • go install ./cmd/soc-cli — version falls back to VCS build info correctly

🤖 Generated with Claude Code

Replace single ambiguous ip.me lookup with dedicated api.ipify.org
(IPv4) and api6.ipify.org (IPv6) endpoints. Add -4/-6 flags to pick
a single family (default: show both) and --json for structured output.
Bumps direct deps (cobra, fatih/color, rodaine/table, x/term, resty.dev/v3)
and transitive deps to latest available versions.
Move main.go to cmd/soc-cli/main.go, wire version/commit/date into
internal/version (ldflags + go-install fallback), drop version.txt and
build.sh in favor of common.mk's dist/release targets, adapt release.sh,
and update docs. Remove stale AGENTS.md.
@alex27riva alex27riva changed the title feat: v0.6.0 — rand, quota, stdin support, Bitcoin IOC extraction, file flags feat: v0.6.0 — rand, quota, stdin support, Bitcoin IOC extraction, build tooling overhaul Aug 8, 2026
@alex27riva
alex27riva merged commit 5321c7f into main Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant