Add Plane→Singularity workflow docs and script
- README: описание репозитория, список workflows - workflows/plane-singularity/README.md: полная документация по интеграции (схема, payload структура, маппинг 28 проектов, Singularity API) - workflows/plane-singularity/update_workflow.py: скрипт обновления через n8n API Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
135
workflows/plane-singularity/README.md
Normal file
135
workflows/plane-singularity/README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Plane → Singularity: назначение задачи
|
||||
|
||||
**Workflow ID:** `zyO77cIUNdbc4xPH`
|
||||
**n8n URL:** https://n8n.striker.su
|
||||
**Создан:** 2026-03-23
|
||||
|
||||
## Назначение
|
||||
|
||||
Автоматически синхронизирует задачи из Plane в Singularity:
|
||||
|
||||
- **Назначена на меня** → создаёт задачу в Singularity
|
||||
- **Задача завершена** → находит задачу в Singularity и закрывает её
|
||||
|
||||
## Схема
|
||||
|
||||
```
|
||||
Webhook (POST /webhook/plane-assignment)
|
||||
|
|
||||
Switch "Тип события"
|
||||
|-- [assignee_ids содержит gen.director@hhivp.com]
|
||||
| |
|
||||
| Code "Подготовить данные" (маппинг проекта, приоритета, дедлайна)
|
||||
| |
|
||||
| HTTP POST /v2/task (создать задачу в Singularity)
|
||||
|
|
||||
+-- [state_id -> state.group == completed]
|
||||
|
|
||||
HTTP GET /v2/task?search=PROJ-42 (найти задачу)
|
||||
|
|
||||
HTTP PATCH /v2/task/{id} (закрыть {"complete": 1})
|
||||
```
|
||||
|
||||
## Plane Webhook
|
||||
|
||||
Зарегистрирован через PostgreSQL (API endpoint /api/v1/workspaces/.../webhooks/ недоступен):
|
||||
|
||||
```sql
|
||||
-- На сервере Plane (rd.hhivp.com), БД: plane
|
||||
INSERT INTO webhooks (id, url, is_active, workspace, issue, created_at, updated_at)
|
||||
VALUES (
|
||||
'1d053279-658a-4987-8ee0-303f2c7b952e',
|
||||
'https://n8n.striker.su/webhook/plane-assignment',
|
||||
true,
|
||||
'c9e0fe9f-02dd-4bd4-9026-d8783e10c4b2',
|
||||
true,
|
||||
NOW(), NOW()
|
||||
);
|
||||
```
|
||||
|
||||
## Реальная структура payload от Plane
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "issue",
|
||||
"action": "updated",
|
||||
"data": {
|
||||
"project": "<project-uuid>",
|
||||
"project_identifier": "TCKT",
|
||||
"sequence_id": 42,
|
||||
"name": "Название задачи",
|
||||
"priority": "high",
|
||||
"target_date": "2026-04-01",
|
||||
"description_stripped": "...",
|
||||
"state": { "group": "completed" }
|
||||
},
|
||||
"activity": {
|
||||
"field": "assignee_ids",
|
||||
"new_value": ["f7a5e9db-eaf0-4314-9440-4b28094f5db1"],
|
||||
"old_value": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> ВАЖНО: Plane шлёт field="assignee_ids" (не "assignees") и field="state_id" (не "state").
|
||||
> new_value для assignee -- массив строк UUID, не строка.
|
||||
|
||||
## Пользователь
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Email | gen.director@hhivp.com |
|
||||
| UUID | f7a5e9db-eaf0-4314-9440-4b28094f5db1 |
|
||||
|
||||
## Маппинг проектов Plane -> Singularity
|
||||
|
||||
| Plane UUID (сокращ.) | Идентификатор | Singularity Project |
|
||||
|----------------------|---------------|---------------------|
|
||||
| 0a821ae1 | DRC | P-b40d30ed (ДРЦ Нагорное) |
|
||||
| 87598e10 | NAVISCOPE | P-00ddf477 |
|
||||
| 1099af67 | NAB | P-30340426 (Прочее) |
|
||||
| 2d35134d | MANYH | P-5a0bd9ad (ИП Маняхин) |
|
||||
| 1f4bcaee | TCKT | P-638ec16a (HHIVP Инфра) |
|
||||
| 74d5b2f9 | CIFRA | P-63c01156 (ЦифраЦифра) |
|
||||
| 26cd4aab | VEHA | P-39d04293 (Веха) |
|
||||
| 66748cf3 | SINVS | P-b1a9d408 (Олимпийский 42а) |
|
||||
| 309e735f | SHAUS | P-8624fef6 (СтифтерХаус) |
|
||||
| 404b4c7a | YAR | P-ea61bc07 (Ярослав В.) |
|
||||
| 89133e7f | SBOR | P-e4c50922 (Старый Большевик) |
|
||||
| dd3495bf | SMED | P-cec926a1 (Северное Медведково) |
|
||||
| 94e0ddd0 | SAMOI | P-e73fe9a8 (А. Самойлов) |
|
||||
| a3906157 | HG | P-32c6abd8 (Сад Здоровья) |
|
||||
| ec70a115 | ROMA | P-281f799e (Ромашка) |
|
||||
| 04427cbb | NIIH | P-30340426 (Прочее) |
|
||||
| 191c0a5b | LIANZ | P-7377d35f (Лианозово) |
|
||||
| 5db759d0 | MOIS | P-db73597a (ИП Моисеев) |
|
||||
| 60c0bd07 | VONDI | P-04b65df5 (Вондига) |
|
||||
| c4cdd5fb | 4101 | P-30340426 (Прочее) |
|
||||
| c6b2531b | BCOM | P-30340426 (Прочее) |
|
||||
| 91a97d40 | DELTA | P-62de7005 (Дельта) |
|
||||
| eaef875f | WEB | P-638ec16a (HHIVP Инфра) |
|
||||
| 51846118 | REGRU | P-a3f177b1 (Домены) |
|
||||
| 910aa865 | HARZL | P-05ca29bb (ХарцЛабс) |
|
||||
| dfd2a49f | 3DRU | P-181d5832 (3Д.РУ) |
|
||||
| 46f45846 | IVA | P-d7a92af2 (Ива) |
|
||||
| 4df07960 | HHVIP | P-638ec16a (HHIVP Инфра) |
|
||||
|
||||
Неизвестный проект -> P-91f69023 (fallback)
|
||||
|
||||
## Singularity API
|
||||
|
||||
- Base URL: https://api.singularity-app.com/v2
|
||||
- Auth: Bearer 11a4eac1-3dd9-4448-99f6-0b3c58315a5d
|
||||
- Create task: POST /task
|
||||
- Search task: GET /task?search=PROJ-42
|
||||
- Close task: PATCH /task/{id} body: {"complete": 1}
|
||||
|
||||
## Обновление workflow
|
||||
|
||||
Скрипт для обновления через n8n API: `update_workflow.py`
|
||||
|
||||
```bash
|
||||
python update_workflow.py
|
||||
```
|
||||
|
||||
n8n API: PUT https://n8n.striker.su/api/v1/workflows/zyO77cIUNdbc4xPH
|
||||
Reference in New Issue
Block a user