feat: add post-pipeline hooks (KIN-003)
- core/hooks.py: HookRunner с CRUD, run_hooks(), _execute_hook(), логированием - core/db.py: новые таблицы hooks и hook_logs в схеме - agents/runner.py: вызов run_hooks() после завершения pipeline - tests/test_hooks.py: 23 теста (CRUD, fnmatch-матчинг, выполнение, таймаут) Хуки запускаются синхронно после update_task(status="review"). Ошибка хука логируется, не блокирует пайплайн. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bf38532f59
commit
d311c2fb66
4 changed files with 534 additions and 0 deletions
29
core/db.py
29
core/db.py
|
|
@ -103,6 +103,35 @@ CREATE TABLE IF NOT EXISTS pipelines (
|
|||
completed_at DATETIME
|
||||
);
|
||||
|
||||
-- Post-pipeline хуки
|
||||
CREATE TABLE IF NOT EXISTS hooks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
project_id TEXT NOT NULL REFERENCES projects(id),
|
||||
name TEXT NOT NULL,
|
||||
event TEXT NOT NULL,
|
||||
trigger_module_path TEXT,
|
||||
trigger_module_type TEXT,
|
||||
command TEXT NOT NULL,
|
||||
working_dir TEXT,
|
||||
timeout_seconds INTEGER DEFAULT 120,
|
||||
enabled INTEGER DEFAULT 1,
|
||||
created_at TEXT DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
-- Лог выполнений хуков
|
||||
CREATE TABLE IF NOT EXISTS hook_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
hook_id INTEGER NOT NULL REFERENCES hooks(id),
|
||||
project_id TEXT NOT NULL REFERENCES projects(id),
|
||||
task_id TEXT,
|
||||
success INTEGER NOT NULL,
|
||||
exit_code INTEGER,
|
||||
output TEXT,
|
||||
error TEXT,
|
||||
duration_seconds REAL,
|
||||
created_at TEXT DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
-- Кросс-проектные зависимости
|
||||
CREATE TABLE IF NOT EXISTS project_links (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue