47 lines · 1.7 KB
-- mergefix: squashed from 1500_mergefix.sql, 1501_mergefix_requeue.sql, 1502_mergefix_drop_ai_usage.sql.

CREATE TABLE repo_mergefix_settings (
  repo_id TEXT PRIMARY KEY REFERENCES repos(id) ON DELETE CASCADE,
  queue_enabled INTEGER NOT NULL DEFAULT 0,
  allow_private INTEGER NOT NULL DEFAULT 0,
  min_confidence REAL NOT NULL DEFAULT 0.8,
  min_margin REAL NOT NULL DEFAULT 0.3,
  updated_at INTEGER NOT NULL
);

CREATE TABLE account_ai_keys (
  account_id TEXT PRIMARY KEY REFERENCES accounts(id) ON DELETE CASCADE,
  provider TEXT NOT NULL,
  model TEXT NOT NULL,
  key_ciphertext TEXT NOT NULL,
  key_iv TEXT NOT NULL,
  updated_by TEXT,
  updated_at INTEGER NOT NULL
);

CREATE TABLE mergefix_runs (
  id TEXT PRIMARY KEY,
  pull_issue_id TEXT NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
  repo_id TEXT NOT NULL REFERENCES repos(id) ON DELETE CASCADE,
  account_id TEXT NOT NULL,
  actor_id TEXT NOT NULL,
  trigger TEXT NOT NULL CHECK (trigger IN ('button', 'queue')),
  status TEXT NOT NULL CHECK (status IN ('queued', 'running', 'applying', 'applied', 'suggested', 'failed')),
  head_sha TEXT NOT NULL,
  base_sha TEXT,
  commit_sha TEXT,
  calls INTEGER NOT NULL DEFAULT 0,
  result_json TEXT,
  error TEXT,
  created_at INTEGER NOT NULL,
  updated_at INTEGER NOT NULL,
  queue_method TEXT CHECK (queue_method IN ('merge', 'squash')),
  requeue_status TEXT CHECK (requeue_status IN ('waiting', 'enqueued', 'gave_up')),
  requeue_attempts INTEGER NOT NULL DEFAULT 0,