feat: add Planka service provider with full notification and command support

Webhook-based provider for Planka (self-hosted Kanban board) with:
- 15 event types (cards, boards, lists, comments, tasks, attachments, labels)
- Bearer token webhook authentication
- Async API client for boards/cards/lists
- 30 notification templates (en/ru) + 26 command templates (en/ru)
- Bot commands: /status, /boards, /cards, /lists
- Default tracking config, template config, command config seeded on startup
- DB migration for 15 new tracking_config columns
- Frontend: provider config UI with auto-name, Planka-specific hints
- Frontend: tracking config event toggles for all 15 Planka events
This commit is contained in:
2026-03-23 15:54:00 +03:00
parent 39bac828fd
commit 0fde3c6b3d
83 changed files with 1827 additions and 3 deletions
@@ -128,6 +128,23 @@ class TrackingConfig(SQLModel, table=True):
track_pr_commented: bool = Field(default=False)
track_release_published: bool = Field(default=True)
# Planka event tracking
track_card_created: bool = Field(default=True)
track_card_updated: bool = Field(default=False)
track_card_moved: bool = Field(default=True)
track_card_deleted: bool = Field(default=False)
track_card_commented: bool = Field(default=True)
track_comment_updated: bool = Field(default=False)
track_board_created: bool = Field(default=True)
track_board_updated: bool = Field(default=False)
track_board_deleted: bool = Field(default=True)
track_list_created: bool = Field(default=False)
track_list_updated: bool = Field(default=False)
track_list_deleted: bool = Field(default=False)
track_attachment_created: bool = Field(default=True)
track_card_label_added: bool = Field(default=False)
track_task_completed: bool = Field(default=True)
# Scheduler event tracking
track_scheduled_message: bool = Field(default=True)