An AI tool to push files to GitHub repositories
Project description
๐ 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghpush-0.1.8.tar.gz.
File metadata
- Download URL: ghpush-0.1.8.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e618fa854d8bf10b471a2da1088fe6d18c7fffcbb31749a2baf41c6c64e43fb
|
|
| MD5 |
da370a33d72f912081f40911f43a4d0b
|
|
| BLAKE2b-256 |
8102b6a40b64eda33a56cc317b2c5d31788292c4ef3c863c65f38f85dd9260ec
|
File details
Details for the file ghpush-0.1.8-py3-none-any.whl.
File metadata
- Download URL: ghpush-0.1.8-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d66a77b6096e5d40cfd48273adcd7eee2e97b6182c9c3bfecd60cf042c61f39
|
|
| MD5 |
da925160481b2903a41c96af24289bb4
|
|
| BLAKE2b-256 |
05dd2b902c9591f43f480254bdae1b3e90a3a7e60c3eb394eaa6ddc5e1bd12b7
|