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.1.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.1-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 34fef69a7201f6b4c521486d6f4498a3381b0fbce4411012cdee064680a54843
MD5 82a52b389031c461b9ca628a8a05499b
BLAKE2b-256 bb8defeddb71200639bd8a1ada42f11416bf0e980c0b4cc444bd5799404c59f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aaabd5a4844e724198ea84fdcc462ce3605a72dec1978f0a439773d47136d991
MD5 dc6776274522516d14c49234fae6ff03
BLAKE2b-256 24f352837551e845dfa0a648be8432315b613c8d6c1f4295cf3ae9adfe304eca

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