gitpulse-tui 1.0.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.
- gitpulse_tui-1.0.0/PKG-INFO +8 -0
- gitpulse_tui-1.0.0/README.md +87 -0
- gitpulse_tui-1.0.0/gitpulse/__init__.py +4 -0
- gitpulse_tui-1.0.0/gitpulse/__main__.py +3 -0
- gitpulse_tui-1.0.0/gitpulse/git_ops.py +792 -0
- gitpulse_tui-1.0.0/gitpulse/main.py +271 -0
- gitpulse_tui-1.0.0/gitpulse/scanner.py +70 -0
- gitpulse_tui-1.0.0/gitpulse/ui/__init__.py +1 -0
- gitpulse_tui-1.0.0/gitpulse/ui/sidebar.py +185 -0
- gitpulse_tui-1.0.0/gitpulse/ui/tabs.py +1277 -0
- gitpulse_tui-1.0.0/gitpulse/utils.py +51 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/PKG-INFO +8 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/SOURCES.txt +17 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/dependency_links.txt +1 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/entry_points.txt +2 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/requires.txt +3 -0
- gitpulse_tui-1.0.0/gitpulse_tui.egg-info/top_level.txt +1 -0
- gitpulse_tui-1.0.0/pyproject.toml +21 -0
- gitpulse_tui-1.0.0/setup.cfg +4 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitpulse-tui
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Git Repo Dashboard TUI — live status, commits, diffs, and branches in your terminal
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Requires-Dist: textual>=0.50.0
|
|
7
|
+
Requires-Dist: rich>=13.0.0
|
|
8
|
+
Requires-Dist: gitpython>=3.1.0
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ⚡ GitPulse — Git Repo Dashboard TUI
|
|
2
|
+
|
|
3
|
+
A developer-focused terminal dashboard that scans a root directory for all local Git repositories and displays live status, recent commits, diffs, and branch management — all from the terminal.
|
|
4
|
+
|
|
5
|
+
Built with **Python**, **Textual**, **Rich**, and **GitPython**.
|
|
6
|
+
|
|
7
|
+
## Screenshots
|
|
8
|
+
|
|
9
|
+
**📋 Status tab** — repo summary panel, staged/unstaged/untracked file lists, stash entries
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
**📝 Commits tab** — last N commits with color-coded insertions/deletions
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
## Install (one command)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git clone https://github.com/yourname/git-tui.git
|
|
21
|
+
cd git-tui
|
|
22
|
+
./install.sh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
That's it. The installer:
|
|
26
|
+
- Checks your Python version (3.10+ required)
|
|
27
|
+
- Creates a virtual environment automatically
|
|
28
|
+
- Installs all dependencies
|
|
29
|
+
- Adds the `gitpulse` command to your shell (`~/.zshrc` / `~/.bashrc`)
|
|
30
|
+
|
|
31
|
+
Then reload your shell:
|
|
32
|
+
```bash
|
|
33
|
+
source ~/.zshrc # or source ~/.bashrc
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
gitpulse # scans ~/projects (default)
|
|
40
|
+
gitpulse --root /path/to/repos # scans a custom directory
|
|
41
|
+
gitpulse --root . # scans current directory
|
|
42
|
+
gitpulse --commits 20 # show 20 commits per repo (default: 10)
|
|
43
|
+
gitpulse --version # print version
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- **Sorted by Activity** — Repos ordered by most recent commit date
|
|
49
|
+
- **Status Badges** — Color-coded with file counts: 🟢 CLEAN / 🟡 MODIFIED (3) / 🔴 UNTRACKED (2)
|
|
50
|
+
- **Activity Sparkline** — 7-week commit frequency bar (`▁▂▃▅▇`) next to each repo
|
|
51
|
+
- **Relative Time** — "2h ago", "3d ago" shown next to each repo
|
|
52
|
+
- **Search/Filter** — Press `/` to filter repos by name instantly
|
|
53
|
+
- **Non-blocking scan** — Background worker keeps the UI responsive while scanning
|
|
54
|
+
- **Tabbed Main Panel**:
|
|
55
|
+
- **📋 Status** — Styled repo summary panel, staged/unstaged/untracked files with icons, stash list
|
|
56
|
+
- **📝 Commits** — Last N commits with color-coded `+green` / `-red` diff stats
|
|
57
|
+
- **🔀 Diff** — Syntax-highlighted uncommitted changes with line count footer
|
|
58
|
+
- **🌿 Branches** — All local branches, press Enter to switch
|
|
59
|
+
- **🌐 Remotes** — Remote URLs with ahead/behind sync status
|
|
60
|
+
- **🏷️ Tags** — Recent tags with date and tagger info
|
|
61
|
+
- **🌲 Tree** — Visual file hierarchy of all tracked files
|
|
62
|
+
|
|
63
|
+
## Keybindings
|
|
64
|
+
|
|
65
|
+
| Key | Action |
|
|
66
|
+
|-----|--------|
|
|
67
|
+
| `↑` / `↓` | Navigate repo list |
|
|
68
|
+
| `/` | Focus search/filter |
|
|
69
|
+
| `Escape` | Clear search |
|
|
70
|
+
| `Tab` / `Shift+Tab` | Next/previous focus area |
|
|
71
|
+
| `Enter` | Switch branch (Branches tab) |
|
|
72
|
+
| `r` | Refresh / rescan all repos |
|
|
73
|
+
| `q` | Quit |
|
|
74
|
+
|
|
75
|
+
## Requirements
|
|
76
|
+
|
|
77
|
+
- Python 3.10+
|
|
78
|
+
- Linux / macOS
|
|
79
|
+
|
|
80
|
+
## Documentation
|
|
81
|
+
|
|
82
|
+
See [docs/](./gitpulse/docs/) for full developer documentation:
|
|
83
|
+
- [Architecture](./gitpulse/docs/architecture.md)
|
|
84
|
+
- [API Reference](./gitpulse/docs/api_reference.md)
|
|
85
|
+
- [UI Components](./gitpulse/docs/ui_components.md)
|
|
86
|
+
- [Theming](./gitpulse/docs/theming.md)
|
|
87
|
+
- [Contributing](./gitpulse/docs/contributing.md)
|