Skip to content

feat(gcp): finish wiring, sync docs, ignore .bin/#22

Merged
kkmookhey merged 4 commits into
mainfrom
feat/gcp-consolidation
May 15, 2026
Merged

feat(gcp): finish wiring, sync docs, ignore .bin/#22
kkmookhey merged 4 commits into
mainfrom
feat/gcp-consolidation

Conversation

@kkmookhey

Copy link
Copy Markdown
Collaborator

Summary

  • feat(gcp) — adds get_gcp_client() + gcp_project_id/gcp_region config fields, a new /connect-gcp skill mirroring /connect-azure, and collapses /scan from three near-duplicate per-cloud blocks into one parameterized block that scans whichever clouds are configured.
  • docs — syncs TRUST.md test counts (851) and Layer 1 suite breakdown after the GCP merge; adds GCP to CLAUDE.md project map and conventions.
  • chore.gitignore entry for .bin/ (local uv/uvx binaries, 48MB).

Why this is needed

PR #20 merged the GCP detection layer (check modules + scanner integration + tests), but the config and skill layer wasn't wired up — shasta.config.json had no GCP fields, config.py had no get_gcp_client(), and there was no /connect-gcp skill, so users couldn't drive a GCP scan through the normal flow. This PR closes that gap.

What I excluded and why

The remote branch review/pr-20-gcp-fixes looked like it might have unmerged fixes (per-subnet networking findings, IAM token-creator, KMS locations). I verified against main and confirmed all its substantive fixes already landed via PR #20's squashed a6fe068 fix(gcp): three scanner bugs from PR review. The remaining diff is cosmetic (variable renames, line-wrapping). That branch is stale and can be deleted.

Test plan

  • pytest tests/test_integrity/ tests/test_aws/test_aws_sweep_smoke.py tests/test_azure/test_smoke.py tests/test_gcp/test_smoke.py — 241 passed locally
  • pytest --collect-only collects exactly 851 tests, matching the TRUST.md claim (within the integrity test's tolerance of 50)
  • ruff check src/shasta/config.py — clean
  • get_gcp_client() constructs correctly without google libs (lazy imports); validator accepts valid GCP project IDs and rejects malformed ones
  • CI integrity workflow on this PR

End-to-end /connect-gcp/scan flow against a real GCP project still needs to be run by a human with gcloud auth application-default login configured.

🤖 Generated with Claude Code

kkmookhey and others added 4 commits May 15, 2026 07:31
The GCP check modules and scanner integration already existed, but the
config layer and skill-driven UX did not — there was no way to drive a
GCP scan through the normal flow.

- add gcp_project_id / gcp_region to ShastaConfig (with project-id
  format validator) and the load_config defaults
- add get_gcp_client() convenience constructor, mirroring
  get_aws_client() / get_azure_client()
- add /connect-gcp skill mirroring /connect-azure (ADC auth via gcloud,
  [gcp] extra install, credential validation)
- collapse the three near-duplicate per-cloud blocks in /scan into one
  parameterized block that scans whichever clients are configured

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The GCP integration (PR #20) added ~306 tests but left TRUST.md's
internal test counts stale and self-contradictory (TL;DR said 814,
Layer 1 said 519/684, run-output said 537). Sync every count to the
real collected total of 851, add tests/test_gcp and tests/voice rows
to the Layer 1 breakdown, and correct the integrity-test list (it
named three Whitney tests deleted in the 2026-04-13 split).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #20 added src/shasta/gcp/ but left CLAUDE.md describing an
AWS+Azure-only platform. Add GCP to the project description, tech
stack, project layout, install extras, client-session convention,
the multi-region/subscription principle (now multi-project via
GCPClient.for_project), and the required smoke-test list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each developer can bootstrap uv/uvx into ./.bin/ without committing
the 48MB binary blobs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kkmookhey kkmookhey merged commit 06e55e4 into main May 15, 2026
0 of 2 checks passed
@kkmookhey kkmookhey deleted the feat/gcp-consolidation branch May 15, 2026 14:33
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