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.3.tar.gz (44.8 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.3-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 44.8 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.3.tar.gz
Algorithm Hash digest
SHA256 0d725822592206dad3b62512cb0cce6480f0acc112bb66574a56912ba966b898
MD5 bd3aeff131660b091a06f206f162626b
BLAKE2b-256 00562f8e91b0f0d573717d0ff7d39d89a8b88bcc4e608bec09b038788cc36cfd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 53.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2ad512f7735d3908a3efa1da7dfeb039828f54c56fceb81466ba3f0f07fe9a07
MD5 81e4a2a03474be9848b17bf7425f176c
BLAKE2b-256 d63733a2b0e81f6f3322d3211da8d7ec640deba9c00187fcad6497f066eaa693

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