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:

From zero to coding in 30 seconds.

🌟 Features

Intelligent Setup

Git Excellence

Python Environment

Developer Experience

πŸ“¦ 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.py

Basic 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-run

Example 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)

Python Version (setup-project.py)

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 seconds

For Professionals

# New microservice
./setup-project.sh --dry-run  # Check first
./setup-project.sh            # Create it
cd /opt/new-service
aider                         # AI-assisted development

For Teams

# Onboard new developer
# 1. Give them GITAID script
# 2. They run it once
# 3. Consistent dev environment
# 4. Ready to contribute

For Lightning Talks

# Show both versions
./setup-project.sh      # Bash
python3 setup-project.py # Python
# Same result, different approach!

πŸ“š Documentation

🚦 Prerequisites

That’s it! GITAID installs everything else.

πŸ” How It Works

  1. Gather Configuration
    • Base directory
    • Project name
    • Git settings
    • Optional features
  2. System Setup
    • Install direnv & git (if needed)
    • Install uv Python manager
    • Update PATH in .bashrc
  3. Project Creation
    • Create directory (with proper ownership)
    • Initialize or clone git repo
    • Configure git user
  4. SSH Setup (optional)
    • Generate SSH key pair
    • Configure for git hosts
    • Add to ssh-agent
    • Test connections
  5. Python Environment
    • Install Python 3.12
    • Create virtual environment
    • Setup direnv for auto-activation
    • Install Aider (optional)
  6. 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.

🀝 Contributing

GITAID is perfect for your local Python user group or team!

Ideas for Enhancement

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 terminal

Permission denied

chmod +x setup-project.sh
# or
chmod +x setup-project.py

SSH key not working

# Add key to GitHub/GitLab first
cat ~/.ssh/id_ed25519.pub  # Copy this

# Test connection
ssh -T git@github.com

Check the logs

# Every run creates a log
tail -f /tmp/project-setup-*.log

πŸŽ“ Learn More

Blog Posts

Videos

πŸ“œ 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

🌟 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