cloudgate

command module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2025 License: MIT Imports: 5 Imported by: 0

README

            /  |                             /  |                         /  |              
   _______  $$ |   ______    __    __    ____$$ |   ______     ______    _$$ |_      ______  
  /       | $$ |  /      \  /  |  /  |  /    $$ |  /      \   /      \  / $$   |    /      \ 
 /$$$$$$$/  $$ | /$$$$$$  | $$ |  $$ | /$$$$$$$ | /$$$$$$  |  $$$$$$  | $$$$$$/    /$$$$$$  |
 $$ |       $$ | $$ |  $$ | $$ |  $$ | $$ |  $$ | $$ |  $$ |  /    $$ |   $$ | __  $$    $$ |
 $$ \_____  $$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | /$$$$$$$ |   $$ |/  | $$$$$$$$/ 
 $$       | $$ | $$    $$/  $$    $$/  $$    $$ | $$    $$ | $$    $$ |   $$  $$/  $$       |
   $$$$$$$/ $$/   $$$$$$/    $$$$$$/    $$$$$$$/   $$$$$$$ |  $$$$$$/     $$$$/     $$$$$$$/ 
                                                  /  \__$$ |                              
                                                  $$    $$/                               
                                                   $$$$$$/                                

cloudgate

A terminal-based application that unifies multi-cloud operations across AWS, Azure, and GCP.

Where your clouds converge.

Latest Release Lint Test Build Dependabot Status Go ReportCard

cloudgate Demo

Features

  • AWS Integration

    • Multi-account/region management
    📋 Available AWS Services & Operations
    Service Operation Description
    CodePipeline
    Pipeline Status View status of all pipelines and their stages
    Pipeline Approvals List, approve, or reject pending manual approvals
    Start Pipeline Trigger pipeline execution with latest commit or specific revision
    Lambda
    Function Status View all Lambda functions with runtime and last update info

    Function Details View:
    Select any function to inspect detailed configuration including memory, timeout, architecture, and other key attributes

    Operations can be performed using any configured AWS profile and region (one active profile/region at a time)
    Multi-account aggregation for services will be coming in the future

  • Terminal UI

    • Fast, keyboard-driven interface
    • Context-aware navigation
    • Visual feedback and safety controls
    • Formatted display of timestamps and resource sizes
    • Vim-style navigation ('-' for backwards navigation, 'k/j' for up/down navigation, etc.)
  • Coming Soon

    • Azure integration
    • GCP support
    • Additional AWS services (S3, EC2, etc.)

Installation

Quick Install / Upgrade

Linux/macOS:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/HenryOwenz/cloudgate/main/scripts/install.sh)"

Windows (PowerShell):

Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/HenryOwenz/cloudgate/main/scripts/install.ps1'))

These scripts will automatically download and install the latest version of cloudgate, handling upgrades cleanly if you already have it installed.

From Source
git clone https://github.com/HenryOwenz/cloudgate.git
cd cloudgate
make build
make install  # Installs as 'cg' in your $GOPATH/bin

Requirements

  • Go 1.22+
  • AWS credentials configured in ~/.aws/credentials or ~/.aws/config

Usage

cg  # Launch the application
Navigation
Key Action
↑/↓ or k/j Navigate options
Enter Select/Confirm
Esc/- Go back/Cancel
q Quit application
Ctrl+c Force quit
g/G Jump to top/bottom
u/d Half page up/down
b/f Page up/down

Note: Vim-style navigation keys (g, G, u, d, etc.) work in table views but are passed through as text when in input mode. Use Esc to exit text input mode.

Development

Testing
make test          # Run all tests
make test-unit     # Run unit tests only
make test-integration  # Run integration tests only
make test-coverage  # Generate coverage report
CI/CD

This project uses GitHub Actions for continuous integration:

  • Automated builds on each push and pull request
  • Unit and integration tests
  • Code linting with golangci-lint
  • Test coverage reporting
  • Automatic testing of Dependabot PRs

Architecture

cloudgate uses a dual-layer architecture:

  • Provider layer: Abstracts cloud provider APIs
  • UI layer: Handles user interaction and workflow

The application follows a modular design pattern that makes it easy to add new cloud services and operations. Each service is implemented as a separate module with clear interfaces, allowing for independent development and testing.

Dependency Management

The project uses two complementary approaches to dependency management:

1. Manual Updates via Make Targets

For direct control over dependency updates:

Update to latest patch versions and verify build:

make update-deps

Update to latest patch versions only:

make update-deps-patch

Update to latest minor versions:

make update-deps-minor

Update specific package to latest major version:

make update-deps-major PKG=github.com/example/package
2. Automated Updates via Dependabot

The project uses GitHub Dependabot to automatically create pull requests for dependency updates:

  • Weekly checks for Go module updates
  • Monthly checks for GitHub Actions updates
  • Automatic testing of dependency updates
  • Grouped updates to reduce PR noise
  • Safety limits on open PRs to prevent overwhelming the repository

Dependabot configuration can be found in .github/dependabot.yml.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Run tests (make test)
  4. Commit your changes (git commit -m 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL