code-review-agent/docs/ORGANIZATION_QUICKSTART.md

257 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# 🚀 Быстрый старт: Организации и Очередь задач
## 📝 Что добавлено
1. **Организации** - добавление целых организаций (Gitea/GitHub/Bitbucket)
2. **Автосканирование** - поиск всех репозиториев и PR в организации
3. **Очередь задач** - последовательная обработка review (по одному)
4. **Мониторинг** - отслеживание состояния очереди и worker'а
---
## ⚡ Быстрый старт
### 1. Запустить проект
```bash
# Windows
start.bat
# Linux/Mac
./start.sh
```
### 2. Добавить организацию
1. Открыть http://localhost:8000
2. Перейти в раздел **🏢 Организации**
3. Нажать ** Добавить организацию**
4. Заполнить:
- **Название**: `inno-js`
- **Платформа**: `Gitea`
- **Base URL**: `https://git.bro-js.ru`
- **API токен**: (опционально, если не указан - используется master токен)
5. Нажать **Создать**
### 3. Сканировать организацию
1. Найти добавленную организацию
2. Нажать **🔍 Сканировать**
3. Подтвердить
**Результат:**
```
✅ Сканирование завершено!
📦 Репозиториев найдено: 15
Репозиториев добавлено: 3
🔀 PR найдено: 8
📝 Задач создано: 8
```
### 4. Мониторинг очереди
1. Перейти в раздел **📝 Очередь задач**
2. Увидите:
- 🚀 **Worker активен** - статус worker'а
- **Статистика** - всего/ожидает/выполняется/завершено/ошибок
- **Список задач** - каждая задача с PR и статусом
### 5. Наблюдать за работой
Worker автоматически:
1. Берет следующую задачу из очереди
2. Запускает AI review для PR
3. Публикует комментарии
4. Переходит к следующей задаче
**Важно:** Обрабатывается только 1 задача одновременно! ⚡
---
## 🔧 Настройка master токенов
Если не хотите указывать токен для каждой организации:
### backend/.env
```env
# Master tokens (опциональные)
MASTER_GITEA_TOKEN=your_gitea_token_here
MASTER_GITHUB_TOKEN=your_github_token_here
MASTER_BITBUCKET_TOKEN=your_bitbucket_token_here
```
При создании организации просто оставьте поле "API токен" пустым.
---
## 📊 API Endpoints
### Организации
```bash
# Получить список
GET /api/organizations
# Создать
POST /api/organizations
{
"name": "inno-js",
"platform": "gitea",
"base_url": "https://git.bro-js.ru",
"api_token": "optional_token"
}
# Сканировать
POST /api/organizations/{id}/scan
```
### Очередь задач
```bash
# Получить список задач
GET /api/tasks
GET /api/tasks?status=pending
# Статус worker'а
GET /api/tasks/worker/status
# Повторить задачу
POST /api/tasks/{id}/retry
# Удалить задачу
DELETE /api/tasks/{id}
```
---
## 🎯 Как это работает
### 1. Сканирование организации
```
1. Fetch /orgs/{name}/repos → Получить все репозитории
2. For each repo:
- Проверить существует ли в БД
- Если нет → добавить
- Fetch /repos/{owner}/{repo}/pulls?state=open
- For each PR:
- Проверить существует ли в БД
- Если нет → добавить
- Создать ReviewTask(status=pending)
```
### 2. Worker обработки
```python
while True:
# Проверить есть ли in_progress задача
if has_in_progress_task():
wait(10 seconds)
continue
# Взять следующую pending задачу (по приоритету)
task = get_next_pending_task()
if not task:
wait(10 seconds)
continue
# Отметить как in_progress
task.status = "in_progress"
# Выполнить review
try:
run_ai_review(task.pull_request)
task.status = "completed"
except Exception as e:
task.retry_count += 1
if task.retry_count >= 3:
task.status = "failed"
else:
task.status = "pending" # retry
# Подождать 10 секунд перед следующей
wait(10 seconds)
```
### 3. Гарантии
**Только 1 review одновременно**
**Приоритеты**: HIGH → NORMAL → LOW
**Автоматический retry** (до 3 попыток)
**FIFO** при равном приоритете
---
## 🐛 Troubleshooting
### Worker не обрабатывает задачи
```bash
# Проверить статус
curl http://localhost:8000/api/tasks/worker/status
# Должно быть:
{"running": true, "current_task_id": null, "poll_interval": 10}
```
### Задача застряла в "in_progress"
```bash
# Вручную сбросить через API
POST /api/tasks/{id}/retry
```
### Все задачи failed
Проверить:
1. ✅ Ollama запущена (`ollama list`)
2. ✅ Модель скачана (`ollama pull mistral:7b`)
3. ✅ API токены правильные
4. ✅ Репозитории доступны
---
## 📈 Мониторинг
### Frontend UI
- **🏢 Организации** - управление организациями, сканирование
- **📝 Очередь задач** - мониторинг задач, статус worker'а
- **🔍 Reviews** - результаты review, комментарии
### Логи
```bash
# Backend логи (Windows)
# Смотреть в консоли где запущен start.bat
# Backend логи (Linux/systemd)
journalctl -u ai-review -f
```
---
## ✅ Готово!
Теперь вы можете:
1. Добавлять организации
2. 🔍 Сканировать репозитории и PR
3. 📝 Следить за очередью задач
4. 🤖 AI автоматически проводит review
5. 💬 Комментарии публикуются в PR
**Один клик**Все репозитории и PR организации в review! 🚀
---
## 📚 Подробная документация
- [ORGANIZATION_FEATURE.md](ORGANIZATION_FEATURE.md) - Полная документация
- [README.md](README.md) - Общая информация о проекте
- [API Docs](http://localhost:8000/docs) - Swagger UI