Core Components: - uniswap_manager.py: V3 concentrated liquidity position manager - clp_hedger.py: Hyperliquid perpetuals hedging bot - requirements.txt: Python dependencies - .gitignore: Security exclusions for sensitive data - doc/: Project documentation - tools/: Utility scripts and Git agent Features: - Automated liquidity provision on Uniswap V3 (WETH/USDC) - Delta-neutral hedging using Hyperliquid perpetuals - Position lifecycle management (open/close/rebalance) - Automated backup and version control system Security: - Private keys and tokens excluded from version control - Environment variables properly handled - Automated security validation for backups Git Agent: - Hourly automated backups to separate branches - Keep last 100 backups (~4 days coverage) - Detailed change tracking and parameter monitoring - Push to Gitea server automatically - Manual main branch control preserved - No performance tracking for privacy - No notifications for simplicity Files Added: - git_agent.py: Main automation script - agent_config.json: Configuration with Gitea settings - git_utils.py: Git operations wrapper - backup_manager.py: Backup branch management - change_detector.py: File change analysis - cleanup_manager.py: 100-backup rotation - commit_formatter.py: Detailed commit messages - README_GIT_AGENT.md: Complete usage documentation
5.6 KiB
5.6 KiB
Git Agent for Uniswap Auto CLP
Overview
Automated backup and version control system for your Uniswap Auto CLP trading bot.
Quick Setup
1. Initialize Repository
# Navigate to project directory
cd K:\Projects\uniswap_auto_clp
# Create initial commit
python tools\git_agent.py --init
# Add and push initial setup
git add .
git commit -m "🎯 Initial commit: Uniswap Auto CLP system"
git remote add origin https://git.kapuscinski.pl/ditus/uniswap_auto_clp.git
git push -u origin main
2. Create First Backup
# Test backup creation
python tools\git_agent.py --backup
3. Check Status
# View current status
python tools\git_agent.py --status
Configuration
Edit tools/agent_config.json as needed:
{
"backup": {
"enabled": true,
"frequency_hours": 1,
"keep_max_count": 100,
"push_to_remote": true
}
}
Usage Commands
Manual Operations
# Create backup now
python tools\git_agent.py --backup
# Check status
python tools\git_agent.py --status
# Cleanup old backups
python tools\git_agent.py --cleanup
# Initialize repository (one-time)
python tools\git_agent.py --init
Automated Scheduling
Windows Task Scheduler
# Create hourly task
schtasks /create /tn "Git Backup" /tr "python tools\git_agent.py --backup" /sc hourly
Linux Cron (if needed)
# Add to crontab
0 * * * * cd /path/to/project && python tools/git_agent.py --backup
How It Works
Branch Strategy
- main branch: Your manual development (you control pushes)
- backup- branches*: Automatic hourly backups (agent managed)
Backup Process
- Hourly: Agent checks for file changes
- Creates backup branch: Named
backup-YYYY-MM-DD-HH - Commits changes: With detailed file and parameter tracking
- Pushes to remote: Automatic backup to Gitea
- Cleans up: Keeps only last 100 backups
Backup Naming
backup-2025-01-15-14 # 2 PM backup on Jan 15, 2025
backup-2025-01-15-15 # 3 PM backup
backup-2025-01-15-16 # 4 PM backup
Commit Messages
Agent creates detailed commit messages showing:
- Files changed with status icons
- Parameter changes with percentage differences
- Security validation confirmation
- Timestamp and backup number
Security
What's Excluded
✅ Private keys and tokens (.env files)
✅ Log files (*.log)
✅ State files (hedge_status.json)
✅ Temporary files
What's Included
✅ All code changes
✅ Configuration modifications
✅ Documentation updates
✅ Parameter tracking
Emergency Recovery
Quick Rollback
# List recent backups
python tools\git_agent.py --status
# Switch to backup
git checkout backup-2025-01-15-14
# Copy files to main
git checkout main -- .
git commit -m "🔄 Emergency restore from backup-2025-01-15-14"
git push origin main
File Recovery
# Restore specific file from backup
git checkout backup-2025-01-15-14 -- path/to/file.py
Monitoring
Backup Health
# Check backup count and status
python tools\git_agent.py --status
# Expected output:
# 📊 Git Agent Status:
# Current Branch: main
# Backup Count: 47
# Has Changes: false
# Remote Connected: true
# Last Backup: backup-2025-01-15-16
Manual Cleanup
# Remove old backups (keeps last 100)
python tools\git_agent.py --cleanup
Troubleshooting
Common Issues
"Configuration file not found"
# Ensure agent_config.json exists in tools/ directory
ls tools/agent_config.json
"Git command failed"
# Check Git installation and repository status
git status
git --version
"Remote connection failed"
# Verify Gitea URL and credentials
git remote -v
ping git.kapuscinski.pl
Debug Mode
Edit agent_config.json:
{
"logging": {
"enabled": true,
"log_level": "DEBUG"
}
}
Then check git_agent.log in project root.
Integration with Trading Bot
Parameter Changes
Agent automatically tracks changes to:
TARGET_INVESTMENT_VALUE_USDCRANGE_WIDTH_PCTSLIPPAGE_TOLERANCELEVERAGECHECK_INTERVALPRICE_BUFFER_PCT
Backup Triggers
Consider manual backups when:
- Changing trading strategy parameters
- Updating risk management settings
- Before major system changes
- After successful backtesting
# Manual backup before important changes
python tools\git_agent.py --backup
Best Practices
Development Workflow
- Work on main branch for normal development
- Manual commits for your changes
- Agent handles backups automatically
- Manual push to main when ready
Backup Management
- 100 backup limit = ~4 days of hourly coverage
- Automatic cleanup maintains repository size
- Remote storage provides offsite backup
Security Reminders
- Never commit private keys (automatically excluded)
- Check .gitignore if adding sensitive files
- Review backup commits for accidental secrets
Support
Log Files
git_agent.log: Agent activity and errors- Check logs for troubleshooting issues
Repository Structure
tools/
├── git_agent.py # Main automation script
├── agent_config.json # Configuration settings
├── git_utils.py # Git operations
├── backup_manager.py # Backup branch logic
├── change_detector.py # Change analysis
├── cleanup_manager.py # Backup rotation
└── commit_formatter.py # Message formatting
This automated backup system ensures your trading bot code is always versioned and recoverable, while keeping your main development workflow clean and manual.