AutoCommit
Automate your Git workflow. Generate AI-powered commit messages, gain repo analytics, and create custom automation rules for issues & PRs
Install / Use
/learn @Alqudimi/AutoCommitREADME
AutoCommit - Intelligent Git Automation Platform
<div align="center">
Revolutionizing Git workflow automation with AI-powered commit message generation and intelligent repository management
Developed by Alqudimi Technology - All rights reserved
</div>🚀 Overview
AutoCommit is a comprehensive Git automation platform that leverages artificial intelligence to streamline development workflows. Built with modern web technologies, it provides intelligent commit message generation, automated issue management, pull request automation, and comprehensive analytics for development teams.
Key Features
- 🤖 AI-Powered Commit Messages: Generate meaningful, conventional commit messages using advanced language models
- 📊 Repository Analytics: Comprehensive insights into development activity, contributor performance, and project health
- âš„1¤7 Automation Rules: Create custom workflows for issue management, PR reviews, and notifications
- 🔗 GitHub Integration: Seamless integration with GitHub repositories and workflows
- 📈 Performance Reports: Automated generation of weekly, monthly, and custom reports
- 🔔 Smart Notifications: Slack and email notifications for important events
- 🎨 Modern UI: Responsive, dark-mode enabled interface built with React and Tailwind CSS
📋 Table of Contents
- Installation
- Quick Start
- Configuration
- API Documentation
- Features
- Architecture
- Contributing
- License
- Support
🛠Installation
Prerequisites
- Python 3.8 or higher
- Node.js 16 or higher
- Git
- GitHub account with personal access token
Backend Setup
-
Clone the repository
git clone https://github.com/Alqudimi/AutoCommit.git cd AutoCommit -
Set up Python virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install Python dependencies
cd backend pip install -r requirements.txt -
Configure environment variables
cp .env.example .env # Edit .env with your configuration -
Initialize the database
python -c "from app import create_app; from models import init_db; app = create_app(); init_db(app)"
Frontend Setup
-
Navigate to frontend directory
cd ../frontend -
Install Node.js dependencies
npm install # or pnpm install -
Start the development server
npm run dev # or pnpm run dev
🚀 Quick Start
1. Start the Backend Server
cd backend
python app.py
The API server will start on http://localhost:5000
2. Start the Frontend Development Server
cd frontend
npm run dev
The web application will be available at http://localhost:5173
3. Configure Your First Repository
- Open the web application in your browser
- Navigate to the "Repositories" section
- Click "Add Repository" and enter your GitHub repository URL
- Configure automation settings for the repository
- Start generating intelligent commit messages!
âš™ï¸ Configuration
Environment Variables
Create a .env file in the backend directory with the following variables:
# Flask Configuration
FLASK_ENV=development
SECRET_KEY=your-secret-key-here
# Database Configuration
DATABASE_URL=sqlite:///autocommit.db
# GitHub Integration
GITHUB_TOKEN=your-github-personal-access-token
# OpenAI Configuration
OPENAI_API_KEY=your-openai-api-key
# Slack Integration (Optional)
SLACK_WEBHOOK_URL=your-slack-webhook-url
# Email Configuration (Optional)
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
GitHub Token Setup
- Go to GitHub Settings ↄ1¤7 Developer settings ↄ1¤7 Personal access tokens
- Generate a new token with the following permissions:
repo(Full control of private repositories)read:user(Read user profile data)read:org(Read organization data)
OpenAI API Key
- Visit OpenAI API
- Create a new API key
- Add it to your
.envfile
📚 API Documentation
Authentication
All API endpoints require authentication using JWT tokens or API keys.
Core Endpoints
Repositories
GET /api/repositories- List all repositoriesPOST /api/repositories- Add a new repositoryGET /api/repositories/{id}- Get repository detailsPUT /api/repositories/{id}- Update repository settingsDELETE /api/repositories/{id}- Remove repository
Commit Generation
POST /api/commit/generate- Generate commit messagesGET /api/commit/templates- List available templatesPOST /api/commit/templates- Create custom template
Reports
GET /api/reports- List available reportsPOST /api/reports/generate- Generate new reportGET /api/reports/{id}/download- Download report
Automation Rules
GET /api/automation/rules- List automation rulesPOST /api/automation/rules- Create new rulePUT /api/automation/rules/{id}- Update ruleDELETE /api/automation/rules/{id}- Delete rule
For detailed API documentation, visit /docs when the server is running.
✄1¤7 Features
Intelligent Commit Message Generation
AutoCommit analyzes your code changes and generates meaningful commit messages following conventional commit standards:
- Conventional Commits:
feat:,fix:,docs:,style:,refactor:,test:,chore: - Angular Style:
type(scope): description - Gitmoji: Emoji-based commit messages
- Custom Templates: Create your own commit message formats
Repository Management
- Multi-repository support: Manage multiple GitHub repositories from a single dashboard
- Automation settings: Configure per-repository automation rules
- Real-time synchronization: Stay updated with the latest repository changes
- Branch management: Monitor and manage different branches
Analytics and Reporting
- Development metrics: Track commits, issues, pull requests, and contributor activity
- Performance insights: Identify bottlenecks and improvement opportunities
- Custom reports: Generate reports for specific time periods and metrics
- Export capabilities: Download reports in PDF, CSV, and JSON formats
Automation Workflows
Create powerful automation rules for:
- Pull Request Management: Auto-assign reviewers, add labels, request changes
- Issue Management: Auto-close issues, assign team members, add comments
- Notifications: Send alerts to Slack, email, or other communication channels
- Code Quality: Trigger code reviews, run tests, enforce standards
🗠Architecture
AutoCommit follows a modern microservices architecture:
Backend (Python/Flask)
- API Layer: RESTful API built with Flask
- Service Layer: Business logic and integrations
- Data Layer: SQLAlchemy ORM with SQLite/PostgreSQL
- Integration Layer: GitHub API, OpenAI API, Slack API
Frontend (React/TypeScript)
- Component Architecture: Reusable React components
- State Management: React hooks and context
- UI Framework: Tailwind CSS with shadcn/ui components
- Routing: React Router for navigation
Key Technologies
- Backend: Python, Flask, SQLAlchemy, OpenAI API, GitHub API
- Frontend: React, TypeScript, Tailwind CSS, Vite
- Database: SQLite (development), PostgreSQL (production)
- Authentication: JWT tokens
- Deployment: Docker, Gunicorn, Nginx
🤠Contributing
We welcome contributions from the community! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
Development Setup
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a pull request
Code Style
- Python: Follow PEP 8 guidelines
- JavaScript/TypeScript: Use ESLint and Prettier
- Commit Messages: Follow conventional commit format
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
Documentation
Commercial Support
For enterprise support, custom integrations, and professional services, contact [Alqudimi Technology].
<div align="center">
Made with â¤ï¸ by [Alqudimi Technology]
Empowering developers with intelligent automation
</div>