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
@@ -62,6 +62,22 @@ def event_allowed_by_config(event: ServiceEvent, tc: TrackingConfig) -> bool:
"pr_merged": tc.track_pr_merged,
"pr_commented": tc.track_pr_commented,
"release_published": tc.track_release_published,
# Planka events
"card_created": tc.track_card_created,
"card_updated": tc.track_card_updated,
"card_moved": tc.track_card_moved,
"card_deleted": tc.track_card_deleted,
"card_commented": tc.track_card_commented,
"comment_updated": tc.track_comment_updated,
"board_created": tc.track_board_created,
"board_updated": tc.track_board_updated,
"board_deleted": tc.track_board_deleted,
"list_created": tc.track_list_created,
"list_updated": tc.track_list_updated,
"list_deleted": tc.track_list_deleted,
"attachment_created": tc.track_attachment_created,
"card_label_added": tc.track_card_label_added,
"task_completed": tc.track_task_completed,
# Scheduler events
"scheduled_message": tc.track_scheduled_message,
}