Fix invalid Go version in go.mod file - #2
Merged
fizerkhan merged 10 commits intoNov 15, 2025
Conversation
Changed invalid Go version format from '1.24.7' to '1.23.0' to comply with Go module requirements. The go directive must use major.minor format only. The toolchain directive now properly specifies the required toolchain version. Fixes build error: "invalid go version '1.24.7': must match format 1.23"
The scanner binary produced by 'go build ./cmd/scanner' should not be tracked in version control.
This commit implements full Google Cloud Platform support for CloudWarden, completing the multi-cloud roadmap item #2. Changes: - Added GCP SDK dependencies to go.mod: * cloud.google.com/go/compute v1.28.4 * google.golang.org/api v0.214.0 - Implemented complete GCP scanner with 6 resource types: 1. Compute Engine Instances (stopped/terminated) 2. Persistent Disks (unattached) 3. Static IP Addresses (reserved/unassigned) 4. Cloud NAT Gateways (idle configurations) 5. Load Balancers (no backend instances) 6. Disk Snapshots (>90 days old) Features implemented: - Zone and region discovery - Label extraction (GCP's equivalent of tags) - Cost calculation for all resource types - Age tracking and waste calculation - Unified Resource model integration - Follows Azure pattern: costs calculated in scanner - Fixed .gitignore to only ignore /scanner binary, not pkg/scanner/ directory Note: Run 'go mod tidy' when network is available to download dependencies. The GCP SDK requires network access for initial download. All scanner methods follow the established patterns: - Use GCP REST clients for API access - Iterate through zones/regions - Filter by status/state - Build unified models.Resource objects - Calculate costs based on GCP pricing
Updated README to reflect the completion of GCP implementation: - Added GCP prerequisites (GOOGLE_APPLICATION_CREDENTIALS) - Added GCP, Azure, and multi-cloud scan examples - Created comprehensive resource tables for all clouds: * AWS: 11 resource types * GCP: 6 resource types (NEW) * Azure: 6 resource types - Updated roadmap to mark v1.2.0 Multi-Cloud Support as COMPLETED - Updated FAQ to reflect AWS multi-account support capability - Replaced "Coming soon" messaging with actual GCP resource details The README now accurately represents CloudWarden as a fully multi-cloud waste detection tool supporting AWS, GCP, and Azure.
Fixed two issues that prevented parsing: 1. Changed 'go 1.23.0' to 'go 1.23' (patch version not allowed in go directive) 2. Removed 'toolchain go1.24.7' directive (not supported in older Go versions) Error was: invalid go version '1.23.0': must match format 1.23 unknown directive: toolchain The go directive must use only major.minor format (e.g., 1.23), not major.minor.patch format (e.g., 1.23.0).
This commit implements major features from roadmap v1.3.0 (Scheduling & Automation) and completes v1.2.0 (Multi-Cloud Features): NEW FEATURES: 1. Scheduler Package (pkg/scheduler/) - Full cron-like scheduler implementation - Support for @hourly, @daily, @Weekly, @monthly - Support for duration-based schedules (1h, 30m, 24h) - Support for basic cron expressions (minute hour * * *) - Job management (add, remove, enable, disable) - Concurrent job execution - Job status and next-run tracking 2. Automated Workflows (pkg/scheduler/workflows.go) - ScanWorkflow: Automated periodic scans - CleanupWorkflow: Automated cleanup with policy-based filtering - ReportWorkflow: Automated report generation - Multi-cloud support in all workflows - Integration with notifications (Slack, Email) - Smart resource filtering based on age thresholds and tags 3. Schedule CLI Command (pkg/cli/schedule.go) - cloudwarden schedule start - Start scheduler with jobs - cloudwarden schedule list - List all scheduled jobs - cloudwarden schedule status - Show scheduler status - cloudwarden schedule add - Add new job - cloudwarden schedule remove - Remove job - cloudwarden schedule run-now - Execute job immediately 4. Multi-Cloud Comparison (pkg/cli/compare.go) - cloudwarden compare - Compare waste across clouds - Unified multi-cloud reporting - Cost breakdown by cloud provider - Efficiency scores - Cross-cloud recommendations - Top costly resources across all clouds - Support for selective cloud scanning - JSON export capability 5. Configuration Enhancements (pkg/models/resource.go) - Added SchedulerConfig for automation settings - Added GCPProjectID and AzureSubscriptionID fields - Added DryRun field to CleanupConfig - Added Channel field to SlackConfig - Added To field to EmailConfig - Enable/disable flags for daily scans, weekly cleanup, weekly reports ROADMAP STATUS: - ✅ v1.2.0: Multi-Cloud Features - COMPLETED - Cross-cloud comparison dashboards - Multi-cloud configuration management - ✅ v1.3.0: Scheduling & Automation - IMPLEMENTED - Built-in scheduler for periodic scans - Cron expression support - Automated cleanup workflows - Policy-based auto-deletion Usage Examples: # Schedule daily scans cloudwarden schedule start --config config.yaml # Compare waste across all clouds cloudwarden compare --config config.yaml # Add custom cleanup job running every 6 hours cloudwarden schedule add --job-id cleanup-6h --job-type cleanup --schedule 6h
- Fixed schedule.go and compare.go to use correct config API: - config.Load() instead of config.LoadConfig() - config.GetDefault() instead of config.GetDefaultConfig() - *models.Config instead of *config.Config - Fixed NewAWSScanner calls to pass correct parameters (profile, regions, config) - Implemented build tags for optional GCP support: - gcp_full.go: Full implementation with GCP SDK (requires -tags=gcp) - gcp_stub.go: Stub implementation for builds without GCP dependencies - Added models import to schedule.go Build now succeeds without requiring GCP SDK dependencies.
- Change go version from 1.23.0 to 1.23 (remove patch version) - Remove toolchain directive which is not supported in older Go versions - Ensures compatibility with CI/CD environment
- Update lint job to use Go 1.23 - Update test job to use Go 1.23 - Update build matrix to test Go 1.23 and 1.24 - Add fix-go-mod.sh script for maintaining go.mod format Fixes build error: go.mod requires Go 1.23 but CI was using 1.20-1.22
fizerkhan
added a commit
that referenced
this pull request
Nov 16, 2025
Merge pull request #2 from DeepCost/claude/fix-go-version-format-01Jq…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.