Taiga integration

This commit is contained in:
2026-06-09 12:47:13 +03:00
parent c8599b3d13
commit 1f83dcb574
30 changed files with 1543 additions and 115 deletions
+64 -1
View File
@@ -87,6 +87,70 @@ Vite dev-server: http://localhost:5173 (проксирует `/api` на backend
| POST | `/api/v1/pomodoro/resume` | Продолжить |
| POST | `/api/v1/pomodoro/stop` | Стоп `{result, completed}` |
| GET | `/api/v1/pomodoro/history` | История сессий |
| GET | `/api/v1/projects` | Проекты Taiga + привязка Gitea |
| POST | `/api/v1/projects/sync-taiga` | Синхронизировать проекты из Taiga |
| PUT | `/api/v1/projects/{slug}/gitea` | Привязать Gitea repo |
| POST | `/api/v1/work-items` | Создать фичу/баг → Taiga + Gitea |
| GET | `/api/v1/work-items` | Список work items |
| POST | `/api/v1/webhooks/gitea` | Webhook для автозакрытия по push |
## Taiga + Gitea (фаза 2)
Taiga и Gitea работают **на хосте** (не в Docker):
- Taiga: `127.0.0.1:9000``taiga.grigowashere.ru`
- Gitea: `127.0.0.1:3000``git.grigowashere.ru`
Контейнер backend достучится через `host.docker.internal` (настроено в `docker-compose.yml`).
### Настройка `.env`
```env
TAIGA_BASE_URL=http://host.docker.internal:9000
TAIGA_USERNAME=...
TAIGA_PASSWORD=...
TAIGA_PUBLIC_URL=https://taiga.grigowashere.ru
GITEA_BASE_URL=http://host.docker.internal:3000
GITEA_TOKEN=... # Settings → Applications → Generate Token
GITEA_PUBLIC_URL=https://git.grigowashere.ru
GITEA_WEBHOOK_SECRET=... # произвольная строка
```
### Первый запуск
```bash
# 1. Синхронизировать проекты Taiga (ID подтянутся автоматически)
curl -X POST http://localhost:8080/api/v1/projects/sync-taiga
# 2. Привязать Gitea repo к проекту Taiga
curl -X PUT http://localhost:8080/api/v1/projects/home-assistant/gitea \
-H "Content-Type: application/json" \
-d '{"gitea_owner":"Grigo","gitea_repo":"Home_assistant","default_branch":"main"}'
```
### Gitea webhook
В репозитории: **Settings → Webhooks → Add Webhook**:
- URL: `http://127.0.0.1:8080/api/v1/webhooks/gitea`
- Content type: `application/json`
- Secret: значение `GITEA_WEBHOOK_SECRET`
- Events: **Push**
### Автозакрытие по коммиту
В сообщении коммита:
```
fix: кнопка сохранения
Closes gitea #12, taiga #45
```
Закроются Gitea issue #12 и Taiga story #45 (если только один ref — второй найдётся по связи в БД).
### Чат
«Заведи баг: кнопка не сохраняет настройки» → `create_work_item` → Taiga story + Gitea issue + ветка `feature/45-...`.
## Структура проекта
@@ -98,7 +162,6 @@ data/ SQLite БД (создаётся автоматически)
## Следующие фазы
- Интеграция Taiga + Gitea (project-agent внутри проекта)
- RAG с Qdrant для документов
- Проактивные чаты по расписанию
- Фитнес-трекер