feat: Add review events persistence, version display, and auto-versioning system
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
# 📝 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!** 🚀
|
||||
|
||||
Reference in New Issue
Block a user