A comprehensive CLI tool for Git and GitHub workflow management with advanced analytics, interactive mode, and powerful Git operations.
- π§ Git Operations: Status, commit, push, pull, branch management
- π Git Flow: Feature, release, and hotfix branch workflows
- π GitHub Integration: Repository listing, cloning, search, OAuth authentication
- π Analytics: Repository statistics, commit activity, contributor insights
- π― Interactive Mode: User-friendly command-line interface
- π Advanced Git: Cherry-pick, revert, interactive rebase, squash
- π·οΈ Tag Management: Create, delete, list, and show tags
- π¦ Stash Operations: Create, list, and pop stashes
- π Repository Discovery: Find Git repositories automatically
- π¨ Rich UI: Beautiful tables, panels, and formatted output
- π§ Custom Aliases: Create shortcuts for frequently used commands
- π¨ Theme Customization: Personalize the interface with different color schemes
- π Export Functionality: Export analytics data in JSON/CSV formats
- π Advanced Search: Find code across multiple repositories
- π Performance Monitoring: Track tool performance and system resources
# Install from PyPI
pip install gitflow-studio
# Or use the installation script
curl -sSL https://raw.githubusercontent.com/Sherin-SEF-AI/GitFlow-Studio/main/install.sh | bash
# Show help
gitflow-studio --help
# Interactive mode
gitflow-studio --interactive
# Discover repositories
gitflow-studio --discover
# Show repository status
gitflow-studio --repo /path/to/repo status
discover
- Find Git repositories in current directoryrepo info
- Show current repository information
status
- Show repository statuslog
- Show commit logbranches
- List all branchescheckout <ref>
- Checkout branch or commitcommit <message>
- Create commit with messagepush
- Push changes to remotepull
- Pull changes from remote
branch create <name>
- Create new branchbranch delete <name>
- Delete local branchbranch delete-remote <name>
- Delete remote branchbranch rename <old> <new>
- Rename branch
cherry-pick <hash>
- Cherry-pick a commitrevert <hash>
- Revert a commitrebase-interactive <base>
- Interactive rebasesquash <count>
- Squash last N commits
stash [message]
- Create stash (optional message)stash list
- List all stashesstash pop
- Pop latest stash
tag list
- List all tagstag create <name>
- Create a new tagtag delete <name>
- Delete a tagtag show <name>
- Show tag details
gitflow init
- Initialize Git Flowgitflow feature start <name>
- Start feature branchgitflow feature finish <name>
- Finish feature branchgitflow release start <version>
- Start release branchgitflow release finish <version>
- Finish release branch
github login
- Login to GitHubgithub logout
- Logout from GitHubgithub repos
- List your GitHub repositoriesgithub clone <name>
- Clone a repository by namegithub search <query>
- Search GitHub repositories
analytics stats
- Show comprehensive repository statisticsanalytics activity [days]
- Show commit activity over timeanalytics files
- Show file change statisticsanalytics branches
- Show branch activity and healthanalytics contributors
- Show contributor statisticsanalytics health
- Show repository health indicators
# Discover Git repositories in current directory
gitflow-studio --discover
# Set repository and show status
gitflow-studio --repo /path/to/my-project status
# Show repository information
gitflow-studio --repo /path/to/my-project repo info
# Show repository status
gitflow-studio --repo . status
# Show last 10 commits
gitflow-studio --repo . log --max-count 10
# Show commits with graph
gitflow-studio --repo . log --graph --oneline
# Create a new commit
gitflow-studio --repo . commit "Add new feature"
# Push changes
gitflow-studio --repo . push
# Pull latest changes
gitflow-studio --repo . pull
# List all branches
gitflow-studio --repo . branches
# Create a new feature branch
gitflow-studio --repo . branch create feature/new-feature
# Checkout a branch
gitflow-studio --repo . checkout feature/new-feature
# Rename a branch
gitflow-studio --repo . branch rename old-branch new-branch
# Delete a local branch
gitflow-studio --repo . branch delete feature/old-feature
# Delete a remote branch
gitflow-studio --repo . branch delete-remote feature/old-feature
# Cherry-pick a specific commit
gitflow-studio --repo . cherry-pick abc1234
# Revert a commit
gitflow-studio --repo . revert abc1234
# Interactive rebase onto main
gitflow-studio --repo . rebase-interactive main
# Squash last 3 commits
gitflow-studio --repo . squash 3
# Create a stash
gitflow-studio --repo . stash "Work in progress"
# List all stashes
gitflow-studio --repo . stash list
# Pop the latest stash
gitflow-studio --repo . stash pop
# List all tags
gitflow-studio --repo . tag list
# Create a new tag
gitflow-studio --repo . tag create v1.0.0
# Show tag details
gitflow-studio --repo . tag show v1.0.0
# Delete a tag
gitflow-studio --repo . tag delete v0.9.0
# Initialize Git Flow
gitflow-studio --repo . gitflow init
# Start a new feature
gitflow-studio --repo . gitflow feature start my-feature
# Finish a feature (merges to develop)
gitflow-studio --repo . gitflow feature finish my-feature
# Start a release
gitflow-studio --repo . gitflow release start v1.0.0
# Finish a release (merges to main and develop)
gitflow-studio --repo . gitflow release finish v1.0.0
# Login to GitHub (OAuth)
gitflow-studio --repo . github login
# List your repositories
gitflow-studio --repo . github repos
# Clone a repository by name
gitflow-studio --repo . github clone my-username/my-repo
# Search repositories
gitflow-studio --repo . github search "python cli tool"
# Logout from GitHub
gitflow-studio --repo . github logout
# Show comprehensive repository statistics
gitflow-studio --repo . analytics stats
# Show commit activity over last 30 days
gitflow-studio --repo . analytics activity 30
# Show file change statistics
gitflow-studio --repo . analytics files
# Show branch activity and health
gitflow-studio --repo . analytics branches
# Show contributor statistics
gitflow-studio --repo . analytics contributors
# Show repository health indicators
gitflow-studio --repo . analytics health
# Start interactive mode
gitflow-studio --interactive
# In interactive mode, you can run commands without --repo flag:
gitflow-studio> status
gitflow-studio> log --max-count 5
gitflow-studio> branch create feature/interactive-test
gitflow-studio> analytics stats
gitflow-studio> exit
GitFlow Studio uses OAuth for GitHub authentication. When you run github login
, it will:
- Open your browser for GitHub OAuth authorization
- Store the access token securely using your system's keyring
- Use the token for all GitHub API operations
The --discover
command automatically finds Git repositories in the current directory and subdirectories, displaying them in a formatted table.
- Total commits, branches, tags, and files
- Repository size information
- Recent commit activity
- Current branch status
- Commit frequency over time
- Daily, weekly, and monthly patterns
- Peak activity periods
- Contributor activity trends
- Most modified files
- File change frequency
- File size statistics
- File type distribution
- Branch activity levels
- Branch age and status
- Merge patterns
- Branch protection status
- Top contributors
- Contribution patterns
- Activity heatmaps
- Collaboration metrics
- Code quality indicators
- Documentation coverage
- Issue and PR statistics
- Overall project health score
# Clone the repository
git clone https://github.com/Sherin-SEF-AI/GitFlow-Studio.git
cd GitFlow-Studio
# Install in development mode
pip install -e .
# Run tests
python -m pytest studio/tests/
studio/
βββ __init__.py
βββ __main__.py
βββ cli.py # Main CLI interface
βββ core/ # Core application logic
β βββ app_context.py
β βββ plugin_base.py
β βββ plugin_loader.py
βββ db/ # Database operations
β βββ sqlite_manager.py
βββ git/ # Git operations
β βββ async_git.py
β βββ git_operations.py
βββ github/ # GitHub integration
β βββ auth.py
β βββ config_template.py
β βββ repos.py
βββ plugins/ # Plugin system
β βββ example_plugin.py
βββ tests/ # Test files
β βββ test_basic.py
β βββ test_comprehensive.py
βββ utils/ # Utility functions
βββ repo_discovery.py
- Python: 3.9 or higher
- Git: For Git operations
- Internet Connection: For GitHub features
- Dependencies: Automatically installed via pip
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Rich for beautiful CLI output
- Uses GitPython for Git operations
- GitHub integration powered by PyGithub
- CLI framework built with Click
- Issues: GitHub Issues
- Documentation: FEATURE_SUMMARY.md
- Installation: PIP_INSTALLATION.md