krz/gitbay
A CLI-first git forge.
clone: git clone https://gitbay.org/krz/gitbay.git
main: internal/store/migrations/0005_webhooks.up.sql · raw
1CREATE TABLE webhooks (
2 id INTEGER PRIMARY KEY,
3 repo_id INTEGER NOT NULL REFERENCES repos(id) ON DELETE CASCADE,
4 url TEXT NOT NULL,
5 secret TEXT NOT NULL DEFAULT '',
6 events TEXT NOT NULL DEFAULT '*',
7 active INTEGER NOT NULL DEFAULT 1,
8 created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
9);
10CREATE INDEX webhooks_repo ON webhooks(repo_id);
11
12CREATE TABLE webhook_deliveries (
13 id INTEGER PRIMARY KEY,
14 webhook_id INTEGER NOT NULL REFERENCES webhooks(id) ON DELETE CASCADE,
15 event_id INTEGER NOT NULL REFERENCES events(id) ON DELETE CASCADE,
16 attempts INTEGER NOT NULL DEFAULT 0,
17 next_attempt_at TEXT,
18 delivered_at TEXT,
19 failed_at TEXT,
20 last_status INTEGER,
21 last_error TEXT,
22 created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
23);
24CREATE INDEX webhook_deliveries_due ON webhook_deliveries(next_attempt_at)
25 WHERE delivered_at IS NULL AND failed_at IS NULL;