GITAID - Git Assistant for Instant Development
π GITAID
Git Assistant for Instant Development
Automate your Python project setup in 30 seconds. One command. Complete dev environment. Ready to code.
./setup-project.sh
# or
python3 setup-project.pyπ― What is GITAID?
GITAID eliminates the tedious setup steps for Python projects by automating:
- β Git configuration & SSH keys
- β Python 3.12 environment via uv
- β Virtual environment with direnv
- β Aider AI coding assistant
- β Django projects (optional)
- β Professional .gitignore & documentation
From zero to coding in 30 seconds.
π Features
Intelligent Setup
- Interactive prompts with validation
- Sensible defaults for quick setup
- Dry-run mode to preview changes
- Color-coded output & detailed logging
Git Excellence
- Clone existing repos or create new ones
- Auto-configure user name & email
- Generate SSH keys (ed25519 or RSA 4096)
- Pre-configure GitHub, GitLab, and custom servers
- Test connections automatically
Python Environment
- Install Python 3.12 via uv
- Create isolated virtual environment
- Auto-activation with direnv
- Install Aider for AI-assisted development
- Optional Django project scaffolding
Developer Experience
- Comprehensive .gitignore (Python/Django)
- Professional README.md template
- Modern pyproject.toml configuration
- Proper directory permissions
- Everything logged for troubleshooting
π¦ Quick Start
Installation
# Download GITAID
curl -O https://gitaid.dev/setup-project.sh
chmod +x setup-project.sh
# Or Python version
curl -O https://gitaid.dev/setup-project.py
chmod +x setup-project.pyBasic Usage
# Bash version
./setup-project.sh
# Python version
python3 setup-project.py
# Preview mode (no changes)
./setup-project.sh --dry-run
python3 setup-project.py --dry-runExample Session
$ ./setup-project.sh
[INFO] GITAID - Git Assistant for Instant Development
Base directory [/opt]: /opt
Project name: awesome-app
Git repository URL:
Git user name: Jane Developer
Git user email: jane@example.com
Install direnv? [Y/n]: y
Install Aider? [Y/n]: y
Setup SSH key for git? [Y/n]: y
[SUCCESS] β Project created at /opt/awesome-app
[SUCCESS] β SSH key configured for GitHub, GitLab, and Mooncalf
[SUCCESS] β Python 3.12 environment ready
[SUCCESS] β Aider installed
All done! π
π¨ Two Implementations
GITAID comes in two flavors:
Bash Version
(setup-project.sh)
- 1,099 lines of shell scripting
- No dependencies beyond bash
- Perfect for sysadmins
- Natural for system operations
Python Version
(setup-project.py)
- 1,056 lines of clean Python
- Object-oriented design
- Easy to extend
- Great for Python developers
Both do exactly the same thing!
π§ What Gets Created
/opt/awesome-app/
βββ .git/ # Git repository
βββ .venv/ # Python 3.12 virtual environment
βββ .envrc # direnv auto-activation
βββ .gitignore # Comprehensive Python/Django ignores
βββ README.md # Project documentation
βββ pyproject.toml # Modern Python configuration
βββ config/ # Django project (if requested)
βββ manage.py
βββ config/
βββ settings.py
βββ urls.py
βββ wsgi.py
Plus in your home directory:
~/.ssh/
βββ id_ed25519 # Private SSH key
βββ id_ed25519.pub # Public SSH key (for git providers)
βββ config # Auto-configured for GitHub, GitLab, etc.
π SSH Key Management
GITAID generates SSH keys and configures them for: - GitHub (github.com) - GitLab (gitlab.com) - Custom GitLab (e.g., mooncalf.rockypy.com)
After key generation, GITAID: 1. Displays your public key 2. Shows direct links to add keys 3. Optionally copies to clipboard 4. Tests connections 5. Youβre ready to push code!
No more password prompts. Ever.
π Use Cases
For Beginners
# First Python project
./setup-project.sh
# Follow the prompts
# Start coding in 30 secondsFor Professionals
# New microservice
./setup-project.sh --dry-run # Check first
./setup-project.sh # Create it
cd /opt/new-service
aider # AI-assisted developmentFor Teams
# Onboard new developer
# 1. Give them GITAID script
# 2. They run it once
# 3. Consistent dev environment
# 4. Ready to contributeFor Lightning Talks
# Show both versions
./setup-project.sh # Bash
python3 setup-project.py # Python
# Same result, different approach!π Documentation
- USAGE.md - Detailed usage guide
- SSH-FEATURES.md - SSH key documentation
- TESTING-CHECKLIST.md - QA procedures
- LIGHTNING-TALK.md - Bash vs Python comparison
π¦ Prerequisites
- Ubuntu/Debian Linux (tested on 24.04)
- Bash shell (for .sh version)
- Python 3.6+ (for .py version)
- sudo access (for package installation)
- Internet connection
Thatβs it! GITAID installs everything else.
π How It Works
- Gather Configuration
- Base directory
- Project name
- Git settings
- Optional features
- System Setup
- Install direnv & git (if needed)
- Install uv Python manager
- Update PATH in .bashrc
- Project Creation
- Create directory (with proper ownership)
- Initialize or clone git repo
- Configure git user
- SSH Setup (optional)
- Generate SSH key pair
- Configure for git hosts
- Add to ssh-agent
- Test connections
- Python Environment
- Install Python 3.12
- Create virtual environment
- Setup direnv for auto-activation
- Install Aider (optional)
- Finishing Touches
- Create .gitignore
- Generate README.md
- Setup Django (optional)
- Display next steps
All in about 30 seconds!
π― Why GITAID?
Before GITAID
mkdir project
cd project
git init
git config user.name "..."
git config user.email "..."
ssh-keygen -t ed25519...
cat ~/.ssh/id_ed25519.pub # Copy to GitHub
python3 -m venv .venv
source .venv/bin/activate
pip install ...
touch .gitignore
# 15 more manual steps...
# 20 minutes later... maybe it works?With GITAID
./setup-project.sh
# 30 seconds later: β
Ready to code!π‘ Design Philosophy
Automate the tedious, validate the important, make it pleasant.
- Every input validated
- Every step logged
- Every error handled gracefully
- Every feature tested
- Everything documented
π€ Contributing
GITAID is perfect for your local Python user group or team!
Ideas for Enhancement
- Support for Poetry/PDM
- Docker integration
- Pre-commit hooks
- GitHub Actions templates
- More framework options (Flask, FastAPI)
Sharing
# Share with your team
git clone https://github.com/yourrepo/gitaid
cd gitaid
./setup-project.sh # They're ready!π€ Lightning Talk
GITAID was created for a Python user group lightning talk comparing Bash and Python for DevOps automation.
Key Points: - Same functionality, two languages - Bash: 1,099 lines, great for shell operations - Python: 1,056 lines, great for complex logic - Both work perfectly!
See LIGHTNING-TALK.md for the complete talk.
π Stats
| Metric | Bash | Python |
|---|---|---|
| Lines of Code | 1,099 | 1,056 |
| Functions/Methods | 30+ | 25+ |
| File Size | 28 KB | 35 KB |
| Startup Time | Instant | ~50ms |
| Execution Time | ~30s | ~30s |
| Dependencies | bash, curl, sudo | Python 3.6+, subprocess |
Performance: Identical (bottleneck is network/system ops)
π Troubleshooting
Command not found after install
source ~/.bashrc
# or restart your terminalPermission denied
chmod +x setup-project.sh
# or
chmod +x setup-project.pySSH key not working
# Add key to GitHub/GitLab first
cat ~/.ssh/id_ed25519.pub # Copy this
# Test connection
ssh -T git@github.comCheck the logs
# Every run creates a log
tail -f /tmp/project-setup-*.logπ Learn More
Blog Posts
- βBuilding GITAID: Automating Python Project Setupβ
- βBash vs Python for DevOps: A Real-World Comparisonβ
- βZero to Git in 30 Seconds with GITAIDβ
Videos
- Lightning Talk: βGITAID - One Script, Two Languagesβ
- Demo: βSetting Up Python Projects the Easy Wayβ
π License
GITAID is provided as-is for development automation. Feel free to modify and adapt for your needs.
π Acknowledgments
Created for the local Python user group to demonstrate: - DevOps automation - Bash vs Python comparison - Real-world scripting
π Links
- Repository: https://github.com/yourrepo/gitaid
- Issues: https://github.com/yourrepo/gitaid/issues
- Documentation: https://github.com/yourrepo/gitaid/docs
- Python Group: [Your local meetup]
π Star Us!
If GITAID saves you time, give it a star! β
# One script
./setup-project.sh
# Complete environment
# Ready to code
# That's GITAID! πGITAID - Because lifeβs too short for manual project setup.
Git Assistant for Instant Development-- Created by RoofSoft - Mike George