Skip to content

zackees/codeup

Repository files navigation

CodeUp - Intelligent Git Workflow Automation

An intelligent git workflow automation tool that streamlines your development process with AI-powered commit messages and automated testing.

here-title

What is CodeUp?

CodeUp automates your entire git workflow in a single command:

  • Git Status Check - Verifies changes exist before proceeding
  • 🧹 Automatic Linting - Runs your ./lint script if present
  • 🧪 Automatic Testing - Runs your ./test script if present
  • 📝 AI-Powered Commits - Generates contextual commit messages using OpenAI or Anthropic
  • 🔄 Smart Rebasing - Handles conflicts and keeps your branch up-to-date
  • 🚀 Safe Pushing - Pushes to remote with conflict detection

Quick Start

Installation

pip install codeup

Basic Usage

# Navigate to your git repository
cd your-project

# Run the complete workflow
codeup

# That's it! CodeUp will:
# 1. Check git status
# 2. Run linting (if ./lint exists)
# 3. Run tests (if ./test exists)
# 4. Stage all changes
# 5. Generate an AI commit message
# 6. Commit and push to remote

AI-Powered Commit Messages

CodeUp analyzes your git diff and generates meaningful commit messages following conventional commit format:

# Example generated messages:
feat(auth): add OAuth2 authentication system
fix(api): resolve null pointer exception in user endpoint
docs(readme): update installation instructions

Configuration

Setting Up API Keys

CodeUp supports both OpenAI and Anthropic for commit message generation:

# Set OpenAI API key (recommended)
codeup --set-key-openai sk-your-openai-key-here

# Or set Anthropic API key
codeup --set-key-anthropic sk-ant-your-anthropic-key-here

# Alternative: use environment variables
export OPENAI_API_KEY="sk-your-key-here"
export ANTHROPIC_API_KEY="sk-ant-your-key-here"

Keys are securely stored in your system keyring.

Command Line Options

# Skip AI and provide manual commit message
codeup -m "fix: resolve login bug"

# Skip linting and testing, just commit
codeup --just-ai-commit

# Non-interactive mode (perfect for CI/CD)
codeup --no-interactive

# Skip pushing to remote
codeup --no-push

# Skip automatic rebasing
codeup --no-rebase

# Disable auto-accept of AI commit messages
codeup --no-autoaccept

# Skip testing
codeup --no-test

# Skip linting
codeup --no-lint

# Verbose output
codeup --verbose

# Enable detailed logging
codeup --log

Features

🤖 Dual AI Provider Support

  • OpenAI GPT-3.5-turbo: Fast and reliable
  • Anthropic Claude: Automatic fallback if OpenAI fails
  • Analyzes git diffs to generate contextual commit messages

🔧 Development Tool Integration

  • Automatically detects and runs ./lint scripts
  • Automatically detects and runs ./test scripts
  • Supports UV project dependency resolution
  • Cross-platform support (Windows, macOS, Linux)

🛡️ Smart Git Operations

  • Safe rebase handling with conflict detection
  • Automatic staging of changes and untracked files
  • Interactive prompts for untracked files (when not in --no-interactive mode)
  • Push conflict resolution with automatic retries

🔐 Secure Credential Management

  • System keyring integration for API key storage
  • Multiple configuration sources (keyring → config file → environment)
  • No credentials stored in plaintext

Requirements

  • Python 3.8.1 or higher
  • Git repository
  • OpenAI or Anthropic API key (for AI commit messages)

Development

To contribute to CodeUp:

# Clone the repository
git clone https://github.com/zackees/codeup.git
cd codeup

# Install in development mode
pip install -e .

# Run tests
./test

# Run linting
./lint

License

MIT License - see LICENSE file for details.

Author

Created by Zach Vorhies - [email protected]

About

fast code testing lint ai commit generation and git push

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •