🌟 Overview
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
🚀 Quick Start
Installation
pip install ghpush
💡 Check out ghpush on PyPI for the latest version and release notes.
Configuration
1. GitHub CLI Authentication (Required)
# 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
2. Choose Operating Mode
GHPush operates in two modes:
🤖 AI Mode (Recommended)
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"
📝 Basic Mode
- Automatically used when OpenAI API key is not set
- No configuration needed
- Provides simple summaries based on changed files
Usage
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.
✨ Features
- 🔄 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
🛠 Technical Requirements
- Python ≥ 3.11
- Dependencies:
🤝 Contributing
We love contributions! Here's how you can help:
🛠️ Development Setup
- Clone the repository:
git clone https://github.com/sukeesh/ghpush
cd ghpush
- Set up Python environment:
Using pyenv (Recommended)
# 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
Using venv (Alternative)
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.
🔄 Contribution Steps
- 🍴 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
🧪 Testing
# Install test dependencies
pip install pytest
# Run tests
pytest
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🌟 Show Your Support
If you find GHPush useful, please consider:
- ⭐ Starring the repository
- 🐛 Reporting issues
- 🤝 Contributing to the code
- 📢 Spreading the word
Metadata
Release files for ghpush 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ghpush-0.1.8.tar.gz | 13.1 kB | Without provenance | Details for ghpush-0.1.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ghpush-0.1.8-py3-none-any.whl | Python 3 | none | any | Details for ghpush-0.1.8-py3-none-any.whl |
Total release size: 25.9 kB
Release files / ghpush-0.1.8.tar.gz
| Download URL | ghpush-0.1.8.tar.gz |
|---|---|
| Size | 13.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e618fa854d8bf10b471a2da1088fe6d18c7fffcbb31749a2baf41c6c64e43fb
|
|
BLAKE2b-256 checksum How to use checksums |
8102b6a40b64eda33a56cc317b2c5d31788292c4ef3c863c65f38f85dd9260ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Release files / ghpush-0.1.8-py3-none-any.whl
| Download URL | ghpush-0.1.8-py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d66a77b6096e5d40cfd48273adcd7eee2e97b6182c9c3bfecd60cf042c61f39
|
|
BLAKE2b-256 checksum How to use checksums |
05dd2b902c9591f43f480254bdae1b3e90a3a7e60c3eb394eaa6ddc5e1bd12b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Security for ghpush 0.1.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.