code-review-agent/CHANGELOG_ORGANIZATIONS.md
Primakov Alexandr Alexandrovich 6ae2d0d8ec Add organization and task queue features
- Introduced new models for `Organization` and `ReviewTask` to manage organizations and review tasks.
- Implemented API endpoints for CRUD operations on organizations and tasks, including scanning organizations for repositories and PRs.
- Developed a background worker for sequential processing of review tasks with priority handling and automatic retries.
- Created frontend components for managing organizations and monitoring task queues, including real-time updates and filtering options.
- Added comprehensive documentation for organization features and quick start guides.
- Fixed UI issues and improved navigation for better user experience.
2025-10-13 00:10:04 +03:00

227 lines
8.4 KiB
Markdown
Raw Permalink 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.

# 📝 Changelog: Организации и Очередь задач
## 🎉 Добавлено
### Backend
#### Новые модели:
-`Organization` - модель для организаций (Gitea/GitHub/Bitbucket)
-`ReviewTask` - модель для очереди задач review
#### Новые API endpoints:
-`GET /api/organizations` - список организаций
-`POST /api/organizations` - создать организацию
-`GET /api/organizations/{id}` - получить организацию
-`PUT /api/organizations/{id}` - обновить организацию
-`DELETE /api/organizations/{id}` - удалить организацию
-`POST /api/organizations/{id}/scan` - сканировать организацию
-`GET /api/tasks` - список задач в очереди
-`GET /api/tasks?status=pending` - фильтр по статусу
-`GET /api/tasks/worker/status` - статус worker'а
-`POST /api/tasks/{id}/retry` - повторить задачу
-`DELETE /api/tasks/{id}` - удалить задачу
#### Task Worker:
- ✅ Фоновый worker для последовательной обработки задач
- ✅ Гарантия: только 1 review одновременно
- ✅ Поддержка приоритетов (HIGH > NORMAL > LOW)
- ✅ Автоматический retry при ошибках (до 3 попыток)
- ✅ FIFO при равном приоритете
- ✅ Автозапуск при старте приложения
#### Сканирование организаций:
- ✅ Автоматический поиск всех репозиториев в организации
- ✅ Автоматический поиск всех открытых PR
- ✅ Автоматическое создание задач на review
- ✅ Поддержка Gitea (GitHub и Bitbucket - заглушки)
### Frontend
#### Новые страницы:
-`/organizations` - управление организациями
-`/tasks` - мониторинг очереди задач
#### Новые компоненты:
-`Organizations.tsx` - страница организаций с CRUD
-`Tasks.tsx` - страница очереди задач с мониторингом
-`OrganizationForm` - форма создания/редактирования организации
#### Новые типы:
-`Organization` - тип организации
-`OrganizationCreate` / `OrganizationUpdate` - типы для CRUD
-`ReviewTask` - тип задачи review
-`TaskStatus` / `TaskPriority` - типы статусов и приоритетов
-`WorkerStatus` - тип статуса worker'а
#### API клиент:
-`getOrganizations()` - получить список
-`createOrganization()` - создать
-`updateOrganization()` - обновить
-`deleteOrganization()` - удалить
-`scanOrganization()` - сканировать
-`getTasks()` - получить задачи
-`getWorkerStatus()` - статус worker'а
-`retryTask()` - повторить
-`deleteTask()` - удалить
#### UI улучшения:
- ✅ Навигация обновлена: добавлены пункты "Организации" и "Очередь"
- ✅ Модальные окна исправлены (был баг с `onCancel`)
- ✅ Real-time обновление статистики задач (каждые 5 секунд)
- ✅ Фильтрация задач по статусу
- ✅ Визуализация статуса worker'а
### Документация
-`ORGANIZATION_FEATURE.md` - подробная документация
-`ORGANIZATION_QUICKSTART.md` - быстрый старт
-`backend/migrate.py` - скрипт миграции БД
---
## 🔧 Исправления
### Frontend
- 🐛 Исправлены ошибки в компонентах `Modal` и `ConfirmModal`
- `onCancel``onClose`
- `message` prop → `title` + `children`
- 🐛 Удален неиспользуемый импорт `ReviewTask` из `organizations.ts`
---
## 🎯 Ключевые фичи
### 1. Организации
```
Добавление целой организации → Автосканирование всех репозиториев
→ Поиск всех PR → Создание задач на review
```
### 2. Очередь задач
```
Задачи в очереди → Worker берет по одной → Выполняет review
→ Публикует комментарии → Переходит к следующей
```
### 3. Гарантии
-**Один review одновременно** - не перегружаем Ollama
-**Приоритеты** - важные PR обрабатываются быстрее
-**Retry** - автоматические повторы при ошибках
-**Мониторинг** - видно состояние очереди и worker'а
---
## 📊 Статистика изменений
### Backend:
- **Новых файлов**: 5
- `models/organization.py`
- `models/review_task.py`
- `api/organizations.py`
- `api/tasks.py`
- `workers/task_worker.py`
- **Изменено файлов**: 3
- `models/__init__.py`
- `api/__init__.py`
- `main.py`
### Frontend:
- **Новых файлов**: 3
- `pages/Organizations.tsx`
- `pages/Tasks.tsx`
- `types/organization.ts`
- **Изменено файлов**: 3
- `App.tsx`
- `api/organizations.ts`
- `pages/Tasks.tsx` (исправления)
### Документация:
- **Новых файлов**: 3
- `ORGANIZATION_FEATURE.md`
- `ORGANIZATION_QUICKSTART.md`
- `CHANGELOG_ORGANIZATIONS.md`
---
## 🚀 Как использовать
### 1. Миграция БД
```bash
cd backend
./venv/Scripts/python.exe migrate.py
```
### 2. Запуск проекта
```bash
# Windows
start.bat
# Linux/Mac
./start.sh
```
### 3. Добавить организацию
1. Открыть http://localhost:8000
2. Перейти в **🏢 Организации**
3. Нажать ** Добавить организацию**
4. Заполнить форму
5. Нажать **🔍 Сканировать**
### 4. Мониторинг
1. Перейти в **📝 Очередь задач**
2. Следить за прогрессом
3. Видеть статус worker'а
4. Фильтровать по статусу
---
## ✅ Тестирование
### Проверено:
- ✅ Создание организации
- ✅ Сканирование организации (Gitea)
- ✅ Создание задач на review
- ✅ Последовательная обработка задач
- ✅ Worker запускается и останавливается
- ✅ Retry при ошибках
- ✅ Frontend собирается без ошибок
- ✅ Модальные окна работают корректно
### Требует тестирования:
- ⏳ Полный цикл review через очередь
- ⏳ Приоритеты задач
- ⏳ Масштабирование (много задач)
- ⏳ GitHub и Bitbucket организации
---
## 📝 TODO для будущих улучшений
- [ ] Реализовать сканирование GitHub организаций
- [ ] Реализовать сканирование Bitbucket организаций
- [ ] Добавить настройку приоритетов вручную
- [ ] Добавить паузу/возобновление worker'а
- [ ] Добавить планирование сканирований (cron)
- [ ] Добавить webhook для организаций
- [ ] Добавить статистику по организациям
- [ ] Добавить логи worker'а в UI
---
## 🎉 Результат
Теперь можно:
1. ✅ Добавлять организации целиком
2. ✅ Сканировать все репозитории одной кнопкой
3. ✅ Автоматически ставить все PR в очередь
4. ✅ Обрабатывать review последовательно
5. ✅ Мониторить прогресс в реальном времени
**Один клик → Вся организация на review!** 🚀