code-review-agent/README.md
Primakov Alexandr Alexandrovich b297bcbba9 Add deployment documentation and enhance project setup scripts
- Introduced `DEPLOYMENT.md` for comprehensive deployment instructions.
- Added `start.bat` and `start.sh` scripts for unified project startup on Windows and Linux/Mac.
- Updated `.gitignore` to exclude additional files and directories.
- Enhanced `main.py` to serve static frontend files and handle SPA routing.
- Configured Vite to output the frontend build to the backend public directory.
- Minor adjustments in `ReviewDetail.tsx` for improved data handling.
2025-10-12 23:27:41 +03:00

331 lines
8.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 AI Code Review Platform
Автоматический ревьювер кода на базе AI для Gitea, GitHub и Bitbucket.
---
## 🚀 Быстрый старт
### Запуск одной командой:
**Windows:**
```bash
start.bat
```
**Linux/Mac:**
```bash
chmod +x start.sh
./start.sh
```
Это автоматически:
- ✅ Проверит зависимости
- ✅ Установит пакеты
- ✅ Соберет frontend
- ✅ Запустит сервер
**Готово!** Откройте http://localhost:8000
---
## 📋 Что делает платформа
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 <repository-url>
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'
```
---
## 🔧 Разработка
### 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
---
## 📚 Документация
- **[DEPLOYMENT.md](DEPLOYMENT.md)** - Полное руководство по развертыванию
- **[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)** - Мастер токены
- **[HTML_ESCAPE_FIX.md](HTML_ESCAPE_FIX.md)** - Экранирование HTML
---
## 🆘 Помощь
### Проблемы с 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 <url>
cd platform/review
# 2. Настройте .env
nano backend/.env
# 3. Запустите
./start.sh # или start.bat
# 4. Откройте
http://localhost:8000
```
**Готово!** 🚀