- Updated `README.md` to include instructions for the new `redeploy-ubuntu.sh` script and added a link to the new `REDEPLOY_GUIDE.md`. - Created `REDEPLOY_GUIDE.md` detailing the redeployment process, including backup creation, code updates, and troubleshooting steps. - Introduced `redeploy-hint.md` for GitHub Actions automation example, outlining setup for automatic redeployment on push events. - Improved documentation structure for better navigation and clarity.
🤖 AI Code Review Platform
Автоматический ревьювер кода на базе AI для Gitea, GitHub и Bitbucket.
🚀 Быстрый старт
Запуск одной командой:
Windows:
start.bat
Linux/Mac:
chmod +x start.sh
./start.sh
Это автоматически:
- ✅ Проверит зависимости
- ✅ Установит пакеты
- ✅ Соберет frontend
- ✅ Запустит сервер
Готово! Откройте http://localhost:8000
📋 Что делает платформа
- Получает Pull Request через webhook
- Анализирует код с помощью AI (Ollama)
- Находит проблемы:
- ❌ Критичные ошибки (синтаксис, логика)
- ⚠️ Важные замечания (code smell, антипаттерны)
- ℹ️ Рекомендации (стиль, best practices)
- Публикует комментарии в PR
🎯 Особенности
- ✅ 3 платформы: Gitea, GitHub, Bitbucket
- ✅ Webhooks: Автоматический ревью при создании PR
- ✅ Ручной запуск: Кнопка "Проверить сейчас"
- ✅ WebSocket: Обновления в реальном времени
- ✅ Детальные комментарии: Отдельный комментарий на каждую проблему
- ✅ Мастер токены: Один токен для всех репозиториев
- ✅ Единый порт: Frontend и Backend на 8000
🛠️ Требования
- Python: 3.10+
- Node.js: 18+
- Ollama: Для запуска AI моделей
Установка Ollama:
Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows/Mac: Скачайте с https://ollama.com/download
Скачайте модель:
ollama pull mistral:7b
# или
ollama pull llama3:8b
⚙️ Настройка
1. Клонируйте репозиторий
git clone <repository-url>
cd platform/review
2. Настройте .env
Файл backend/.env будет создан автоматически из .env.example.
Обязательно настройте:
# 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 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
3. Запустите
./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:
# Первичная установка
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 | REDEPLOY_GUIDE.md
🔧 Разработка
Backend:
cd backend
source venv/bin/activate # Windows: venv\Scripts\activate
uvicorn app.main:app --reload
Frontend:
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 # Подробная документация
🌟 Возможности
✅ Реализовано:
- Поддержка Gitea, GitHub, Bitbucket
- Webhooks для автоматического ревью
- Ручной запуск ревью
- Детальные комментарии с ссылками на строки
- WebSocket для real-time обновлений
- Мастер токены для упрощения настройки
- Единый запуск (frontend + backend)
- Экранирование HTML тегов в комментариях
- Контекст PR (title + description) в промпте
- Retry механизм для failed ревью
- Модальные окна вместо alert/confirm
🚧 Планируется:
- Docker контейнер
- Статусы PR (Approve/Request Changes)
- Настраиваемые правила ревью
- Кастомные промпты
- Множественные AI модели
- Метрики и аналитика
🤝 Вклад
Pull requests приветствуются!
Для больших изменений сначала откройте issue для обсуждения.
📄 Лицензия
MIT
📚 Документация
- ORGANIZATION_QUICKSTART.md - 🚀 Быстрый старт с организациями
- DEPLOYMENT.md - Полное руководство по развертыванию
- UBUNTU_DEPLOYMENT.md - Развертывание на Ubuntu/Debian
- REDEPLOY_GUIDE.md - 🔄 Обновление production сервера
- ARCHITECTURE.md - Архитектура проекта
- DEBUG_GUIDE.md - Отладка AI агента
- MODEL_RECOMMENDATION.md - Рекомендации по моделям
- MASTER_TOKEN_FEATURE.md - Мастер токены
🆘 Помощь
Проблемы с Ollama?
# Проверьте что Ollama запущен
curl http://localhost:11434/api/version
# Скачайте модель
ollama pull mistral:7b
Frontend не отображается?
cd frontend
npm run build
Backend не запускается?
Проверьте .env файл и установите ENCRYPTION_KEY.
🎉 Начните использовать!
# 1. Клонируйте
git clone <url>
cd platform/review
# 2. Настройте .env
nano backend/.env
# 3. Запустите
./start.sh # или start.bat
# 4. Откройте
http://localhost:8000
Готово! 🚀