Skip to main content

🚀 GHPush

AI-Powered GitHub Pull Request Creation Tool

PyPI version PyPI downloads License: MIT Python 3.11+


🌟 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:

  1. 📝 Analyze your changes
  2. 🤖 Generate a PR title and description (AI or Basic mode)
  3. 🔄 Push your branch
  4. 🌐 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

  1. Clone the repository:
git clone https://github.com/sukeesh/ghpush
cd ghpush
  1. 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
  1. Install dependencies:
pip install -e .
  1. 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

  1. 🍴 Fork the repository
  2. 🌿 Create your feature branch (git checkout -b feature/amazing-feature)
  3. 💻 Make your changes
  4. ✅ Ensure tests pass
  5. 📝 Update documentation if needed
  6. 🔄 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

Made by Sukeesh

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)

Source distribution for ghpush 0.1.8
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)

Table of built distributions (wheels) for ghpush 0.1.8
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page