Files
n8n-workflows/workflows/plane-singularity/README.md
Striker 531b6039c6 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>
2026-03-23 04:05:11 +03:00

136 lines
4.6 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.
# 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