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.2.tar.gz (44.4 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.2-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.2.tar.gz
  • Upload date:
  • Size: 44.4 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.2.tar.gz
Algorithm Hash digest
SHA256 da4aabc2df1ae6c779971ad84bba8e98b8068151d2fada295b4864d0edf7b1fa
MD5 925c2122e54bfb409f62280f6e4faf7f
BLAKE2b-256 c55568923c6d879a0f9172153d070f95bbf4f7b87237e6da87d7e0c5b079a4ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swoosh_cli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 52.8 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5408ee31a79d4f12566d4e05e70d9d384901baf901cdb8127904de93c067a705
MD5 9c3707ee928a0b81b4c9321a06d3c29c
BLAKE2b-256 4a3cdf81b857fbfae5963e8ff1b6ed75d26b3f88751d43b2e7715fc1e3699c67

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