GHPush is an intelligent command-line tool that revolutionizes your GitHub workflow by automating pull request creation. It operates in two modes:
- 🤖 AI Mode: Generates detailed, context-aware PR titles and descriptions using OpenAI
- 📝 Basic Mode: Creates simple, effective summaries based on file changes
pip install ghpush
💡 Check out ghpush on PyPI for the latest version and release notes.
# Install GitHub CLI if you haven't already
brew install gh # macOS
# For other platforms, see: https://cli.github.com/
# Authenticate with GitHub
gh auth login
GHPush operates in two modes:
To enable AI-powered summaries:
# Linux/macOS
export OPENAI_API_KEY=your-api-key-here
# Windows (PowerShell)
$env:OPENAI_API_KEY="your-api-key-here"
- Automatically used when OpenAI API key is not set
- No configuration needed
- Provides simple summaries based on changed files
ghpush --base main
That's it! GHPush will:
- 📝 Analyze your changes
- 🤖 Generate a PR title and description (AI or Basic mode)
- 🔄 Push your branch
- 🌐 Open the PR creation page
💡 Tip: Make sure you've authenticated with GitHub CLI (
gh auth login
) before using GHPush.
- 🔄 Dual Operation Modes:
- AI-Powered Mode: Rich, contextual PR summaries using OpenAI
- Basic Mode: Simple, effective change summaries
- 🚀 Automated Workflow: Push your branch and open GitHub's PR page in one command
- 📊 Smart Diff Analysis: Intelligent analysis of your code changes
- 🔒 No GitHub Token Needed: Works with your local git configuration
- 🌐 Cross-Platform: Seamless experience on Windows, macOS, and Linux
- Python ≥ 3.11
- Dependencies:
We love contributions! Here's how you can help:
- Clone the repository:
git clone https://github.com/sukeesh/ghpush
cd ghpush
- Set up Python environment:
# Install Python 3.11.9
pyenv install 3.11.9
# Create a virtual environment
pyenv virtualenv 3.11.9 ghpush-dev
# Activate the environment
pyenv activate ghpush-dev
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -e .
- Run locally:
# Using Python module directly (recommended for development)
python -m ghpush.cli --base main
# Or after installing in development mode
ghpush --base main
💡 Note: Using pyenv is recommended as it provides better Python version management and isolation.
- 🍴 Fork the repository
- 🌿 Create your feature branch (
git checkout -b feature/amazing-feature
) - 💻 Make your changes
- ✅ Ensure tests pass
- 📝 Update documentation if needed
- 🔄 Create a pull request
# Install test dependencies
pip install pytest
# Run tests
pytest
This project is licensed under the MIT License - see the LICENSE file for details.
If you find GHPush useful, please consider:
- ⭐ Starring the repository
- 🐛 Reporting issues
- 🤝 Contributing to the code
- 📢 Spreading the word