Skip to main content

All-in-one CLI for Git workflow automation: init, commit, release, deploy, sync

Project description

Swoosh

All-in-one CLI for Git workflow automation.

Install

One command installs everything (Python, Git, GitHub CLI, SSH, rsync, swoosh):

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/MNametissa/swoosh/main/install.sh | bash

Windows (PowerShell):

iwr -useb https://raw.githubusercontent.com/MNametissa/swoosh/main/install.ps1 | iex

The installer auto-detects your OS and package manager:

  • Linux: apt, dnf, yum, pacman, apk
  • macOS: Homebrew (installs if missing)
  • Windows: winget, scoop, chocolatey

Manual install

If you already have Python 3.10+ and dependencies:

pipx install swoosh-cli
# or
pip install swoosh-cli

From source

pip install git+https://github.com/MNametissa/swoosh.git

Commands

Command Description
swoosh auth Authenticate with GitHub (SSH, token, or OAuth)
swoosh init Initialize project with Git, GitHub repo, CI/CD
swoosh commit Create conventional commit
swoosh release Version bump, changelog, tag, GitHub release
swoosh deploy Deploy via SSH/rsync with rollback
swoosh sync Sync multiple repositories
swoosh secrets Scan for secrets, manage GitHub secrets
swoosh pr Create/list pull requests
swoosh origin Multi-origin management
swoosh clone Clone repositories
swoosh hook Manage auto-push hooks
swoosh templates List CI/CD templates
swoosh doctor Check dependencies
swoosh config Configure defaults

Usage

Authenticate with GitHub

# Interactive (recommended)
swoosh auth

# Check status
swoosh auth status

# Use SSH key
swoosh auth --ssh

# Use Personal Access Token
swoosh auth --token ghp_xxxxxxxxxxxx

# With git config
swoosh auth --name "Your Name" --email "you@example.com"

Initialize a new project

# Create new project with Python CI template
swoosh init myproject --template python

# Initialize in current directory
swoosh init --here

Commit with conventional format

# Interactive
swoosh commit

# Quick
swoosh commit "add user auth" --type feat --push

Create a release

# Interactive with auto-detection
swoosh release --auto

# Specific bump
swoosh release minor

# Pre-release
swoosh release patch --pre beta

Deploy to server

# swoosh.yaml
deploy:
  production:
    host: user@server.com
    path: /var/www/app
    method: rsync
    build: npm run build
    restart: systemctl restart app
    health_check:
      type: http
      url: http://localhost:3000/health
swoosh deploy production
swoosh deploy --rollback production

Multi-origin management

# List remotes
swoosh origin list

# Add GitLab mirror
swoosh origin mirror --provider gitlab

# Push to all remotes
swoosh origin push

# Check sync status
swoosh origin status

Scan for secrets

swoosh secrets scan
swoosh secrets scan --staged

CI/CD Templates

  • generic - Basic linting
  • node - Node.js with npm, testing, build
  • python - Python with pytest, ruff
  • rust - Rust with cargo, clippy
  • go - Go with testing, build
swoosh templates list
swoosh templates show python

Configuration

Global config: ~/.config/swoosh/config.yaml Project config: swoosh.yaml

swoosh config --show
swoosh config --github-user myuser

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swoosh_cli-0.1.0.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swoosh_cli-0.1.0-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file swoosh_cli-0.1.0.tar.gz.

File metadata

  • Download URL: swoosh_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for swoosh_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 51d7bc8a47aa4319405819d889bfd377d69c86a87efd02ecd03af570031626dc
MD5 055e84742993b7cd54d16c69dd5bd359
BLAKE2b-256 2af2cb964986e45588bcd0742abc3a3d5da3389e40c6aaf8401097c4e4b6c1be

See more details on using hashes here.

File details

Details for the file swoosh_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: swoosh_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for swoosh_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c9ac92cfe75c9e34d10d4002de593cec8f9b7098bc82fcdb153863a15b34eb0
MD5 09e022ed8386778809b3f743f1499211
BLAKE2b-256 521582f49b167fd2b471b1c4c50a9cb108b2eb44a6621c8b6f5373d824668781

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page