# 🤖 AI Code Review Platform Автоматический ревьювер кода на базе AI для Gitea, GitHub и Bitbucket. --- ## 🚀 Быстрый старт **Windows:** ```cmd start.bat ``` **Linux/Mac:** ```bash chmod +x start.sh ./start.sh ``` Скрипт: 1. Соберет фронтенд в `backend/public` 2. Запустит backend на http://localhost:8000 3. Фронтенд отдается с бэкенда **Один процесс, один порт, как в production.** Перезапуск после изменений: - Просто запусти скрипт заново (Ctrl+C → start.bat) --- ## 📋 Что делает платформа 1. **Получает Pull Request** через webhook 2. **Анализирует код** с помощью AI (Ollama) 3. **Находит проблемы:** - ❌ Критичные ошибки (синтаксис, логика) - ⚠️ Важные замечания (code smell, антипаттерны) - ℹ️ Рекомендации (стиль, best practices) 4. **Публикует комментарии** в PR --- ## 🎯 Особенности - ✅ **3 платформы:** Gitea, GitHub, Bitbucket - ✅ **Webhooks:** Автоматический ревью при создании PR - ✅ **Ручной запуск:** Кнопка "Проверить сейчас" - ✅ **WebSocket:** Обновления в реальном времени - ✅ **Детальные комментарии:** Отдельный комментарий на каждую проблему - ✅ **Мастер токены:** Один токен для всех репозиториев - ✅ **Единый порт:** Frontend и Backend на 8000 --- ## 🛠️ Требования - **Python:** 3.10+ - **Node.js:** 18+ - **Ollama:** Для запуска AI моделей ### Установка Ollama: **Linux:** ```bash curl -fsSL https://ollama.com/install.sh | sh ``` **Windows/Mac:** Скачайте с https://ollama.com/download ### Скачайте модель: ```bash ollama pull mistral:7b # или ollama pull llama3:8b ``` --- ## ⚙️ Настройка ### 1. Клонируйте репозиторий ```bash git clone cd platform/review ``` ### 2. Настройте `.env` Файл `backend/.env` будет создан автоматически из `.env.example`. **Обязательно настройте:** ```bash # Ollama OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=mistral:7b # Мастер токены (опционально) MASTER_GITEA_TOKEN=your_token_here # Ключ шифрования (обязательно!) ENCRYPTION_KEY=your-32-char-key-here ``` **Генерация ключа:** ```python python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" ``` ### 3. Запустите ```bash ./start.sh # Linux/Mac start.bat # Windows ``` --- ## 📖 Использование ### 1. Добавьте репозиторий http://localhost:8000 → **"Добавить репозиторий"** - **Платформа:** Gitea/GitHub/Bitbucket - **URL:** https://git.example.com/owner/repo - **API Token:** (или оставьте пустым для мастер токена) ### 2. Настройте webhook Скопируйте webhook URL из списка репозиториев. **В Gitea:** Settings → Webhooks → Add Webhook → Gitea - Payload URL: `http://your-server:8000/api/webhooks/gitea/1` - Content Type: `application/json` - Secret: (из списка репозиториев) - Trigger: Pull Request ### 3. Готово! Создайте PR и агент автоматически проведет ревью! 🎉 Или нажмите **"🔍 Проверить сейчас"** для ручного запуска. --- ## 📊 Что вы увидите ### В интерфейсе: ``` 📊 Репозитории: 5 🔍 Ревью: 23 ✅ Успешных: 20 ❌ Ошибок: 3 ``` ### В Gitea/GitHub: **Общий комментарий:** ``` 🤖 AI Code Review 📊 Статистика - Всего проблем: 4 - ❌ Критичных: 4 💡 Рекомендации ⚠️ Найдены критичные проблемы! Пожалуйста, исправьте их перед мержем. 📝 Детальные комментарии для каждой проблемы опубликованы ниже. ``` **Отдельные комментарии:** ``` ❌ src/pages/search-character.tsx:58 ERROR: Опечатка в строке: 'shmapplication/json' должно быть 'application/json' ``` --- ## 🐧 Production (Ubuntu/Debian) ### Автоматическое развертывание с systemd: ```bash # Первичная установка sudo ./deploy-ubuntu.sh # Обновление после изменений sudo ./redeploy-ubuntu.sh ``` Это настроит: - ✅ Systemd service (автозапуск) - ✅ Логирование в `/var/log/ai-review/` - ✅ Nginx reverse proxy (опционально) - ✅ SSL с Let's Encrypt (опционально) - ✅ Автоматическое обновление с backup **Подробнее:** [UBUNTU_DEPLOYMENT.md](UBUNTU_DEPLOYMENT.md) | [REDEPLOY_GUIDE.md](REDEPLOY_GUIDE.md) --- ## 🔧 Разработка ### Backend: ```bash cd backend source venv/bin/activate # Windows: venv\Scripts\activate uvicorn app.main:app --reload ``` ### Frontend: ```bash cd frontend npm run dev ``` В режиме разработки: - Frontend: http://localhost:5173 - Backend: http://localhost:8000 --- ## 📁 Структура ``` platform/review/ ├── backend/ # FastAPI + LangGraph │ ├── app/ │ │ ├── agents/ # AI агент │ │ ├── api/ # REST endpoints │ │ ├── models/ # SQLAlchemy models │ │ ├── services/ # Git API clients │ │ └── main.py # Entry point │ ├── public/ # Frontend build (auto-generated) │ └── requirements.txt ├── frontend/ # React + Vite │ ├── src/ │ └── package.json ├── start.sh # Единый запуск (Linux/Mac) ├── start.bat # Единый запуск (Windows) └── DEPLOYMENT.md # Подробная документация ``` --- ## 🌟 Возможности ### ✅ Реализовано: - [x] Поддержка Gitea, GitHub, Bitbucket - [x] Webhooks для автоматического ревью - [x] Ручной запуск ревью - [x] Детальные комментарии с ссылками на строки - [x] WebSocket для real-time обновлений - [x] Мастер токены для упрощения настройки - [x] Единый запуск (frontend + backend) - [x] Экранирование HTML тегов в комментариях - [x] Контекст PR (title + description) в промпте - [x] Retry механизм для failed ревью - [x] Модальные окна вместо alert/confirm ### 🚧 Планируется: - [ ] Docker контейнер - [ ] Статусы PR (Approve/Request Changes) - [ ] Настраиваемые правила ревью - [ ] Кастомные промпты - [ ] Множественные AI модели - [ ] Метрики и аналитика --- ## 🤝 Вклад Pull requests приветствуются! Для больших изменений сначала откройте issue для обсуждения. --- ## 📄 Лицензия MIT --- ## 📚 Документация - **[ORGANIZATION_QUICKSTART.md](ORGANIZATION_QUICKSTART.md)** - 🚀 Быстрый старт с организациями - **[DEPLOYMENT.md](DEPLOYMENT.md)** - Полное руководство по развертыванию - **[UBUNTU_DEPLOYMENT.md](UBUNTU_DEPLOYMENT.md)** - Развертывание на Ubuntu/Debian - **[REDEPLOY_GUIDE.md](REDEPLOY_GUIDE.md)** - 🔄 Обновление production сервера - **[ARCHITECTURE.md](ARCHITECTURE.md)** - Архитектура проекта - **[DEBUG_GUIDE.md](DEBUG_GUIDE.md)** - Отладка AI агента - **[MODEL_RECOMMENDATION.md](MODEL_RECOMMENDATION.md)** - Рекомендации по моделям - **[MASTER_TOKEN_FEATURE.md](MASTER_TOKEN_FEATURE.md)** - Мастер токены --- ## 🆘 Помощь ### Проблемы с Ollama? ```bash # Проверьте что Ollama запущен curl http://localhost:11434/api/version # Скачайте модель ollama pull mistral:7b ``` ### Frontend не отображается? ```bash cd frontend npm run build ``` ### Backend не запускается? Проверьте `.env` файл и установите `ENCRYPTION_KEY`. --- ## 🎉 Начните использовать! ```bash # 1. Клонируйте git clone cd platform/review # 2. Настройте .env nano backend/.env # 3. Запустите ./start.sh # или start.bat # 4. Откройте http://localhost:8000 ``` **Готово!** 🚀