Primakov Alexandr Alexandrovich 6fbd421b46 Update installation script to set installation directory dynamically
- Modified `fix-installation.sh` to determine the installation directory based on the script's location.
- Added output to display the working directory for better user feedback during installation.
2025-10-13 00:28:57 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00
2025-10-12 23:15:09 +03:00

🤖 AI Code Review Platform

Автоматический ревьювер кода на базе AI для Gitea, GitHub и Bitbucket.


🚀 Быстрый старт

Запуск одной командой:

Windows:

start.bat

Linux/Mac:

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:

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"Добавить репозиторий"

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

В режиме разработки:


📁 Структура

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


📚 Документация


🆘 Помощь

Проблемы с 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

Готово! 🚀

Description
No description provided
Readme MIT 525 KiB
Languages
Python 57.1%
TypeScript 30.5%
Shell 10.3%
Batchfile 1.1%
CSS 0.7%
Other 0.3%