Skip to content

whxue02/pokepush

Repository files navigation

🔴 PokéPush

You can't push until you prove you understand your code.

PokéPush hooks into git push and forces you to battle a Pokémon trainer before your code ships. Answer questions about your own diff to win. Lose, and the push is blocked.


Architecture

git push
  → pre-push hook (bash)
    → pokepush CLI (Python)
      → extracts git diff
      → calls Gemini API (single parallel call)
        → generates questions, trash talk, opponent team, diff summary
      → starts FastAPI server (localhost:5173)
      → opens browser tab
        → React UI battle plays out
        → user answers questions
      → browser POSTs result
      → server shuts down
      → hook exits 0 (push allowed) or 1 (push blocked)

Project Structure

pokepush/
├── README.md
├── cli
│   ├── gemeni_client.py
│   ├── git_utils.py
│   ├── hook_installer.py
│   └── pokepush.py
├── frontend
│   ├── index.html
│   ├── package.json
│   ├── public
│   ├── src
│   │   ├── App.jsx
│   │   ├── components
│   │   │   ├── BattleResult.jsx
│   │   │   ├── DialogBox.jsx
│   │   │   ├── HPBar.jsx
│   │   │   ├── MoveSelectPanel.jsx
│   │   │   ├── QuestionPanel.jsx
│   │   │   └── PokemonSprite.jsx
│   │   ├── hooks
│   │   │   └── useBattle.js
│   │   └── main.jsx
│   └── vite.config.js
├── install.sh
├── requirements.txt
└── server
    ├── main.py
    └── models.py

Setup

# 1. Clone and install
git clone https://github.com/you/pokepush
cd pokepush
chmod +x install.sh
sudo ./install.sh

# 2. Set your Gemini API key
export GEMINI_API_KEY=your_key_here

# 3. Install the git hook in any repo
cd your-project
pokepush install

# 4. Now just code and push
git add .
git commit -m "feat: add user auth"
git push  # 🔴 battle starts

Environment Variables

GEMINI_API_KEY=        # Required
SUPABASE_URL=          # Optional - for leaderboard
SUPABASE_ANON_KEY=     # Optional - for leaderboard

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors