swoosh-cli 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- swoosh_cli-0.1.0/PKG-INFO +198 -0
- swoosh_cli-0.1.0/README.md +173 -0
- swoosh_cli-0.1.0/pyproject.toml +38 -0
- swoosh_cli-0.1.0/setup.cfg +4 -0
- swoosh_cli-0.1.0/swoosh/__init__.py +3 -0
- swoosh_cli-0.1.0/swoosh/cli.py +442 -0
- swoosh_cli-0.1.0/swoosh/modules/__init__.py +1 -0
- swoosh_cli-0.1.0/swoosh/modules/auth.py +389 -0
- swoosh_cli-0.1.0/swoosh/modules/check.py +203 -0
- swoosh_cli-0.1.0/swoosh/modules/clone.py +196 -0
- swoosh_cli-0.1.0/swoosh/modules/commit.py +237 -0
- swoosh_cli-0.1.0/swoosh/modules/config.py +169 -0
- swoosh_cli-0.1.0/swoosh/modules/deploy.py +619 -0
- swoosh_cli-0.1.0/swoosh/modules/hooks.py +285 -0
- swoosh_cli-0.1.0/swoosh/modules/init.py +216 -0
- swoosh_cli-0.1.0/swoosh/modules/origins.py +692 -0
- swoosh_cli-0.1.0/swoosh/modules/pr.py +290 -0
- swoosh_cli-0.1.0/swoosh/modules/release.py +389 -0
- swoosh_cli-0.1.0/swoosh/modules/secrets.py +580 -0
- swoosh_cli-0.1.0/swoosh/modules/sync.py +270 -0
- swoosh_cli-0.1.0/swoosh/modules/templates.py +402 -0
- swoosh_cli-0.1.0/swoosh/modules/utils.py +342 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/PKG-INFO +198 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/SOURCES.txt +26 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/dependency_links.txt +1 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/entry_points.txt +2 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/requires.txt +6 -0
- swoosh_cli-0.1.0/swoosh_cli.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: swoosh-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: All-in-one CLI for Git workflow automation: init, commit, release, deploy, sync
|
|
5
|
+
Author: MNametissa
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/MNametissa/swoosh
|
|
8
|
+
Project-URL: Repository, https://github.com/MNametissa/swoosh
|
|
9
|
+
Keywords: git,github,cli,automation,deploy,ci-cd
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: typer[all]>=0.9.0
|
|
20
|
+
Requires-Dist: rich>=13.0.0
|
|
21
|
+
Requires-Dist: questionary>=2.0.0
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: toml>=0.10.0
|
|
24
|
+
Requires-Dist: paramiko>=3.0.0
|
|
25
|
+
|
|
26
|
+
# Swoosh
|
|
27
|
+
|
|
28
|
+
All-in-one CLI for Git workflow automation.
|
|
29
|
+
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
One command installs everything (Python, Git, GitHub CLI, SSH, rsync, swoosh):
|
|
33
|
+
|
|
34
|
+
**Linux/macOS:**
|
|
35
|
+
```bash
|
|
36
|
+
curl -fsSL https://raw.githubusercontent.com/MNametissa/swoosh/main/install.sh | bash
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Windows (PowerShell):**
|
|
40
|
+
```powershell
|
|
41
|
+
iwr -useb https://raw.githubusercontent.com/MNametissa/swoosh/main/install.ps1 | iex
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The installer auto-detects your OS and package manager:
|
|
45
|
+
- **Linux**: apt, dnf, yum, pacman, apk
|
|
46
|
+
- **macOS**: Homebrew (installs if missing)
|
|
47
|
+
- **Windows**: winget, scoop, chocolatey
|
|
48
|
+
|
|
49
|
+
### Manual install
|
|
50
|
+
|
|
51
|
+
If you already have Python 3.10+ and dependencies:
|
|
52
|
+
```bash
|
|
53
|
+
pipx install swoosh-cli
|
|
54
|
+
# or
|
|
55
|
+
pip install swoosh-cli
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### From source
|
|
59
|
+
```bash
|
|
60
|
+
pip install git+https://github.com/MNametissa/swoosh.git
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Commands
|
|
64
|
+
|
|
65
|
+
| Command | Description |
|
|
66
|
+
|---------|-------------|
|
|
67
|
+
| `swoosh auth` | Authenticate with GitHub (SSH, token, or OAuth) |
|
|
68
|
+
| `swoosh init` | Initialize project with Git, GitHub repo, CI/CD |
|
|
69
|
+
| `swoosh commit` | Create conventional commit |
|
|
70
|
+
| `swoosh release` | Version bump, changelog, tag, GitHub release |
|
|
71
|
+
| `swoosh deploy` | Deploy via SSH/rsync with rollback |
|
|
72
|
+
| `swoosh sync` | Sync multiple repositories |
|
|
73
|
+
| `swoosh secrets` | Scan for secrets, manage GitHub secrets |
|
|
74
|
+
| `swoosh pr` | Create/list pull requests |
|
|
75
|
+
| `swoosh origin` | Multi-origin management |
|
|
76
|
+
| `swoosh clone` | Clone repositories |
|
|
77
|
+
| `swoosh hook` | Manage auto-push hooks |
|
|
78
|
+
| `swoosh templates` | List CI/CD templates |
|
|
79
|
+
| `swoosh doctor` | Check dependencies |
|
|
80
|
+
| `swoosh config` | Configure defaults |
|
|
81
|
+
|
|
82
|
+
## Usage
|
|
83
|
+
|
|
84
|
+
### Authenticate with GitHub
|
|
85
|
+
```bash
|
|
86
|
+
# Interactive (recommended)
|
|
87
|
+
swoosh auth
|
|
88
|
+
|
|
89
|
+
# Check status
|
|
90
|
+
swoosh auth status
|
|
91
|
+
|
|
92
|
+
# Use SSH key
|
|
93
|
+
swoosh auth --ssh
|
|
94
|
+
|
|
95
|
+
# Use Personal Access Token
|
|
96
|
+
swoosh auth --token ghp_xxxxxxxxxxxx
|
|
97
|
+
|
|
98
|
+
# With git config
|
|
99
|
+
swoosh auth --name "Your Name" --email "you@example.com"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Initialize a new project
|
|
103
|
+
```bash
|
|
104
|
+
# Create new project with Python CI template
|
|
105
|
+
swoosh init myproject --template python
|
|
106
|
+
|
|
107
|
+
# Initialize in current directory
|
|
108
|
+
swoosh init --here
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Commit with conventional format
|
|
112
|
+
```bash
|
|
113
|
+
# Interactive
|
|
114
|
+
swoosh commit
|
|
115
|
+
|
|
116
|
+
# Quick
|
|
117
|
+
swoosh commit "add user auth" --type feat --push
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Create a release
|
|
121
|
+
```bash
|
|
122
|
+
# Interactive with auto-detection
|
|
123
|
+
swoosh release --auto
|
|
124
|
+
|
|
125
|
+
# Specific bump
|
|
126
|
+
swoosh release minor
|
|
127
|
+
|
|
128
|
+
# Pre-release
|
|
129
|
+
swoosh release patch --pre beta
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Deploy to server
|
|
133
|
+
```yaml
|
|
134
|
+
# swoosh.yaml
|
|
135
|
+
deploy:
|
|
136
|
+
production:
|
|
137
|
+
host: user@server.com
|
|
138
|
+
path: /var/www/app
|
|
139
|
+
method: rsync
|
|
140
|
+
build: npm run build
|
|
141
|
+
restart: systemctl restart app
|
|
142
|
+
health_check:
|
|
143
|
+
type: http
|
|
144
|
+
url: http://localhost:3000/health
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
swoosh deploy production
|
|
149
|
+
swoosh deploy --rollback production
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Multi-origin management
|
|
153
|
+
```bash
|
|
154
|
+
# List remotes
|
|
155
|
+
swoosh origin list
|
|
156
|
+
|
|
157
|
+
# Add GitLab mirror
|
|
158
|
+
swoosh origin mirror --provider gitlab
|
|
159
|
+
|
|
160
|
+
# Push to all remotes
|
|
161
|
+
swoosh origin push
|
|
162
|
+
|
|
163
|
+
# Check sync status
|
|
164
|
+
swoosh origin status
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Scan for secrets
|
|
168
|
+
```bash
|
|
169
|
+
swoosh secrets scan
|
|
170
|
+
swoosh secrets scan --staged
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## CI/CD Templates
|
|
174
|
+
|
|
175
|
+
- `generic` - Basic linting
|
|
176
|
+
- `node` - Node.js with npm, testing, build
|
|
177
|
+
- `python` - Python with pytest, ruff
|
|
178
|
+
- `rust` - Rust with cargo, clippy
|
|
179
|
+
- `go` - Go with testing, build
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
swoosh templates list
|
|
183
|
+
swoosh templates show python
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Configuration
|
|
187
|
+
|
|
188
|
+
Global config: `~/.config/swoosh/config.yaml`
|
|
189
|
+
Project config: `swoosh.yaml`
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
swoosh config --show
|
|
193
|
+
swoosh config --github-user myuser
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## License
|
|
197
|
+
|
|
198
|
+
MIT
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Swoosh
|
|
2
|
+
|
|
3
|
+
All-in-one CLI for Git workflow automation.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
One command installs everything (Python, Git, GitHub CLI, SSH, rsync, swoosh):
|
|
8
|
+
|
|
9
|
+
**Linux/macOS:**
|
|
10
|
+
```bash
|
|
11
|
+
curl -fsSL https://raw.githubusercontent.com/MNametissa/swoosh/main/install.sh | bash
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**Windows (PowerShell):**
|
|
15
|
+
```powershell
|
|
16
|
+
iwr -useb https://raw.githubusercontent.com/MNametissa/swoosh/main/install.ps1 | iex
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The installer auto-detects your OS and package manager:
|
|
20
|
+
- **Linux**: apt, dnf, yum, pacman, apk
|
|
21
|
+
- **macOS**: Homebrew (installs if missing)
|
|
22
|
+
- **Windows**: winget, scoop, chocolatey
|
|
23
|
+
|
|
24
|
+
### Manual install
|
|
25
|
+
|
|
26
|
+
If you already have Python 3.10+ and dependencies:
|
|
27
|
+
```bash
|
|
28
|
+
pipx install swoosh-cli
|
|
29
|
+
# or
|
|
30
|
+
pip install swoosh-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### From source
|
|
34
|
+
```bash
|
|
35
|
+
pip install git+https://github.com/MNametissa/swoosh.git
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Commands
|
|
39
|
+
|
|
40
|
+
| Command | Description |
|
|
41
|
+
|---------|-------------|
|
|
42
|
+
| `swoosh auth` | Authenticate with GitHub (SSH, token, or OAuth) |
|
|
43
|
+
| `swoosh init` | Initialize project with Git, GitHub repo, CI/CD |
|
|
44
|
+
| `swoosh commit` | Create conventional commit |
|
|
45
|
+
| `swoosh release` | Version bump, changelog, tag, GitHub release |
|
|
46
|
+
| `swoosh deploy` | Deploy via SSH/rsync with rollback |
|
|
47
|
+
| `swoosh sync` | Sync multiple repositories |
|
|
48
|
+
| `swoosh secrets` | Scan for secrets, manage GitHub secrets |
|
|
49
|
+
| `swoosh pr` | Create/list pull requests |
|
|
50
|
+
| `swoosh origin` | Multi-origin management |
|
|
51
|
+
| `swoosh clone` | Clone repositories |
|
|
52
|
+
| `swoosh hook` | Manage auto-push hooks |
|
|
53
|
+
| `swoosh templates` | List CI/CD templates |
|
|
54
|
+
| `swoosh doctor` | Check dependencies |
|
|
55
|
+
| `swoosh config` | Configure defaults |
|
|
56
|
+
|
|
57
|
+
## Usage
|
|
58
|
+
|
|
59
|
+
### Authenticate with GitHub
|
|
60
|
+
```bash
|
|
61
|
+
# Interactive (recommended)
|
|
62
|
+
swoosh auth
|
|
63
|
+
|
|
64
|
+
# Check status
|
|
65
|
+
swoosh auth status
|
|
66
|
+
|
|
67
|
+
# Use SSH key
|
|
68
|
+
swoosh auth --ssh
|
|
69
|
+
|
|
70
|
+
# Use Personal Access Token
|
|
71
|
+
swoosh auth --token ghp_xxxxxxxxxxxx
|
|
72
|
+
|
|
73
|
+
# With git config
|
|
74
|
+
swoosh auth --name "Your Name" --email "you@example.com"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Initialize a new project
|
|
78
|
+
```bash
|
|
79
|
+
# Create new project with Python CI template
|
|
80
|
+
swoosh init myproject --template python
|
|
81
|
+
|
|
82
|
+
# Initialize in current directory
|
|
83
|
+
swoosh init --here
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Commit with conventional format
|
|
87
|
+
```bash
|
|
88
|
+
# Interactive
|
|
89
|
+
swoosh commit
|
|
90
|
+
|
|
91
|
+
# Quick
|
|
92
|
+
swoosh commit "add user auth" --type feat --push
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Create a release
|
|
96
|
+
```bash
|
|
97
|
+
# Interactive with auto-detection
|
|
98
|
+
swoosh release --auto
|
|
99
|
+
|
|
100
|
+
# Specific bump
|
|
101
|
+
swoosh release minor
|
|
102
|
+
|
|
103
|
+
# Pre-release
|
|
104
|
+
swoosh release patch --pre beta
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Deploy to server
|
|
108
|
+
```yaml
|
|
109
|
+
# swoosh.yaml
|
|
110
|
+
deploy:
|
|
111
|
+
production:
|
|
112
|
+
host: user@server.com
|
|
113
|
+
path: /var/www/app
|
|
114
|
+
method: rsync
|
|
115
|
+
build: npm run build
|
|
116
|
+
restart: systemctl restart app
|
|
117
|
+
health_check:
|
|
118
|
+
type: http
|
|
119
|
+
url: http://localhost:3000/health
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
swoosh deploy production
|
|
124
|
+
swoosh deploy --rollback production
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Multi-origin management
|
|
128
|
+
```bash
|
|
129
|
+
# List remotes
|
|
130
|
+
swoosh origin list
|
|
131
|
+
|
|
132
|
+
# Add GitLab mirror
|
|
133
|
+
swoosh origin mirror --provider gitlab
|
|
134
|
+
|
|
135
|
+
# Push to all remotes
|
|
136
|
+
swoosh origin push
|
|
137
|
+
|
|
138
|
+
# Check sync status
|
|
139
|
+
swoosh origin status
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Scan for secrets
|
|
143
|
+
```bash
|
|
144
|
+
swoosh secrets scan
|
|
145
|
+
swoosh secrets scan --staged
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## CI/CD Templates
|
|
149
|
+
|
|
150
|
+
- `generic` - Basic linting
|
|
151
|
+
- `node` - Node.js with npm, testing, build
|
|
152
|
+
- `python` - Python with pytest, ruff
|
|
153
|
+
- `rust` - Rust with cargo, clippy
|
|
154
|
+
- `go` - Go with testing, build
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
swoosh templates list
|
|
158
|
+
swoosh templates show python
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Configuration
|
|
162
|
+
|
|
163
|
+
Global config: `~/.config/swoosh/config.yaml`
|
|
164
|
+
Project config: `swoosh.yaml`
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
swoosh config --show
|
|
168
|
+
swoosh config --github-user myuser
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## License
|
|
172
|
+
|
|
173
|
+
MIT
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "swoosh-cli"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "All-in-one CLI for Git workflow automation: init, commit, release, deploy, sync"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [{name = "MNametissa"}]
|
|
13
|
+
keywords = ["git", "github", "cli", "automation", "deploy", "ci-cd"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 4 - Beta",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: Developers",
|
|
18
|
+
"Programming Language :: Python :: 3.10",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Topic :: Software Development :: Version Control :: Git",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
dependencies = [
|
|
25
|
+
"typer[all]>=0.9.0",
|
|
26
|
+
"rich>=13.0.0",
|
|
27
|
+
"questionary>=2.0.0",
|
|
28
|
+
"pyyaml>=6.0",
|
|
29
|
+
"toml>=0.10.0",
|
|
30
|
+
"paramiko>=3.0.0",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[project.scripts]
|
|
34
|
+
swoosh = "swoosh.cli:app"
|
|
35
|
+
|
|
36
|
+
[project.urls]
|
|
37
|
+
Homepage = "https://github.com/MNametissa/swoosh"
|
|
38
|
+
Repository = "https://github.com/MNametissa/swoosh"
|